Skip to content

feat(model/openairesponse): 新增 OpenAI Responses API ChatModel 组件,兼容adk目前chatmodel类型#758

Open
ywandy wants to merge 4 commits intocloudwego:mainfrom
ywandy:feat/lib-acl-openai-support-v1response
Open

feat(model/openairesponse): 新增 OpenAI Responses API ChatModel 组件,兼容adk目前chatmodel类型#758
ywandy wants to merge 4 commits intocloudwego:mainfrom
ywandy:feat/lib-acl-openai-support-v1response

Conversation

@ywandy
Copy link
Copy Markdown

@ywandy ywandy commented Apr 2, 2026


详细描述

en:
This PR introduces a new openairesponse package under components/model, which implements the eino ToolCallingChatModel interface based on the OpenAI Responses API (/v1/responses endpoint), backed by github.com/openai/openai-go/v3.
Key features:

  • ResponsesAPIChatModel: supports both Generate (non-streaming) and Stream (streaming) invocation via the Responses API.
  • Tool calling: supports binding custom function tools via WithTools, with full ToolChoice control (auto / none / required / specific tool).
  • Built-in web search: supports enabling OpenAI's built-in web_search tool via config or per-call option (EnableWebSearch).
  • Multi-modal input: handles text, image URL, and image base64 content parts in user messages.
  • Response format: supports text, json_object, and json_schema output formats.
  • Multi-turn conversation: correctly maps assistant messages and tool result messages to Responses API input items.
  • Callback integration: fully integrated with eino's callback system (OnStart / OnEnd / OnError / streaming).
    zh:
    本 PR 在 components/model 下新增 openairesponse 包,基于 OpenAI Responses API(/v1/responses 端点)实现了 eino 的 ToolCallingChatModel 接口,底层使用 github.com/openai/openai-go/v3 SDK。
    主要特性:
  • 新增 ResponsesAPIChatModel,支持 Generate(非流式)和 Stream(流式)两种调用方式。
  • 支持通过 WithTools 绑定自定义函数工具,完整支持 ToolChoice(auto / none / required / 指定工具名)。
  • 支持通过配置项或运行时 Option(EnableWebSearch)开启 OpenAI 内置 web_search 工具。
  • 支持多模态输入,包括文本、图片 URL、图片 base64。
  • 支持 textjson_objectjson_schema 三种输出格式。
  • 支持多轮对话,正确将历史 assistant 消息及 tool result 消息转换为 Responses API 所需的 input items。
  • 完整集成 eino callback 体系,支持流式与非流式场景下的 OnStart / OnEnd / OnError 回调。

关联 Issue

用户文档 PR

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Apr 2, 2026

CLA assistant check
All committers have signed the CLA.

@ywandy
Copy link
Copy Markdown
Author

ywandy commented Apr 2, 2026

@shentongmartin 麻烦合并下哈

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants