Fixed CLI streamed chat completions. - #319
Merged
Merged
Conversation
Streamed chat completions use a different response structure per returned token, also they may have roles and empty tokens at the end. Handle this sensibly.
|
Thanks for this PR (and apologies for the delay)! Our CLI today only renders the content of the completion, so I removed the part that renders the role. |
athyuttamre
approved these changes
May 8, 2023
megamanics
pushed a commit
to devops-testbed/openai-python
that referenced
this pull request
Aug 14, 2024
* Fixed streamed chat completions. Streamed chat completions use a different response structure per returned token, also they may have roles and empty tokens at the end. Handle this sensibly. * Only render content --------- Co-authored-by: Atty Eleti <atty@openai.com>
cgayapr
pushed a commit
to cgayapr/openai-python
that referenced
this pull request
Dec 14, 2024
* Fixed streamed chat completions. Streamed chat completions use a different response structure per returned token, also they may have roles and empty tokens at the end. Handle this sensibly. * Only render content --------- Co-authored-by: Atty Eleti <atty@openai.com>
safa0
pushed a commit
to safa0/openai-agents-python
that referenced
this pull request
Apr 27, 2025
We don't really need mypy on 3.9 (unit tests would catch any real issues), and it causes issues with the rest of this stack. --- [//]: # (BEGIN SAPLING FOOTER) * openai#324 * openai#322 * openai#321 * openai#320 * __->__ openai#319
safa0
pushed a commit
to safa0/openai-agents-python
that referenced
this pull request
Apr 27, 2025
### Summary: 1. Add the MCP dep for python 3.10, since it doesn't support 3.9 and below 2. Create MCPServer, which is the agents SDK representation of an MCP server 3. Create implementations for HTTP-SSE and StdIO servers, directly copying the [MCP SDK example](https://github.com/modelcontextprotocol/python-sdk/blob/main/examples/clients/simple-chatbot/mcp_simple_chatbot/main.py) 4. Add a util to transform MCP tools into Agent SDK tools Note: I added optional caching support to the servers. That way, if you happen to know a server's tools don't change, you can just cache them. ### Test Plan: Checks pass. I added tests at the end of the stack. --- openai#324 openai#322 openai#321 -> openai#320 openai#319
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Streamed chat completions use a different response structure vs non-streamed, i.e. deltas, which caused KeyError exceptions. Also these token deltas may have roles, and there may be empty deltas at the end of a completion. Handle these cases sensibly without breaking the non-streamed path.
I manually tested both the streamed and non-streamed paths, but no unit tests, sorry, was busy.