Federico Mariani created CAMEL-24671:
----------------------------------------
Summary: camel-openai: close the remaining gaps outside the
Responses API
Key: CAMEL-24671
URL: https://issues.apache.org/jira/browse/CAMEL-24671
Project: Camel
Issue Type: Improvement
Components: camel-openai
Reporter: Federico Mariani
Follow-up of CAMEL-24670, which covers the Responses API. The items below exist
in openai-java 4.55 (the version Camel uses) and in the OpenAI API spec, but
not in camel-openai.
*Fixes*
* *PDF and audio input on chat-completion*: the API accepts {{file}} and
{{input_audio}} content parts, but {{OpenAIProducer}} only sends text and
images. A PDF body is rejected, or silently dropped when {{userMessage}} is
set, the same bug CAMEL-24670 fixes for {{responses}}.
* *Speaker-labelled transcription*: a {{diarized_json}} response falls through
to {{response.toString()}}, and {{diarized_json}} is missing from the
{{audioResponseFormat}} values. {{chunkingStrategy}} (required for
{{gpt-4o-transcribe-diarize}} input over 30 seconds), {{knownSpeakerNames}} /
{{knownSpeakerReferences}}, {{keywords}}, {{languages}} and {{include}}
(logprobs) are not exposed.
* *Audio upload filename*: a {{byte[]}} or {{InputStream}} body without
{{CamelFileNameOnly}} is uploaded as {{audio}}, with no extension or content
type, while the spec asks for both.
* *Error metadata and observability*: the docs say {{CamelAiErrorCategory}} and
{{CamelAiRetryAfterMillis}} are set when any OpenAI producer call fails, but
audio-transcription, audio-translation, audio-speech, image-generation,
image-edit and tool-execution never call {{GenAiErrorSupport}} and record no
GenAI observation ({{GenAiOperationName}} has no audio or image value).
*Improvements*
* *Image moderation*: {{omni-moderation-latest}} accepts {{image_url}} inputs,
which would let a route screen uploaded images. The operation only sends text.
* *Webhook verification*: {{webhooks().unwrap()}} and {{verifySignature()}}
verify and parse OpenAI webhook events ({{response.completed}},
{{batch.completed}}, fine-tuning, eval, safety alerts). A helper usable from a
{{platform-http}} route would make background responses and batches
event-driven instead of polled.
* *Batch API*: batches, with the Files API for the JSONL input and output, run
{{/v1/responses}}, {{/v1/chat/completions}}, {{/v1/embeddings}},
{{/v1/moderations}} and image requests offline at a lower price, a natural fit
for file-based integration flows.
_Claude Code on behalf of Federico Mariani (Croway)_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)