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

Karol Krawczyk reassigned CAMEL-23965:
--------------------------------------

    Assignee: Karol Krawczyk

> camel-openai: add moderation operation
> --------------------------------------
>
>                 Key: CAMEL-23965
>                 URL: https://issues.apache.org/jira/browse/CAMEL-23965
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-openai
>    Affects Versions: 4.21.0
>            Reporter: Federico Mariani
>            Assignee: Karol Krawczyk
>            Priority: Major
>              Labels: ai
>
> The pinned openai-java SDK (4.41.0) exposes 
> {{moderations().create(ModerationCreateParams)}}, but camel-openai has no 
> moderation operation. Moderation is the canonical pre-filter for untrusted 
> input on public-facing AI routes — rejecting policy-violating content 
> *before* spending chat tokens or triggering tool calls — and fits Camel's 
> routing model perfectly (content-based routing on the moderation verdict).
> Proposal: new operation {{openai:moderation}}:
> * body: String (or List of Strings for batch);
> * options/headers: {{moderationModel}} (e.g. {{omni-moderation-latest}});
> * output: body unchanged (pass-through style) with headers 
> {{CamelOpenAIModerationFlagged}} (Boolean), 
> {{CamelOpenAIModerationCategories}} (Map or JSON), 
> {{CamelOpenAIModerationCategoryScores}}; full response via 
> {{storeFullResponse}}.
> Pass-through body + verdict headers lets users do content-based routing on 
> the verdict without content juggling:
> {code:java}
> // guard a public-facing chat route: reject flagged input before spending 
> chat tokens
> from("platform-http:/chat")
>     .to("openai:moderation?moderationModel=omni-moderation-latest")
>     .choice()
>         .when(header(OpenAIConstants.MODERATION_FLAGGED).isEqualTo(true))
>             .setBody(constant("Your message violates our usage policy."))
>         .otherwise()
>             .to("openai:chat-completion?model=gpt-5")
>     .end();
> {code}
> Cross-reference: CAMEL-23954 proposes moderation for camel-langchain4j-agent 
> via LangChain4j {{@Moderate}}; a native operation in camel-openai is simpler 
> (no annotated-interface machinery) and would give the OpenAI stack parity.
> _This issue was drafted by Claude Code on behalf of Federico Mariani_



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

Reply via email to