API 架构概述

RAGFlow 的 API 系统由三个主要层组成,它们协同工作以提供对平台功能的全面编程访问。

在这里插入图片描述

认证授权系统

RAGFlow 使用基于 API 密钥的身份验证和不记名令牌方案。身份验证系统是通过装饰器和中间件实现的,这些装饰器和中间件在请求到达业务逻辑之前对其进行验证。

在这里插入图片描述

核心 API 端点类别

RAGFlow 的 HTTP API 分为几个功能类别,每个功能类别处理平台功能的特定方面。

类别 基本路径 主要目的 主要服务
数据集管理 /api/v1/datasets 知识库 CRUD 作 KnowledgebaseService
文档管理 /api/v1/datasets/{id}/documents 文件上传、解析、分块 文档服务 、 文件服务
聊天管理 /api/v1/chats 聊天助手配置 DialogService
会话管理 /api/v1/chats/{id}/sessions 对话状态处理 ConversationService
代理管理 /api/v1/agents 代理工作流编排 UserCanvasService
OpenAI 兼容 /api/v1/chats_openai/{id}/chat/completions OpenAI API 兼容性 DialogService
检索 /api/v1/retrieval 知识检索测试 DocumentService

请求/响应处理流程

下图演示了从客户端请求到服务响应的完整请求处理管道,显示了验证、业务逻辑和数据持久性层。

在这里插入图片描述

Python SDK 架构

Python SDK 为 RAGFlow 的 HTTP API 提供了高级接口,实现了面向对象的模式进行资源管理,并为常见作提供了便捷的方法。

在这里插入图片描述

OpenAI API 兼容层

RAGFlow 实现了与 OpenAI 兼容的 API,允许现有的 OpenAI 客户端库与 RAGFlow 的聊天和代理系统配合使用,为开发人员提供无缝集成。

在这里插入图片描述

错误处理和状态代码

RAGFlow 的 API 实现了一个全面的错误处理系统,具有标准化的错误代码、消息和 HTTP 状态映射,以实现一致的客户端错误处理。

错误代码 HTTP 状态 消息 常见原因
0 200 成功 成功运营
400 400 错误请求 请求参数无效
401 401 未经 授权 API 密钥缺失或无效
403 403 禁止 拒绝访问资源
404 404 未找到 未找到资源
500 500 内部服务器错误 服务器处理错误
1001 400 块 ID 无效 块作失败
1002 400 块更新失败 块修改错误
101 400 验证错误 请求验证失败
102 400 权限错误 资源访问被拒绝

错误处理系统使用实用程序函数来生成一致的响应:

  • get_result() 用于成功响应
  • get_error_data_result() 用于与数据相关的错误
  • get_error_argument_result() 用于验证错误
  • server_error_response() 用于异常处理
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐