项目介绍:talk2arxiv
talk2arxiv 是一个开放源码的 RAG(检索增强生成)系统,专为学术论文 PDF 文件而打造。用户可以通过在任意 arxiv.org 链接前加上“talk2”,从而将论文加载到一个响应式的 RAG 聊天应用中。例如,将链接 www.arxiv.org/pdf/1706.03762.pdf
转换为 www.talk2arxiv.org/pdf/1706.03762.pdf
。
安装步骤
用户只需运行 yarn
,然后运行 yarn run dev
,即可轻松安装并启动 talk2arxiv 系统。
功能特点
- PDF 解析:该系统使用 GROBID 工具高效地从 PDF 中提取文本。
- 文本分块算法:应用自定义算法进行文本最优分块。文本分块以逻辑章节(如介绍、摘要、作者信息等)为基础,同时利用递归细分法则(先按 512 字符分块,然后是 256 字符,再到 128 字符)。
- 文本嵌入:使用 Cohere 的 EmbedV3 模型,确保文本嵌入的准确性。
- 向量数据库集成:采用 Qdrant 用于存储和查询嵌入的数据。这也意味着每篇学术论文只需嵌入一次便可实现缓存。
- 上下文相关性:通过重新排序选择最相关的内容,匹配用户输入。
使用的技术
- 前端开发:使用 Typescript、ReactJS、TailwindCSS 和 NextJS 技术。
- 后端支持:由 talk2arxiv-server 提供动力,使用 Flask、Gunicorn 和 Nginx 构建。
未来发展计划
- 改进文本分块策略
- 转向提取源 LaTeX 代码,以提升对符号数学公式和非标准文本元素的检索效果
- 引入视觉理解的 LLM 模型
- 开发基于账户的个性化功能
已知问题
当前后端设计无法应对高并发请求。当有大量并发请求时,系统仍采用单线程处理方式,可能会导致停滞。