打造一款人工智能工具,即时总结书籍内容

无需从头到尾阅读一本书,就能掌握其要点

Alessandro Amenta

在本文中,我们将使用 Python、Langchain 和 OpenAI embeddings 构建一个简单但功能强大的书籍摘要器。

用 DALL-E 3 生成上图。

面临的挑战

GPT-3 和 GPT-4 等人工智能模型功能强大,但也有其局限性。其中一个重要的限制就是上下文窗口,它限制了模型在同一时间可以考虑的文本数量。这意味着你不能把整本书输入模型,然后期待得到一个连贯的摘要。此外,处理大量文本的成本也很高。

解决方案

为了克服这些挑战,我们设计了一种既经济又高效的方法。流程如下:

简化流程

以下是我们如何将长篇大论的书籍转化为简明扼要的摘要:

  1. 拆分(Splitting)与嵌入(Embeddings): 我们将图书分解成小块,并将其转换为嵌入。这一步的成本出奇地低。
  2. 聚类(Clustering): 接下来,我们对这些嵌入内容进行聚类,找出书中最具代表性的部分。
  3. 摘要(Summarization): 然后,我们使用更具成本效益的 GPT-3.5 模型对这些关键部分进行摘要。
  4. 合并摘要(Combining Summaries): 最后,我们使用 GPT-4 将这些摘要拼接成一个流畅的叙述。

通过仅在最后一步使用 GPT-4,我们成功地降低了成本。

现在,让我们来分析一下代码和每个步骤背后的原理。

让我们深入代码,一步步构建我们的摘要器。


Python 潮流周刊#23:35 个容易上手的 Python 小项目

你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。标题取自其中两则分享,不代表全部内容都是该主题,特此声明。

本周刊由 Python 猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。

微信 | 博客 | 邮件 | GitHub | Telegram | Twitter

本周刊的源文件归档在 GitHub 上,已收获 730+ star 好评,如果你也喜欢本周刊,就请给颗 star 支持一下吧:https://github.com/chinesehuazhou/python-weekly


一些杂七杂八的 Git 知识

我一直在慢慢地写关于 Git 工作原理的文章。我以为自己已经对 Git 相当了解了,但像往常一样,当我试图解释一些东西时,我又学到了一些新东西。

现在回想起来,这些事情都不会让人感到惊讶,但我之前并没有想清楚。

事实是:

让我们来谈谈它们!


对 Python 对环境管理和包管理工具的一次公正评估

作者头像

Anna-Lena Popkes

动机

当我开始使用 Python 并创建我的第一个包时,我感到困惑。创建和管理一个包比我预期的要困难得多。此外,存在多种工具,我不确定该使用哪一个。我相信你们中的大多数人过去也遇到过同样的问题。Python 有大量的工具来管理虚拟环境和创建包,要理解哪一个最适合你的需求可能很难(或几乎不可能)。关于这个话题存在多个演讲和博客文章,但没有一个提供完整的概览或以结构化的方式评估这些工具。这就是本文的目的。我想给你一个真正无偏见的评价,关于现有的打包和环境管理工具。如果你宁愿观看一个演讲,可以看看 PyCon DE 2023EuroPython 2023 的录像。


为什么我喜欢 Nox

自从我参与开源 Python 项目以来,tox 一直是跨 Python 版本(以及其他因素)测试软件包的关键。然而,最近,我越来越多地在我的项目中使用 Nox。由于我被反复问到,为什么,我将总结一下我的想法。

我再怎么强调也不为过,我不想阻止任何人使用 tox。tox 很棒。没有 tox,Python 开源生态系统就不会是现在的样子。它的作者和维护者我永远感激!

我本能地不喜欢说 tox 的坏话,但如果不对比功能和行为就无法解释我的偏好。

这不是呼吁放弃 tox(我仍然在许多项目中使用它),而是解释为什么我在某些情况下更喜欢 Nox。Nox 和 tox 都不是绝对优于另一个,只是不同而已。


浏览器开发者工具中不应该再有秘密

更新: 由于这篇文章正在 Hackernews 上热传,我在每个标题后的括号中为每个提示添加了支持环境的信息。当我说明 Chromium 浏览器 时,指的是所有使用 Chromium 内核并具有所有开发者工具的浏览器。这包括 Chrome 浏览器、Microsoft EdgeBrave 以及其他更多浏览器。在此提醒一下: Microsoft EdgeWindows 10/11 系统自带的浏览器,基于 Chromium,因此从平台角度来看与 Chrome 浏览器类似。它们在用户体验和核心服务方面有所不同。Edge 开发者工具与谷歌密切合作,将我们添加到产品中的工作带回 Chromium 核心。但是,我在这里谈到的一些东西是微软 Edge 的实验和独有功能,它可在 WindowsMacLinux 上使用。有些功能只能通过 Edge DevTools for VS Code 扩展Visual Studio Code 中使用。

这是我今年 9 月在 CityJS 上发表的演讲。我是 Microsoft Edge 开发者人员工具的首席产品经理,这些都是我在开发工具、记录工具和查看用户反馈时遇到的问题。

你可以在 Youtube 上观看演讲视频


水歌的开源实验

2020 中国开源年会」官网开发及成都站总结

官网开发 —— 骑马造车

展厅需求与日程难题

COSCon’20 筹备伊始,组委会分派给我的首要任务是合作伙伴云展厅的开发,以便在疫情尚未平息之时的线上大会给各大合作伙伴一个集中宣传的窗口。

但云展厅的设计图并非一般线下大会在官网贴一屏 logo 那么简单,还有文字简介宣传视频加群二维码入选的议题与讲师等等。面对这样的需求,必然难以用近年技术站流行的 MarkDown 网站生成器来规范而高效地实现,因为去年用 YAML 文件维护前两年的 logo 墙已经很繁琐了。

提到合作伙伴关联的议题、讲师,又让我想起参加 COSCon 2018、2019 时手拿一张尺寸巨大、文字特小的日程表找会场时的痛苦,与参加台湾 COSCUP 2019 手持会议 App 畅游时的体验形成鲜明对比。

OPass logo - 台湾开源会议通用 App

与我一同经历上述 3 场大会的庄表伟老师(开源社 2020 年度理事长),在 COSCon’19 现场曾和我不约而同地提出“要做个开源会议系统”,大会结束后便以产品配开发的搭档火速开干,但又因团队缺乏精力而停摆……


星星之火,可以燎原

大家好,我是牛牛,我来自 FCC 成都社区

如果你问我为什么要在开篇自我介绍,因为我对 FCC 以及 FCC 的每一个人感到骄傲和自豪!

💫 故事从这里开始

10 月 24 号在这个对计算机行业来说很特殊的日子,FCC 成都社区承办了 2020 年中国开源年会成都分会场。大会主题是开源向善,开源一词看似是程序员专属,可成都分会场的志愿者大部分却不是计算机专业,有森林保护专业、国际贸易专业、外语专业等。当我问她们为什么会来时,她们答道“看到了,就想来了解一下”。

或许有时就是不经意间听到的某个观点或某句话,就会在自己心中种下了一颗种子,一颗永远不会枯死的种子。


GitHub 在线 IDE 初体验

之前就有听说 GitHub 将推出在线 IDE,一搜索发现很多结果。

现在 GitHub 的在线 IDE 发布一段时间了,官方命名为:GitHub Codespaces(点击可以申请),今天我们就来体验一下。


【公益】高考志愿填报助手

2020 年高考是一场非常不容易的高考,毕业生和社会各界都历经艰辛,希望我们的拼搏都能有更加美好的明天。

说起填志愿,回想起我高考时正值汶川大地震。那时我们获取可靠、有效、全面的志愿参考信息,基本只能通过学校发的一本大部头参考书,里面汇集了全国招生的院校、专业和往年录取数据。但这样一本像过去每个城市的电话黄页一样的书,反复查阅它的“低效”痛苦就不用多说了。

进入大学 IT 技术社团之后,就一直想用自己学到的编程技术,来为学弟学妹解决我当年那般的痛苦。但彼时,我国政府部门信息公开政策的保守和技术的落后,让我们很难获得好用的数据,商业平台又有巨大的封闭壁垒,遂作罢……

直到前一阵子,FCC 一位城市社区组织者在群里分享了黄希彤老师的填教授公益项目,看到他把多年收集的公开数据用统计学方法进一步处理,免费为广大考生做参考,内心十分激动!于是想尽自己现在的专长所能,帮黄老师优化一下前端界面,让广大的考生和家长用起来更方便。


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×