入库
从 arXiv 拉取元数据与 PDF,解析正文,按重叠窗口切成片段。一篇论文对应多条片段。
把一批论文做成可检索的知识库:提问时先找文献片段,再组织回答,并把出处带回来。
目标是「文献里怎么说」,而不是让模型脱离语料自由发挥。
面向已整理文献的问答入口,回答能指到来源。
面向 arXiv 一类文献。先把论文切成片段、写入检索索引;用户提问时,系统在索引里找出相关片段,再由大模型根据这些片段作答。回答应能指到来源,便于核对,而不是只给一段无法追查的文字。 同一套流程也可以接到测绘规范、项目报告或政策文件上,做成可追溯的行业资料问答。
针对当前已入库文献,而不是全网搜索。
切块、混合检索、再生成,而不是让模型直接作答。
从 arXiv 拉取元数据与 PDF,解析正文,按重叠窗口切成片段。一篇论文对应多条片段。
片段写入 OpenSearch:同时有倒排(BM25)和向量。PostgreSQL 保存论文级元数据,不参与片段排序。
提问时做关键词与向量混合检索,必要时按 arXiv 类目过滤,取出 Top-K 片段作为上下文。
大模型根据片段组织回答,并带上来源。可选 Redis 缓存完全相同的问题,避免重复检索。
用 LangGraph 把步骤串起来,而不是只跑一轮检索。
普通 RAG 是「检索一次 → 把片段塞进提示 → 生成」。语料对路时够用;问题含糊、范围不对、或第一次没命中时,容易答非所问或编造。这里把范围判断、相关性筛选和查询改写做成可执行步骤。
对话界面走流式输出,看起来像聊天;后台仍是检索加生成,不是无根据闲聊。
论文只是当前语料。
把「切块 → 混合检索 → 带来源的回答」接到规范、项目文档或内部报告上,就可以做成可追溯的资料问答,减少「模型凭印象说、无法核对」的情况。
前端静态对话页;后端 FastAPI;检索 OpenSearch(BM25 + 向量 + RRF);编排 LangGraph。