Skip to content

Zlatanwic/Fin-RAG

Repository files navigation

Fin-Rag

Brief intro

本项目是一个基于rag技术的金融问答系统

QuickStart

如果你想快速运行本项目,可以运行以下命令

conda create -n finrag python=3.10
conda activate finrag
pip install -r requirements.txt
python api_server.py

若成功,可以打开localhost:8000查看前端

Dev

如果你想基于本项目继续开发,parse_and_chunk.py,build_index.py,run_retrieval.py三步走是核心的训练过程,可以进行后续的优化,也可以重新生成db文件以及索引文件

Tech Stack

Backend

  • 核心框架:使用了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,用于传统的稀疏检索(关键词匹配)。

Frontend

由于这并不是一个web为主的系统,前端只使用了html,js,css原生三件套

后续优化

  • 可以引入llm api对回答结果进行润色
  • 完善web结构
  • 使用更多的金融数据训练模型
  • 使用性能更好的ocr,分词器等等工具完善索引
  • 等等...

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published