本项目是一个基于rag技术的金融问答系统
如果你想快速运行本项目,可以运行以下命令
conda create -n finrag python=3.10
conda activate finrag
pip install -r requirements.txt
python api_server.py若成功,可以打开localhost:8000查看前端
如果你想基于本项目继续开发,parse_and_chunk.py,build_index.py,run_retrieval.py三步走是核心的训练过程,可以进行后续的优化,也可以重新生成db文件以及索引文件
- 核心框架:使用了python+faskapi框架
- 服务器: Uvicorn (ASGI 服务器)
- 数据处理: 使用pdfplumber, python-docx, python-pptx, openpyxl用于解析 PDF, Word, PPT, Excel 等多种格式的文档。使用jieba作为中文分词工具,用于 BM25 检索。
- ai检索模型构建:
- 深度学习框架: PyTorch, Transformers
- Embedding 模型: BAAI/bge-m3 (通过 FlagEmbedding 调用),用于将文本转化为向量。
- 重排序模型 (Reranker): BAAI/bge-reranker-v2-m3,用于对检索结果进行精细排序。
- 向量检索: FAISS (Facebook AI Similarity Search),用于高效的向量相似度搜索。
- 关键词检索: Rank_BM25,用于传统的稀疏检索(关键词匹配)。
由于这并不是一个web为主的系统,前端只使用了html,js,css原生三件套
- 可以引入llm api对回答结果进行润色
- 完善web结构
- 使用更多的金融数据训练模型
- 使用性能更好的ocr,分词器等等工具完善索引
- 等等...