Repository navigation
feat(agent): add Deepgram Think provider - #821
Conversation
|
dg-coreylweathers
left a comment
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?
dg-coreylweathers
left a comment
There was a problem hiding this comment.
Thanks @GregHolmes, approving so you can merge ahead of the regen, per your plan of no release until the second regen.
- Since my last review:
voice_prompt_opt_outmoved to think-fast, where it applies, and example 34 is in the README. Both nits done. - In Docker: 1137 passed / 4 skipped, mypy src + typecheck clean. Example 34 runs unmodified against prod (SettingsApplied).
One thing for the regen PR: drop the two .fernignore lines freezing types/ and requests/think_settings_v1provider.py in the same commit. From fern ir on #1329's head, the regen deletes deepgram_reasoning_mode.py (it becomes DeepgramThinkProviderReasoningMode) while those frozen files still import it, so import deepgram would fail. Also worth regenerating from a clean docs tree, since .fern/metadata.json shows this one came from a dirty one.
🤖 I have created a release *beep* *boop* --- ## [7.17.0](v7.16.0...v7.17.0) (2026-11-02) ### Features * **Voice Agent:** Use Deepgram-hosted language models in the Think stage with `ThinkSettingsV1Provider_Deepgram`. Select `think-fast` (requires Model Improvement Program participation) or `phonellm-mini-alpha-2-fp8` (for sessions using `mip_opt_out=True`). The provider supports `temperature`, `reasoning_mode`, and `voice_prompt_opt_out`; use `reasoning_mode="none"` or omit it with phonellm to prevent reasoning text from being spoken. Early Access. ([#821](#821)) ([5c7f319](5c7f319)) ([#823](#823)) ([3280a4a](3280a4a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Greg Holmes <greg.holmes@deepgram.com>
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