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)

Reply via email to