# 原子化接口(需要签名认证)

认证方式: 签名认证 适用范围: 直接处理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] 表示流结束
  • 每个块包含相同的 idmodel 信息,确保响应的一致性
  • 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
    }
  ]
}