-
Notifications
You must be signed in to change notification settings - Fork 2.4k
feat: Implement streaming for OpenAI #3413
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
nice one @jamadeo do you want a hand test of this with my own openai api to be sure? |
michaelneale
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
beautiful change @jamadeo - tested it out works great
|
similarly, for anthropic: #3419 |
|
Huh, seems usage wasn't coming back for OpenAI. I thought it worked when I saw the cost counter go up in the UI, but that seems to use something other than the response token counts? Anyway, #3441 to fix it |
* 'main' of github.com:block/goose: fix: Set include_usage=true for OpenAI streaming (#3441) feat: `recipe list` (#2814) (#2815) docs: update github mcp config (#3433) feat: Implement streaming for OpenAI (#3413) fix: improve extension startup error messages with command details (#2694) [feat]: improve file search tools to add globsearch / grep tools (#3368) docs: typo in guide description (#3429) fix: use safe_truncate to truncate charactor (#3263) (#3264) fix: convert invalid recipe variable name to raw content (#3420) center goose mobile screenshot (#3418) docs: model context limit overrides (#3377) docs: Subagents (#3402) fix: avoid pass encoded empty string to goose run --recipe (#3361) ux: alphabetize extensions (#3416) fix: message concatenation in server session management (#3412) refactor: streamline memory directory management (#3345) feat: Add AZURE_OPENAI_API_KEY as a visible config parameter (#3265) feat: stream LLM responses (#2677) # Conflicts: # crates/goose/src/session/storage.rs # ui/desktop/src/components/ChatView.tsx # ui/desktop/src/components/settings/extensions/subcomponents/ExtensionList.tsx
* main: (54 commits) UI update with sidebar and settings tabs (#3288) docs: add CLIStreamExtensionInstructions component (#3443) chore(release): release version 1.0.36 (#3436) [goose-llm] fix image content bug, add optional request_id field (#3439) fix: Set include_usage=true for OpenAI streaming (#3441) feat: `recipe list` (#2814) (#2815) docs: update github mcp config (#3433) feat: Implement streaming for OpenAI (#3413) fix: improve extension startup error messages with command details (#2694) [feat]: improve file search tools to add globsearch / grep tools (#3368) docs: typo in guide description (#3429) fix: use safe_truncate to truncate charactor (#3263) (#3264) fix: convert invalid recipe variable name to raw content (#3420) center goose mobile screenshot (#3418) docs: model context limit overrides (#3377) docs: Subagents (#3402) fix: avoid pass encoded empty string to goose run --recipe (#3361) ux: alphabetize extensions (#3416) fix: message concatenation in server session management (#3412) refactor: streamline memory directory management (#3345) ...
* main: UI update with sidebar and settings tabs (#3288) docs: add CLIStreamExtensionInstructions component (#3443) chore(release): release version 1.0.36 (#3436) [goose-llm] fix image content bug, add optional request_id field (#3439) fix: Set include_usage=true for OpenAI streaming (#3441) feat: `recipe list` (#2814) (#2815) docs: update github mcp config (#3433) feat: Implement streaming for OpenAI (#3413) fix: improve extension startup error messages with command details (#2694) [feat]: improve file search tools to add globsearch / grep tools (#3368) docs: typo in guide description (#3429) fix: use safe_truncate to truncate charactor (#3263) (#3264)
Signed-off-by: Soroosh <[email protected]>
Signed-off-by: Kyle Santiago <[email protected]>
Signed-off-by: Adam Tarantino <[email protected]>
This implements streaming for OpenAI, which is really just the same implementation as Databricks as the latter uses the format of the former. I also moved that implementation into the formats/openai.rs accordingly, and cleaned up the get_usage function a bit (it only ever returned one type of error, which we just turned into Usage::default).