最近随着 OpenAI 开放了相关 API, 市面上出现了越来越多的 AI 应用,chatpdf 这个项目吸引了我的注意,它是如何突破 API 最大 token 的限制来读取这种长文本的呢?
基于对 chatpdf 原理的好奇,我开始研究起市面上相关的应用,于是简单了解后写了个简单的 demo 用于学习,顺便熟悉了下 OpenAI API 的使用。
在这个 Demo 中,你可以向 ChatGPT 提问 PDF 中的相关问题:
Demo地址
Github地址
Demo 是我提前跑好数据的 “GitHub 隐私协议”。目前 Prompt 还没调试到最佳状态,所以有些问题回答的不算很好。你可以尝试提问一些简单的问题,例如 “GitHub 隐私协议中有哪些个人信息被收集”。
我的新项目,支持 pdf 和 markdwon
Demo地址
Github地址
目前由于 OpenAI API 调用频率受限,大文件 pdf 在生成向量时需要控制好接口调用频率
以下是一些专有名词,毕竟我也不是专业搞 AI 的,我就贴一下 ChatGPT 对这些词的理解
Embedding 是一种将离散数据(例如单词、字符、图像等)转换为连续向量的技术。在自然语言处理中,Embedding 技术可以将单词或字符映射到一个低维的连续向量空间中,从而能够更好地表示语义信息。例如,“cat” 和 “dog” 这两个单词在 Embedding 空间中可能会被映射到离得比较近的向量,因为它们都表示动物,而 “cat” 和 “table” 这两个单词在 Embedding 空间中则可能会被映射到离得比较远的向量,因为它们表示的是不同的事物。
在 ChatGPT PDF 项目中,我们使用了 OpenAI 的 Embedding API 将 PDF 文本片段转换为向量,并将这些向量保存到数据库中。这样做的好处是可以更好地表示文本片段的语义信息,从而提高问题匹配的准确率。
余弦相似度算法是一种用于计算两个向量之间相似度的方法。它的原理是通过计算两个向量的夹角余弦值来判断它们之间的相似度。
在 ChatGPT PDF 项目中,我们首先将用户提出的问题向量与数据库中的每个文本片段向量进行余弦相似度计算,然后选择最相似的那个文本片段作为上下文向 ChatGPT 提问。
如果这个项目对你有所启发,不妨给我点个 star 吧
最新内容以及更好的阅读体验可查看我的博客原文
本文发布于:2025-01-31 11:55:00,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1738296634574717.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |