PDF文档检索增强生成应用

一个使用检索增强生成(RAG)技术查询PDF文档的应用程序,支持通过Ollama本地LLM处理,并可在无结果时回退至金融时报API获取金融数据。

  • by dariocostanzo
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 dariocostanzo/mcp-rag-server

使用说明

使用FastMCP、Ollama和LangChain的PDF RAG应用程序

一个简单的应用程序,用于通过Ollama使用Retrieval-AugedGeneration(RAG)和本地LLM查询PDF文档,并可回退到金融时报API获取财务数据。

原理

  1. 加载PDF:该应用程序从 data/ 文件夹。
  2. 分块:PDF中的文本被拆分为更小、更易于管理的块。
  3. 嵌入:Ollama将这些文本块转换为数值表示(嵌入)。
  4. 矢量存储:嵌入存储在FAISS向量存储中,用于语义搜索。
  5. 询问:当有问题被问到时(例如,默认问题),应用程序:
    • 将问题转换为嵌入。
    • 从PDF中查找最相关的文本块。
    • 将这些块和问题发送给Ollama LLM。
    • 根据PDF上下文返回答案。
    • 如果在PDF中找不到答案,它将向英国《金融时报》API查询相关数据。
  6. 输出:答案及其来源(PDF页面或FT API)打印到控制台。

先决条件

  • Python 3.11: 下载Python 3.11
  • 诗歌:用于Python包管理。 安装说明
  • 奥拉马:用于运行本地LLM。
  • pdf文件:PDF文件(例如。, Barclays-PLC-Annual-Report-2020.pdf)在 data/ 文件夹。

安装说明

  1. 克隆/下载项目:

    • 确保所有文件(main.py, pyproject.toml, .env.example)位于项目根目录中。
  2. 再进行:

    • 在项目根目录中打开一个终端并运行:
      poetry env use python3.11
      poetry install