Skip to main content

概述

Shannon 提供 OpenAI 兼容 API 层,使您可以通过现有的 OpenAI SDK、工具和集成来与 Shannon 的智能体编排平台交互。兼容层将 OpenAI 聊天补全请求转换为 Shannon 任务,并以 OpenAI 格式流式返回结果。 这意味着您可以将 OpenAI Python 或 Node.js SDK 指向 Shannon,即可使用多智能体研究、工具调用和深度分析功能——一切通过熟悉的接口完成。
OpenAI 兼容 API 旨在与现有工具兼容。如需完整的 Shannon 功能(技能、会话工作区、研究策略、任务控制),请使用原生 /api/v1/tasks 端点。

端点

基础 URLhttp://localhost:8080(开发环境)

认证

OpenAI 兼容端点使用与其他 Shannon API 相同的认证方式。
开发环境默认:设置 GATEWAY_SKIP_AUTH=1 时认证已禁用。生产环境请启用认证。

可用模型

Shannon 将模型名称映射到不同的工作流模式和策略。选择模型来控制请求的处理方式。 如果未指定模型,默认使用 shannon-chat
仅限 Shannon Cloudshannon-ads-research 模型是企业功能,仅适用于配置了广告研究供应商适配器的 Shannon Cloud 部署。
模型可通过 config/openai_models.yaml 自定义。有关添加自定义模型的详细信息,请参阅 Shannon 配置文档。

聊天补全

POST /v1/chat/completions

请求体

消息对象 流式选项

消息处理方式

Shannon 将 OpenAI 消息数组转换为 Shannon 任务:
  • 最后一条用户消息成为任务查询
  • 第一条系统消息成为系统提示
  • 其他所有消息(不含系统消息和最后一条用户消息)成为对话历史
  • 模型名称决定工作流模式和研究策略

非流式响应

非流式请求有 35 分钟超时,以支持深度研究和长时间运行的工作流。对于很长的任务,建议使用流式模式。

流式响应

stream: true 时,响应以 Server-Sent Events 形式传输: 首个块(包含角色):
内容块
最终块(包含结束原因):
流终止符
最终块中的使用数据仅在 stream_options.include_usage 设置为 true 时包含。

Shannon 扩展

shannon_events 字段

在流式传输期间,Shannon 通过 shannon_events 字段扩展标准 OpenAI 块格式。该字段携带智能体生命周期事件,提供 Shannon 智能体幕后工作的可见性。
ShannonEvent 字段 转发的事件类型
标准 OpenAI 客户端会忽略未知字段,因此 shannon_events 字段可以安全地用于任何 OpenAI 兼容工具。当您需要更丰富的进度信息时,可以解析该字段。

X-Session-ID 请求头

Shannon 通过 X-Session-ID 请求头支持多轮对话。提供该请求头后,Shannon 会在请求之间维护对话上下文。
如果未提供 X-Session-ID,Shannon 会根据对话内容(系统消息 + 第一条用户消息的哈希值)或 user 字段推导会话 ID。 当创建新会话或检测到冲突时,响应中会包含 X-Session-IDX-Shannon-Session-ID 头。

速率限制

速率限制按 API 密钥、按模型执行。默认限制为:
  • 每个模型 每分钟 60 个请求
  • 每个模型 每分钟 200,000 个 token
每个响应中包含的速率限制头

错误处理

错误遵循 OpenAI 错误响应格式:
错误类型

列出模型

GET /v1/models

返回所有可用的 Shannon 模型。
响应

GET /v1/models/

返回特定模型的详情。模型描述包含在 X-Model-Description 响应头中。

使用 OpenAI SDK

Python

Node.js / TypeScript

curl

带 Shannon 事件的流式传输

要构建显示智能体进度的丰富 UI,请从流式块中解析 shannon_events 字段:

心跳和保活

在流式传输期间,Shannon 每 30 秒发送 SSE 注释行(: keepalive)以保持连接活跃。符合规范的 SSE 客户端会自动忽略这些注释。这可以防止负载均衡器和代理在长时间运行的研究任务中关闭空闲连接。

限制

以下 OpenAI API 功能不受支持
messages[].content 字段仅接受纯文本字符串。不支持多部分内容(包含 image_url 对象的数组)。

与标准 OpenAI API 的差异

相关内容

提交任务(原生 API)

具有完整功能的 Shannon 任务提交

事件流式传输

Shannon 原生 SSE 和 WebSocket 流式传输

事件类型参考

Shannon 事件类型的完整列表

Python SDK

Shannon 原生 Python 客户端