# 原子化接口(需要签名认证)
认证方式: 签名认证 适用范围: 直接处理AI任务的底层接口,使用严格的签名认证机制
请求头要求:
X-API-Key: sk-your-api-key-here
X-Request-ID: uuid-request-id
X-Timestamp: 1677652288
X-Nonce: random-nonce-string
X-Signature: calculated-signature
签名计算规则:
signature = HMAC-SHA256(api_secret, timestamp + "\n" + nonce + "\n" + request_id + "\n" + request_body)
包含接口组:
/api/v1/doc- 文档处理接口/api/v1/embeddings- 嵌入向量接口/api/v1/rerank- 重排序接口/api/v1/chat- 聊天接口
# Chat接口
# POST /api/v1/chat/completions
功能: Chat completions接口,支持流式和非流式响应
请求参数:
{
"model": "chat",
"messages": [
{
"role": "user",
"content": "你好,请介绍一下自己"
}
],
"stream": false,
"max_tokens": 1000,
"temperature": 0.7
}
非流式响应:
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "chat",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "这是AI的响应内容"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
流式响应 (当 stream=true 时):
功能: 启用流式响应模式,服务器以Server-Sent Events (SSE)格式实时返回响应内容
请求参数:
{
"model": "chat",
"messages": [
{
"role": "user",
"content": "请用流式方式回答:介绍一下人工智能的发展历史"
}
],
"stream": true,
"max_tokens": 1000,
"temperature": 0.7
}
参数说明:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型标识符 |
| messages | array | 是 | 消息数组,包含对话历史 |
| stream | boolean | 是 | 启用流式响应,必须设置为true |
| max_tokens | integer | 否 | 最大生成token数量 |
| temperature | number | 否 | 生成温度,控制随机性 |
流式响应示例 (服务器返回的SSE格式数据):
data: {"id":"chatcmpl-e3af18d9441f49c6b5713dcb5b76ab77","object":"chat.completion.chunk","created":1772181842,"model":"chat","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-e3af18d9441f49c6b5713dcb5b76ab77","object":"chat.completion.chunk","created":1772181842,"model":"chat","choices":[{"index":0,"delta":{"content":"人"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-e3af18d9441f49c6b5713dcb5b76ab77","object":"chat.completion.chunk","created":1772181842,"model":"chat","choices":[{"index":0,"delta":{"content":"工"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-e3af18d9441f49c6b5713dcb5b76ab77","object":"chat.completion.chunk","created":1772181842,"model":"chat","choices":[{"index":0,"delta":{"content":"智"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-e3af18d9441f49c6b5713dcb5b76ab77","object":"chat.completion.chunk","created":1772181842,"model":"chat","choices":[{"index":0,"delta":{"content":"能"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-e3af18d9441f49c6b5713dcb5b76ab77","object":"chat.completion.chunk","created":1772181842,"model":"chat","choices":[{"index":0,"delta":{"content":"的"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-e3af18d9441f49c6b5713dcb5b76ab77","object":"chat.completion.chunk","created":1772181842,"model":"chat","choices":[{"index":0,"delta":{"content":"发"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-e3af18d9441f49c6b5713dcb5b76ab77","object":"chat.completion.chunk","created":1772181842,"model":"chat","choices":[{"index":0,"delta":{"content":"展"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-e3af18d9441f49c6b5713dcb5b76ab77","object":"chat.completion.chunk","created":1772181842,"model":"chat","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}]}
data: [DONE]
响应格式说明:
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | string | 响应ID,在整个流式响应中保持不变 |
| object | string | 对象类型,固定为 "chat.completion.chunk" |
| created | integer | 创建时间戳 |
| model | string | 使用的模型标识符 |
| choices | array | 选择数组,包含响应内容 |
| choices[].index | integer | 选择索引,通常为0 |
| choices[].delta | object | 增量内容,包含角色或内容变化 |
| choices[].delta.role | string | 角色信息(仅在第一个块中出现) |
| choices[].delta.content | string | 内容增量,每次返回一个或多个字符 |
| choices[].logprobs | object/null | 对数概率信息 |
| choices[].finish_reason | string/null | 结束原因,在最后一个块中设置 |
流式响应特点:
- 每个响应块以
data:开头,后面跟着JSON格式的数据 - 第一个块通常设置助手的角色信息,content为空
- 后续每个块包含一个或多个字符的内容增量
- 当响应完成时,会发送
data: [DONE]表示流结束 - 每个块包含相同的
id和model信息,确保响应的一致性 finish_reason在最后一个有效块中会设置为stop或其他结束原因
# 文档处理接口(签名认证)
# POST /api/v1/doc/reader
功能: 创建文档读取异步任务
请求参数:
{
"file_name": "document.pdf",
"file_type": "pdf",
"file_content": "base64编码的文件内容",
"read_config": {
"chunk_size": 1000,
"chunk_overlap": 200,
"separators": ["\\n\\n", "\\n", " ", ""],
"enable_multimodal": true,
"vlm_config": {
"model_name": "vlm-model-name"
}
},
"request_id": "optional-request-id"
}
响应:
{
"task_id": "task-1234567890",
"status": "pending",
"message": "任务已创建",
"created_at": 1677652288
}
# GET /api/v1/doc/:task_id
功能: 获取任务状态
响应:
{
"task_id": "task-1234567890",
"status": "completed",
"message": "任务已完成",
"progress": 1.0,
"result": {
"chunks": [
{
"content": "文档内容片段1",
"seq": 1,
"start": 0,
"end": 100,
"images": []
}
]
},
"created_at": 1677652288,
"updated_at": 1677652388
}
# DELETE /api/v1/doc/:task_id
功能: 取消任务
响应:
{
"task_id": "task-1234567890",
"status": "cancelled",
"message": "任务已取消",
"created_at": 1677652288,
"updated_at": 1677652388
}
# Embeddings接口
# POST /api/v1/embeddings
功能: 获取文本嵌入向量
请求参数:
{
"model": "embedding",
"input": [
"人工智能是计算机科学的一个分支",
"机器学习是人工智能的重要技术",
"深度学习推动了人工智能的发展"
]
}
响应:
{
"object": "list",
"data": [
{
"object": "embedding",
"embedding": [0.1, 0.2, 0.3, ...],
"index": 0
}
],
"model": "embedding",
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}
# Rerank接口
# POST /api/v1/rerank
功能: 对文档进行相关性重排序
请求参数:
{
"model": "rerank",
"query": "查询文本",
"documents": ["文档1内容", "文档2内容"]
}
响应:
{
"id": "rerank-af52d3f836574b73b7d0e9b76a5c6a4c",
"model": "rerank",
"usage": {"total_tokens": 18},
"results": [
{
"index": 0,
"document": {"text": "hello world"},
"relevance_score": 0.98974609375
},
{
"index": 1,
"document": {"text": "goodbye"},
"relevance_score": 0.3701171875
}
]
}