feat: [OpenAI] Release OpenAI Responses API #910
Conversation
- Streaming no fully enabled
* Minimal new module setup including spec * Generation partial-success * Remove examples * Successfully filter by path * Attach spec filter command * Initial setup * Successful PoC with OpenAI Models * Version 1 * Stable api * Change class name * Add tests * fix dependency analyse issues * Initial draft untested * Second draft - Streaming no fully enabled * Successful E2E * Streaming initial draft * Streaming E2E with chat completion * isStreaming check simplified * Cleanup PoC and rename module * Reduce Javadoc verbosity * Restrict to `/responses` api * Cleanup comments * Charles review suggestions * Charles review - round 2 suggestions * Add dependency * Mark openai dependency optional and new client `@Beta` * Cleanup and no throw on missing model * pmd * Responses API complete * ChatCompletionCreateParams throws without model. Needs rethink client API creation forModel * Cleanup and close with test documenting limitation * First draft responses only * jacoco limits * Remove ResponseService wrapper since remote API behaviour changed
# Conflicts: # docs/release_notes.md # pom.xml
|
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Jonas-Isr
left a comment
There was a problem hiding this comment.
The code looks good overall! I had a few comments and one question:
Would it make sense to also test the other features mentioned in the md file, like reasoning effort, background mode etc in the e2e tests? Then we would also have code examples for those features that we could put into the documentation.
…onmodels/openai/AiCoreOpenAiClient.java Co-authored-by: Jonas-Isr <jonas.israel@sap.com>
Jonas-Isr
left a comment
There was a problem hiding this comment.
Looks very good!
Did you consider adding the other usage examples that already work from the md file into the e2e tests? (For example setting reasoning level)
…llers/OpenAiController.java Co-authored-by: Jonas-Isr <jonas.israel@sap.com>
| <div class="tooltip-content"> | ||
| Create a streaming response using Responses API | ||
| </div> | ||
| </div> |
There was a problem hiding this comment.
Why not cancel, delete, and retrieve?
There was a problem hiding this comment.
I mentioned here , so I'm not sure how could this be done now?
There was a problem hiding this comment.
I'll be fixing them after taking a look at a similar case which @CharlesDuboisSAP showed me here
|
I like the addition of the new examples and tests! |
CharlesDuboisSAP
left a comment
There was a problem hiding this comment.
Also please fix your merge conflicts
| followUp.output().stream().filter(ResponseOutputItem::isMessage).findFirst(); | ||
| assertThat(message).isPresent(); | ||
| assertThat(message.get().asMessage().content().get(0).asOutputText().text()) | ||
| .containsIgnoringCase("3"); |
There was a problem hiding this comment.
| .containsIgnoringCase("3"); | |
| .containsAnyOf("three", "3"); |
This test was flaky
Context
AI/ai-sdk-java-backlog#390.
Stability concerns about AI Proxy are tackled now supporting new endpoints and documenting Responses API.
Feature scope:
Definition of Done
Aligned changes with the JavaScript SDK