[ 
https://issues.apache.org/jira/browse/CAMEL-24671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Federico Mariani updated CAMEL-24671:
-------------------------------------
    Description: 
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.

* *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).

_Claude Code on behalf of Federico Mariani (Croway)_

  was:
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)_


> 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
>            Priority: Major
>
> 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.
> * *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).
> _Claude Code on behalf of Federico Mariani (Croway)_



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to