JAC 与 Response API 使用说明

侏罗纪 API 支持两种协议:Response API(HTTP / SSE,推荐)与 JAC-1.1(WebSocket 长连接会话)。

Base URL:https://ai.jurassic-period.com/

1. 协议选型

Response APIJAC-1.1
传输方式HTTP POST + SSE 流式WebSocket 长连接(子协议 jac.v1)
适用场景单次问答 / 常规集成 / 第三方程序长会话、工具循环、会话内双向文件传输
图片传输支持(input_image)支持(file.* 消息族,credit 流控 + SHA-256)
工具调用支持(OpenAI tools 惯例)支持(Chat API 兼容格式)
思考披露支持(reasoning)支持(effort / depth 可控)

两种协议均以 API Key 鉴权(Authorization: Bearer <API Key>)。 本服务暂不支持 Chat Completions API。

2. Response API · 基本对话

2.1 端点与鉴权

项目值
Base URLhttps://ai.jurassic-period.com/
对话端点POST /v1/responses
鉴权Authorization: Bearer <API Key>
编码UTF-8(Content-Type: application/json)

2.2 请求示例

curl https://ai.jurassic-period.com/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jurassic-1.1-tyranno",
    "input": "用中文介绍侏罗纪AI通信标准"
  }'

2.3 响应示例

{
  "id": "resp_8f21",
  "object": "response",
  "status": "completed",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [ { "type": "output_text", "text": "JAC-1.1 是……" } ]
    }
  ],
  "usage": {
    "input_tokens": 12,
    "output_tokens": 356,
    "total_tokens": 368
  }
}

3. Response API · 流式输出

请求体加 "stream": true,响应为 text/event-stream 的 SSE, 事件遵循 OpenAI Responses 惯例,末尾以 data: [DONE] 结束:

curl -N https://ai.jurassic-period.com/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "model": "jurassic-1.1-tyranno", "input": "你好", "stream": true }'

主要事件类型:response.created → response.output_text.delta(增量文本)→ response.completed(含最终 usage)。

4. Response API · 图片传输

input 使用内容分块数组即可携带图片(URL 或 Base64):

{
  "model": "jurassic-1.1-tyranno",
  "input": [
    {
      "role": "user",
      "content": [
        { "type": "input_text",  "text": "这张图里是什么?" },
        { "type": "input_image", "image_url": "https://example.com/fossil.png" }
      ]
    }
  ]
}

5. Response API · 工具调用

在请求中声明 tools(OpenAI function 格式),模型需要调用工具时返回 function_call 项;把工具执行结果以 function_call_output 回传即可继续对话:

{
  "model": "jurassic-1.1-tyranno",
  "input": [
    { "role": "user", "content": "查一下三叠纪的化石" }
  ],
  "tools": [
    {
      "type": "function",
      "name": "search_fossil",
      "description": "检索化石数据库",
      "parameters": {
        "type": "object",
        "properties": {
          "era":   { "type": "string" },
          "query": { "type": "string" }
        },
        "required": [ "query" ]
      }
    }
  ]
}

模型返回工具调用(type: "function_call",含 call_id 与 arguments)后,执行本地函数并回传:

{
  "model": "jurassic-1.1-tyranno",
  "input": [
    { "role": "user", "content": "查一下三叠纪的化石" },
    { "type": "function_call", "call_id": "call_1", "name": "search_fossil",
      "arguments": "{\"era\":\"三叠纪\",\"query\":\"恐龙\"}" },
    { "type": "function_call_output", "call_id": "call_1",
      "output": "{\"count\":3,\"items\":[…]}" }
  ]
}

6. 在 JPCode 中配置

配置项填写值
服务商名称侏罗纪 AI(自定义)
Base URLhttps://ai.jurassic-period.com/
Key你的 API Key
API 形态Responses(本服务暂不支持 Chat API)
模型jurassic-1.1-tyranno 等侏罗纪模型

7. JAC · 会话建立

JAC-1.1(侏罗纪AI通信标准,JAC-SPEC-1.1)运行于 WebSocket 之上, 一条连接 = 一个会话:

wss://jpcode.jurassic-period.com/jac/v1/session
Sec-WebSocket-Protocol: jac.v1
步骤方向消息说明
1C→Ssession.declare连接后 5 秒内发送:环境、工具、代码模块、reasoning 配置(会话内仅一次)
2S→Csession.ready返回 accepted_tools、生效思考深度、server_caps(含 file.transfer)
3C→Suser.message用户消息,开启一个 turn
4S→Cassistant.chunk ×n纯流式增量(content / thinking / tool_calls)
5S→Cassistant.doneturn 结束:usage + stats + session_usage
6双向session.end关闭会话(随后 WebSocket Close)

约束:上下文一次声明,后续不可重复 declare(否则 error 4002 并关闭); 工具变更用 tool.update 增量操作;所有 assistant 输出只有流式一种交付方式。

8. JAC · 对话与工具调用

工具调用与 Chat API 兼容:模型需要调用工具时下发 tool.call(含工具名与参数对象),客户端执行后回 tool.output, 服务端在同一 turn 内续流(工具循环深度上限 8,超出返回 4302):

S→C  { "type": "tool.call",   "call_id": "call_1",
       "name": "search_fossil", "arguments": { "era": "三叠纪" } }
C→S  { "type": "tool.output", "call_id": "call_1",
       "output": { "count": 3 } }
S→C  { "type": "assistant.chunk", "seq": 9,
       "delta": { "content": "共找到 3 条记录……" } }
S→C  { "type": "assistant.done",
       "usage":   { "input_tokens": 120, "output_tokens": 88 },
       "session_usage": { "total_tokens": 208 } }

思考披露:在 session.declare 的 reasoning 中配置 expose(always / on_done / never)与 effort (minimal / low / medium / high,对应 depth 0 / 2 / 5 / 8),思考内容随 delta.thinking 流式下发,token 计入 thinking_tokens。

9. JAC · 文件传输(1.1 新增)

会话内支持双向文件传输(与对话并行):控制面 file.offer / accept / data / ack / complete / cancel 文本帧 + file.data 二进制帧:

10. 完整标准文档

JAC-1.1 完整标准(JAC-SPEC-1.1,17 章:消息 JSON Schema、错误码注册表、 一致性等级、完整会话示例、与 Chat API 字段映射表)已发布为独立文档页: JAC-1.1 侏罗纪AI通信标准 · 全文。

也可直接取 Markdown 原文:JAC-1.1 标准 Markdown 原文(供 AI 引擎与离线阅读)