Repository navigation
feat(agent): add Deepgram Think provider - #821
Open
GregHolmes wants to merge 11 commits into
Open
GregHolmes wants to merge 11 commits into
GregHolmes wants to merge 11 commits into
Conversation
GregHolmes
requested review from
deepgram-kiley and
dg-coreylweathers
as code owners
October 29, 2026 07:57
Contributor
|
dg-coreylweathers
previously approved these changes
Oct 29, 2026
dg-coreylweathers
left a comment
Contributor
There was a problem hiding this comment.
Looks good. Approving the content, but please hold the merge until docs #1335 and #1329 land on main. If a regen runs from docs main before that, deepgram_reasoning_mode.py gets deleted while the frozen provider file still imports it, and import deepgram breaks.
What I checked:
- Speak types: untouched. The regen flipped Speak
expressivityto int, and the patch commit put StrictInt back. - Parsing: open_ai / anthropic / google / groq / aws_bedrock think payloads still parse to their own classes. deepgram think goes to the new class, and deepgram speak (with or without speed) stays Speak. Sync and async send the same JSON, including a fallback think list.
- Patches: all still there. .fernignore only adds lines, and none of the socket/transport/redaction/query files changed.
- Tests in Docker: 1137 passed, 4 skipped. mypy src + typecheck clean.
- Live against prod: phonellm-mini-alpha-2-fp8 gets SettingsApplied with mip_opt_out true and false. think-fast gets SettingsApplied (VOICE_PROMPT_ADDED warning unless voice_prompt_opt_out is set). think-fast with mip_opt_out true gets INVALID_SETTINGS, like the example comment says. Plain
phonellm-mini-alpha-2gets "model not available", so -fp8 is the right ID. Example 34 and the manual script both run clean.
One thing I'd fix before merge:
- The .fernignore freeze covers the whole think provider file, so OpenAI/Anthropic/etc. think updates stop reaching Python until it's removed. Once #1335 is on main, can you regen from it and drop those two lines? The generated enum will also become
DeepgramThinkProviderReasoningMode, same as Java.
Small stuff:
- examples/README.md: add 34 under 33.
- examples/34 line 40 (and the manual script line 44): voice_prompt_opt_out only matters for think-fast, so it does nothing here. Drop it or add a comment.
- .fern/metadata.json says the regen came from a dirty docs tree. Can you note what was local?
This branch has not been deployed
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.
Feature
Adds the Deepgram Think provider for Voice Agent settings. Existing provider configurations continue to compile and run unchanged. Release Please should cut the next release as a minor version.
Regeneration
Regenerated the Python SDK with fern-python-sdk 5.27.1 from deepgram-docs PR #1329.
Validation