跳转至

RAG API

请参阅 快速上手指南 获取您的 API 密钥。

$YOUR_API_KEY 替换为你在上一步生成的实际 API 密钥。
本平台基于 API 密钥进行数据隔离,即使是同一用户账户下,不同的 API 密钥(令牌)所访问的数据也是相互独立、互不共享的。


文档管理接口 (Documents)

方法 路由 功能描述 API接口
POST /documents/upload 处理文档上传请求,包括文件保存、文本分块和数据持久化 https://api-platform.ope.ai/documents/upload
GET /documents/documents 获取所有文档列表,包括文档ID、文件名、上传时间、分块数量等,以及查询结果按照上传时间降序排列 https://api-platform.ope.ai/documents/documents
DELETE /documents/documents 删除指定的文档及其相关资源,包括:物理文件删除、Milvus向量数据删除、数据库记录删除、BM25索引删除 https://api-platform.ope.ai/documents/documents
GET /documents/document_chunks 获取指定文档的所有分块列表表 https://api-platform.ope.ai/documents/document_chunks
GET /documents/download_document 下载指定文档文件 https://api-platform.ope.ai/documents/download_document

数据库管理接口 (Database)

方法 路由 功能描述 API接口
POST /database/collections 创建用户空间集合,该接口用于为指定用户创建一个新的Milvus Collection,用于存储向量数据,创建失败或无法连接到Milvus https://api-platform.ope.ai/database/collections
DELETE /database/collections 删除用户空间集合,该接口用于删除指定用户的Milvus Collection及其中存储的所有向量数据 https://api-platform.ope.ai/database/collections
方法 路由 功能描述 API接口
POST /search/chat_message 基于RAG的对话式搜索,处理RAG搜索请求

接收用户的问题和相关参数,使用RAG(检索增强生成)方法生成答案。

整个过程包括:
- 文档检索:从知识库中检索与问题相关的文档
- 上下文整合:将检索到的文档与问题组合
- 答案生成:使用大语言模型生成回答
- 流式响应:实时返回生成的内容
https://api-platform.ope.ai/search/chat_message

会话管理接口 (Session Manage)

方法 路由 功能描述 API接口
POST /session_manage/delete 删除指定用户会话,即该接口用于手动指定用户的特定会话及其相关的所有聊天记录 https://api-platform.ope.ai/session_manage/delete

API 请求示例

/documents/upload

POST 上传文档

curl --location --request POST 'https://api-platform.ope.ai/documents/upload' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive' \
  --header 'Content-Type: multipart/form-data; boundary=------------------------897026663741264421313454' \
  --form 'files=@"/Users/ten/Documents/test.txt"' \   # 支持文件类型:.txt、.pdf、.csv、.md、.docx
  --form 'model="opeai/bge-m3"'                       # Embedding 模型名称
  --form 'chunk_size=500'                             # 文档切分 token 长度
  --form 'chunk_overlap=50'                           # 文档切分重叠长度
  --form 'separators=!'                               # 文档切分符,不填写默认\n\n
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Accept': '*/*',
}

files = {
    'files': open('/Users/ten/Documents/test.txt', 'rb'),       # 支持文件类型:.txt、.pdf、.csv、.md、.docx
    'model': (None, 'opeai/bge-m3'),                            # Embedding 模型名称
    'chunk_size': (None, '500'),                                # 文档切分 token 长度
    'chunk_overlap': (None, '50'),                              # 文档切分重叠长度
    'separators': (None, '!'),                                  # 文档切分符,不填写默认\n\n
}

response = requests.post('https://api-platform.ope.ai/documents/upload', headers=headers, files=files)
for line in response.iter_lines():
    if line:
        decoded = line.decode('utf-8')
        print(decoded)

/documents/document_chunks

GET 获取指定文档的分块列表

curl --location --request GET 'https://api-platform.ope.ai/documents/document_chunks?doc_id=14ba616e-2214-412e-8d3e-9164970de543' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive'
  # doc_id通过/documents/documents返回
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

params = {
    'doc_id': '14ba616e-2214-412e-8d3e-9164970de543',             # doc_id通过/documents/documents返回
}

response = requests.get('https://api-platform.ope.ai/documents/document_chunks', params=params, headers=headers)
print(response.json())

/documents/download_document

GET 下载文档

curl --location --request GET 'https://api-platform.ope.ai/documents/download_document?doc_file_path=storage/docs/158/14ba616e-2214-412e-8d3e-9164970de543_test.txt&filename=test.txt' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive'
  # filename为下载到本地保存的文件名
  # doc_file_path通过/documents/documents返回
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

params = {
    'doc_file_path': 'storage/docs/158/14ba616e-2214-412e-8d3e-9164970de543_test.txt',   # doc_file_path通过/documents/documents返回
    'filename': 'test.txt'                                                               # filename为下载到本地保存的文件名
}

response = requests.get(
    'https://api-platform.ope.ai/documents/download_document',
    headers=headers,
    params=params
)

with open(params['filename'], 'wb') as f:
    f.write(response.content)

/database/collections

POST 创建用户知识库

curl --location --request POST 'https://api-platform.ope.ai/database/collections' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive' \
  --data-raw ''
  # 最先使用,先通过该接口创建用户的知识库
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Content-Type': 'application/json',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

response = requests.post('https://api-platform.ope.ai/database/collections', headers=headers)
print(response.json())
# 最先使用,先通过该接口创建用户的知识库

DELETE 删除用户知识库

curl --location --request DELETE 'https://api-platform.ope.ai/database/collections' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive' \
  --data-raw ''
  # 删除用户的知识库
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Content-Type': 'application/json',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

response = requests.delete('https://api-platform.ope.ai/database/collections', headers=headers)
print(response.json())
# 删除用户的知识库

/search/chat_message

POST 处理RAG搜索请求

curl --location --request POST 'https://api-platform.ope.ai/search/chat_message' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive' \
  --data-raw '{
    "embedding_model_name": "opeai/bge-m3",          # Embedding 模型
    "llm_model_name": "opeai/deepseek-v3",           # 大语言模型
    "question": "什么是RAG?",                         # 用户提问
    "session_id": "session_1",                       # 会话 ID, 传空则是一组新的会话,此时会自动创建一个新的会话 ID, 由该接口返回, 在之后的调用中传入返回的会话 ID 可以获取当前会话的历史信息
    "top_k": 5,                                      # 返回知识库中最相似的文档数量
    "stream": false                                  # 默认为true
  }'
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Content-Type': 'application/json',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

payload = {
    'embedding_model_name': 'opeai/bge-m3',          # Embedding 模型
    'llm_model_name': 'opeai/deepseek-v3',           # 大语言模型
    'question': '什么是RAG?',                         # 用户提问
    'session_id': 'session_1',                       # 会话 ID, 传空则是一组新的会话,此时会自动创建一个新的会话 ID, 由该接口返回, 在之后的调用中传入返回的会话 ID 可以获取当前会话的历史信息
    'top_k': 5,                                      # 返回知识库中最相似的文档数量
    'stream': False,                                 # 默认为true
}

response = requests.post('https://api-platform.ope.ai/search/chat_message', headers=headers, json=payload)
print(response.json())

/session_manage/delete

DELETE 删除指定租户的会话

curl --location --request POST 'https://api-platform.ope.ai/session_manage/delete' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive' \
  --data-raw '{
    "session_id": "session_1"                      # chat_message 返回的会话 ID
  }'
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Content-Type': 'application/json',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

payload = {
    'session_id': 'session_1',                   # chat_message 返回的会话 ID
}

response = requests.post('https://api-platform.ope.ai/session_manage/delete', headers=headers, json=payload)
print(response.json())

/documents/documents

DELETE 删除指定文档

curl --location --request DELETE 'https://api-platform.ope.ai/documents/documents' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive' \
  --data-raw '{
    "doc_id": "123"                            # 可以从 documents/documents 获取
  }'
  # 删除用户文档
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Content-Type': 'application/json',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

payload = {
    'doc_id': '123',                          # 可以从 documents/documents 获取
}

response = requests.delete('https://api-platform.ope.ai/documents/documents', headers=headers, json=payload)
print(response.json())
# 删除用户文档

GET 获取所有文档列表

curl --location --request GET 'https://api-platform.ope.ai/documents/documents' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Accept-Language: zh-cn' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive'
  # 获取文档列表
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Accept-Language': 'zh-cn',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

response = requests.get('https://api-platform.ope.ai/documents/documents', headers=headers)
print(response.json())
# 获取文档列表

API请求错误

调用接口过程中,可能会遇到以下常见错误:

404 接口路径错误

接口路径存在错误,接口路径不存在
解决方法: 检查接口路径,确认无误仍发生请联系平台管理员排查。

422 参数错误

客户端传入的参数不符合接口要求,可能是缺失必要字段、字段格式错误、字段名拼写错误等。
解决方法: 检查请求体结构,确认所有必填参数完整且格式正确。

500 服务器处理失败

服务端在处理请求过程中发生内部异常,例如系统错误、数据库或向量引擎连接失败等。
解决方法: 稍后重试;如多次出现,请联系平台管理员排查问题。