一个类似 chatpdf 的项目, 让 gpt 帮你读文档 支持 pdf/epub/md 等多种格式

2023-03-28 19:34:04 +08:00
 wenjie0032

最近在研究 chatpdf.com 类的项目,

主要功能是通过 gpt 实现: 问题结合文章内容的 ai 对话,

具体的实现原理是

  1. 利用 embedding 接口对文章内容进行向量化, 存储索引
  2. 提问的问题再次利用 embedding 接口进行向量化
  3. 根据 问题的向量数据在 文章的索引中进行搜索, 找寻到近似的章节
  4. 将 问题和近似的 embedding 一同提交到 complation 接口, 获取到 openai 的回复

结合以上思路实现了 chatdoc 这个项目, 支持更丰富的文件类型, 如 .pdf, .epub, .docx, .md, .txt, 甚至支持填写链接

当然程序中会根据不同的文件类型先去解析出文本, 然后再进行上面的索引构建等步骤

本项目使用到的技术

  1. 语言: 前端 vue, 后端 python
  2. 向量索引构建: llama_index 这个库是对索引构建及 openai 查询的封装, 功能十分丰富
  3. 文件解析: EbookLib, epub2txt, PyPDF2, beautifulsoup4 等

github: https://github.com/daodao97/chatdoc

欢迎大家试用并提出改进意见, 如果想要支持更多文件格式也可以留言.

预览图, UI 还比较丑, css 太难写了😭 (有前端大佬有兴趣一起改进的话那就更好了)

3646 次点击
所在节点    分享创造
10 条回复
fkname
2023-03-28 19:41:58 +08:00
听起来不错,已 star
justin2018
2023-03-28 19:53:21 +08:00
malusama
2023-03-28 19:59:35 +08:00
sk 暴露了吧?
小心被盗用
wenjie0032
2023-03-28 20:04:32 +08:00
@malusama #3 哈哈, 没事, 那个 key 过期了
holala
2023-03-28 20:32:04 +08:00
导一本书那得花多少 token 呀
wenjie0032
2023-03-28 20:38:38 +08:00
@holala #5 这个要看总的文本大小, 可以格局字数简单估计下 , openai 有在线查看 token 数的功能 https://platform.openai.com/tokenizer
mxT52CRuqR6o5
2023-03-28 20:43:30 +08:00
看图里右边的问答,正确性有点捉急
wenjie0032
2023-03-28 21:00:37 +08:00
@mxT52CRuqR6o5 #7 还得多调教一下
kongkongye
2023-03-28 22:06:14 +08:00
最近都是这种类型的应用
fenglingyu
2023-03-29 14:10:22 +08:00
不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/927940

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX