Vault-AI API接口详解:上传文件与智能问答的核心实现

【免费下载链接】vault-ai OP Vault ChatGPT: Give ChatGPT long-term memory using the OP Stack (OpenAI + Pinecone Vector Database). Upload your own custom knowledge base files (PDF, txt, epub, etc) using a simple React frontend. 【免费下载链接】vault-ai 项目地址: https://gitcode.com/gh_mirrors/va/vault-ai

Vault-AI是一个基于OP Stack(OpenAI + Pinecone向量数据库)构建的智能问答系统,它赋予ChatGPT长期记忆能力,允许用户通过简单的React前端上传自定义知识库文件(PDF、txt、epub等)。本文将详细解析Vault-AI的核心API接口,包括文件上传和智能问答功能的实现细节。

文件上传接口:构建知识库的第一步 🚀

文件上传是Vault-AI构建知识库的基础,该功能通过UploadHandler实现,位于vault-web-server/postapi/fileupload.go文件中。这个接口不仅负责接收文件,还会进行文本提取、内容分块和向量存储等一系列操作。

核心功能与实现流程

  1. 请求处理与限制

    • 设置了单个文件最大限制为3MB(MAX_FILE_SIZE int64 = 25 << 20
    • 总上传大小限制为50MB(MAX_TOTAL_UPLOAD_SIZE int64 = 50 << 20
    • 支持多文件同时上传
  2. 文件处理流程

    • 解析multipart/form-data格式的请求
    • 根据文件类型(如PDF)进行文本提取
    • 将文本内容分块处理(通过chunk.CreateChunks函数)
    • 生成文本嵌入向量(使用OpenAI的Ada模型)
    • 将向量存储到向量数据库

Vault-AI知识库存储示意图 Vault-AI使用向量数据库存储文件内容,实现高效的知识检索

请求与响应格式

请求参数

  • files:要上传的文件(multipart/form-data格式)
  • uuid:用户会话唯一标识
  • apikey:可选的OpenAI API密钥(如不提供则使用系统默认)

响应结构

{
  "message": "操作结果描述",
  "num_files_succeeded": 成功处理的文件数,
  "num_files_failed": 处理失败的文件数,
  "successful_file_names": ["成功上传的文件名列表"],
  "failed_file_names": {"失败的文件名": "错误原因"}
}

智能问答接口:基于知识库的精准回答 💡

智能问答功能通过QuestionHandler实现,位于vault-web-server/postapi/questions.go文件中。该接口利用存储在向量数据库中的知识,为用户问题提供精准答案。

问答处理流程

  1. 问题处理步骤

    • 验证请求参数
    • 将问题转换为向量表示(使用OpenAI的嵌入API)
    • 查询向量数据库获取相关上下文(默认返回前4个匹配结果)
    • 构建包含上下文的提示词
    • 调用OpenAI API生成回答
  2. 核心技术点

    • 使用余弦相似度匹配问题与知识库内容
    • 支持多种OpenAI模型(GPT-3.5 Turbo和GPT-3 Davinci)
    • 自动处理上下文窗口限制,确保生成高质量回答

请求与响应格式

请求参数

  • question:用户的问题文本
  • model:选择的AI模型("GPT-3.5 Turbo"或"GPT Davinci")
  • uuid:用户会话唯一标识
  • apikey:可选的OpenAI API密钥

响应结构

{
  "answer": "AI生成的回答内容",
  "context": [{"text": "上下文文本", "title": "来源文件"}],
  "tokens": 消耗的token数量
}

关键技术组件解析

向量数据库交互

Vault-AI的向量数据库交互逻辑主要在vectordb/目录下实现,支持Pinecone和Qdrant两种向量数据库。核心方法包括:

  • UpsertEmbeddings:存储文件分块的向量表示
  • Retrieve:根据问题向量查找相关上下文

文件处理工具

文件处理功能在chunk/fileprocessing.go中实现,主要包括:

  • ExtractTextFromPDF:从PDF文件中提取文本
  • GetTextFromFile:从普通文本文件中读取内容
  • CreateChunks:将文本分割为适合嵌入的小块

快速开始使用Vault-AI API

要开始使用Vault-AI的API功能,首先需要克隆项目仓库:

git clone https://gitcode.com/gh_mirrors/va/vault-ai
cd vault-ai

然后按照项目README中的说明配置和启动服务。一旦服务运行,就可以通过API接口上传文件并进行智能问答了。

Vault-AI的API设计简洁而强大,为构建基于自定义知识库的智能应用提供了坚实基础。无论是开发企业知识库、个人学习助手还是专业领域问答系统,Vault-AI都能提供高效、可靠的技术支持。

【免费下载链接】vault-ai OP Vault ChatGPT: Give ChatGPT long-term memory using the OP Stack (OpenAI + Pinecone Vector Database). Upload your own custom knowledge base files (PDF, txt, epub, etc) using a simple React frontend. 【免费下载链接】vault-ai 项目地址: https://gitcode.com/gh_mirrors/va/vault-ai

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐