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 |
搜索接口 (Search)
方法 | 路由 | 功能描述 | 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 获取所有文档列表
API请求错误
调用接口过程中,可能会遇到以下常见错误:
404 接口路径错误
接口路径存在错误,接口路径不存在
解决方法: 检查接口路径,确认无误仍发生请联系平台管理员排查。
422 参数错误
客户端传入的参数不符合接口要求,可能是缺失必要字段、字段格式错误、字段名拼写错误等。
解决方法: 检查请求体结构,确认所有必填参数完整且格式正确。
500 服务器处理失败
服务端在处理请求过程中发生内部异常,例如系统错误、数据库或向量引擎连接失败等。
解决方法: 稍后重试;如多次出现,请联系平台管理员排查问题。