电鸭
16人浏览/6人投稿
13小时前
待托管赏金
个人电脑使用的向量数据库
一、 核心目标
能自动将我日常关注的研报(PDF)、公告(PDF/Text)、文件(Web/PDF)等非结构化文本数据,进行解析、清洗、打标,并存入数据库,最终实现通过自然语言进行精准检索和问答。
模块一:数据源接入与自动化采集*
Tushare API集成*
编写Python脚本,通过Tushare Pro API自动获取相关的一些数据
本地文件监听与解析**
开发一个“文件监听”服务,持续监控我指定的Windows文件夹。
要求:
当有新的PDF文件放入时,自动触发解析程序。
使用PyMuPDF等库,高质量地提取PDF中的文本和表格内容,并转换为纯文本。
解析后,将原始文件自动移动到已处理子文件夹归档。
验收标准:我放入一份PDF,5分钟后,系统能将其全文内容提取出来,并能在数据库中查询到。
模块二:数据存储与向量化(核心)
数据库部署*
使用Docker在本地部署两款数据库:
PostgreSQL:用于存储从Tushare获取的结构化数据**(数字、表格)。
ChromaDB:用于存储从文本中提取的非结构化数据*,并支持向量检索。
验收标准:两个数据库服务运行正常,可通过命令行或简单工具连接。
文本向量化与入库**
任务:编写脚本,将模块一提取的纯文本,通过Ollama本地部署的嵌入模型(如nomic-embed-text)转换为向量(Embeddings),并存入ChromaDB向量数据库。
要求*:为每条文本数据打上元数据标签。
验收标准:在ChromaDB中能查到存入的向量数据条数,并且每条数据都带有正确的元数据标签。
模块三:自然语言检索接口
查询接口开发*
开发一个极简的Web查询界面(Gradio或Streamlit)。
提供一个输入框,可以用自然语言提问
后端逻辑:将我的问题也转换为向量,在ChromaDB中进行相似度搜索,找到最相关的文本片段,并返回。
验收标准:可以在网页上输入问题,系统能在3秒内返回最相关的原文段落,并注明出自哪份文件的第几页。