OpenAI - Responses API Operation
The responses operation calls the OpenAI Responses API (non-streaming). It supports the same text and image input ergonomics as chat-completion, maps systemMessage to API instructions, and exposes CamelOpenAIResponseId plus token usage headers. Use previousResponseId / CamelOpenAIPreviousResponseId for server-side conversation state.
Hosted tools: set builtinTools to a comma-separated list (web_search, file_search, code_interpreter). file_search requires fileSearchVectorStoreIds. Pass hosted MCP tool definitions as JSON via hostedMcpTools.
When storeFullResponse=true, the SDK Response object is stored on exchange property CamelOpenAIResponsesResponse.
-
Java
-
YAML
from("direct:ask")
.to("openai:responses?model=gpt-4o&systemMessage=You are a support assistant")
.log("Answer: ${body} id: ${header.CamelOpenAIResponseId}");
from("direct:continue")
.setHeader("CamelOpenAIPreviousResponseId", variable("lastId"))
.to("openai:responses?model=gpt-4o")
.setVariable("lastId", header("CamelOpenAIResponseId")); - route:
from:
uri: direct:ask
steps:
- to:
uri: openai:responses
parameters:
model: gpt-4o
systemMessage: You are a support assistant
- log:
message: "Answer: ${body} id: ${header.CamelOpenAIResponseId}"
- route:
from:
uri: direct:continue
steps:
- setHeader:
name: CamelOpenAIPreviousResponseId
expression:
simple:
expression: "${variable.lastId}"
- to:
uri: openai:responses
parameters:
model: gpt-4o
- setVariable:
name: lastId
expression:
simple:
expression: "${header.CamelOpenAIResponseId}" Streaming is not supported on this operation; use chat-completion for streaming.
Function tools wired to Camel routes are not yet supported on this operation.