在ChatGPT相关API推出之后,各种工具如雨后春笋一般层出不穷,这篇文章就列举一些日常使用到的工具。
工具列表
OpenAI
- 在线读取任意网页内容包括视频(YouTube),并根据这些内容回答你提出的相关问题或总结相关内容
- 支持读取电子书与文档(支持PDF、EPUB、DOCX、Markdown、TXT),并根据这些内容回答你提出的相关问题或总结相关内容
- 定时发送每日热榜新闻,无论新闻是中文还是其他语言,它都能使用chatGPT用中文自动总结新闻的内容,方便快速获取热点新闻信息
- 支持 prompt 模版,能根据消息历史记录的上下文回答你的问题,甚至能和你玩游戏
- 支持多国语音交互(英文、中文、德语与日语),它会根据你的语言使用相关语言的声音来回答你的问题,从而帮助你训练外语能力,可以理解为它是你的私人外教
chatpdf
ChatPDF主页
这个可以看作是一个PDF辅助阅读的工具,用户上传自己的PDF之后,可以以对话的方式与工具进行交互,快速获取PDF文件的内容。
专注于“科研狗”的工具,通过ChatGPT实现对论文进行总结,帮助“科研人”进行论文初筛(目前不支持针对论文内容进行对话)。
ChatPaper主页
另外相关的工具还有润色工具、审稿工具、审稿回复工具。
最后,这篇文章——ChatGPT应用开发小记提到的基于chatGPT的应用类型的分类也有借鉴意义。
原理
之前准备写一篇专门介绍上述工具类的原理介绍(其实ChatGPT的 插件——chatgpt-retrieval-plugin),但是后来查看了几个项目的源码之后发现,这类工具的主要原理其实比较直观:
- 解析相关输入为文本
- 将文本分句后获取句子的embedding(这一步目前处理的处理方式大都是根据长度截断)并存储至数据库
- 用户输入转换为embedding,并在数据库中召回相关性最高的句子集合
- 将召回的句子与用户输入句子组装为ChaptGPT的输入,获取输出
上述思路虽然直观,但要获取更好的结果,其实除了第三步,其余每一步都有优化的空间:
- 文本解析可以针对不同类型的数据针对性解析
- 文本分句方式可以采取特殊标点进行分句,同时句子embedding也有很多可选生成方法
- 召回的句子与用户输入句子组装为ChaptGPT的输入,结合任务特定的prompt,获取更适合任务的输出