Skip to content

Alexlin23/RAG-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

项目名称:RAG(检索增强生成)示例仓库

  • 概述: 本仓库为一个轻量级的 RAG(Retrieval-Augmented Generation)示例工程骨架,包含用于初始化数据/数据库、添加文档、以及执行查询的脚本。目标是作为构建基于检索的问答或文档检索服务的起点。

主要文件:

  • init_db.py: 初始化数据库或向量存储(根据项目具体实现而定)。
  • add_doc.py: 将文档或参考资料加入到数据存储中(例如分片、向量化并写入 collection)。
  • query.py: 对已加载的文档集合执行检索与问答流程的示例脚本。
  • api_query.py: 提供基于 FastAPI 的 HTTP 查询接口服务。

目录结构(简要)

  • data/: 用于存放原始参考文档的目录。
    • references/: 原始参考资料(示例文档)。
  • db/: 持久化存储位置(可能包含数据库文件或向量索引)。
    • collection/
      • documents/: 存放已导入的文档数据。
    • meta.json: 集合或索引的元数据文件。

环境与依赖

  • Python: 建议使用 Python 3.8+。
  • 依赖安装: 请确保已安装以下依赖库:
    pip install fastapi uvicorn qdrant-client sentence-transformers charset-normalizer
    

快速开始(Windows)

  1. 准备数据:将 .txt 格式的文档放入 data/references/ 目录。
  2. 初始化数据库
    python init_db.py
  3. 启动 API 服务
    python api_query.py
  4. 访问 API 文档

API 接口

  • POST /query
    • 描述:根据输入问题在文档库中检索相关内容。
    • 请求体
      {
        "text": "你的问题内容",
        "top_k": 3  // 可选,返回结果数量(默认3,最大10)
      }
    • 响应示例
      {
        "query": "你的问题内容",
        "results": [
          {
            "score": 0.8721,
            "text": "检索到的相关文档内容...",
            "source_file": "example.txt"
          }
        ],
        "total": 1
      }
    • curl 示例
      curl -X 'POST' \
        'http://localhost:8000/query' \
        -H 'Content-Type: application/json' \
        -d '{
        "text": "你的问题内容",
        "top_k": 3
      }'

脚本说明(建议)

  • init_db.py: 创建必要目录、初始化索引或数据库连接并写入 db/meta.json
  • add_doc.py: 支持批量导入 data/references 中的文件,建议支持文本预处理、分段、向量化后写入 db/collection/documents
  • query.py: 执行检索(例如基于向量相似度)并可选地调用生成模型来合成答案。
  • api_query.py: 基于 FastAPI 提供 RESTful API 服务,允许通过 HTTP 请求进行文档查询。

数据格式与约定

  • 存放在 data/references/ 的原始文档应为常见文本格式(.txt, .md, .pdf 等)。
  • txt内的格式是
    • 标题:一行 第x章 标题内容
    • 正文:从第2行开始,每一行是一个段落。
  • 导入后,处理结果(元数据 + 向量/片段)建议以 JSON 或一组文件存放在 db/collection/documents/ 下,meta.json 用于记录集合配置与统计信息。

常见问题(FAQ)

  • Q: 没有 requirements.txt 怎么办?
    • A: 请先创建虚拟环境,然后根据脚本抛出的 ImportError 按需安装依赖,或联系仓库维护者补充依赖清单。
  • Q: 想要支持更多文档格式或更改向量化方式?
    • A: 在 add_doc.py 中扩展解析器或替换嵌入/向量化模块即可。

贡献与下一步建议

  • 如需将本仓库变为可复现的示例,建议:
    • 添加 requirements.txtpyproject.toml 来锁定依赖。
    • add_doc.pyquery.py 中添加 CLI 帮助和更多示例参数。
    • 补充示例数据到 data/references/,并在 README.md 中提供完整的演示步骤。

联系方式

  • 如需帮助或有改进建议,请在仓库中打开 Issue 或联系维护者.

About

一个小说大纲生成器的向量检索

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages