Venice's API doesn't support certain OpenAI-compatible parameters that Clawdbot sends by default: - `store`: Venice returns HTTP 400 with no body when this is present - `developer` role: Not supported by Venice's API This adds VENICE_COMPAT settings (supportsStore: false, supportsDeveloperRole: false) to all Venice model definitions, both from the static catalog and dynamically discovered models. Fixes issues reported in PR #1666 where users experienced silent failures (HTTP 400, no body) when using Venice models. Co-authored-by: jonisjongithub <jonisjongithub@users.noreply.github.com> Co-authored-by: Clawdbot <bot@clawd.bot>
90 lines
2.1 KiB
Markdown
90 lines
2.1 KiB
Markdown
---
|
|
summary: "Deepgram transcription for inbound voice notes"
|
|
read_when:
|
|
- You want Deepgram speech-to-text for audio attachments
|
|
- You need a quick Deepgram config example
|
|
---
|
|
# Deepgram (Audio Transcription)
|
|
|
|
Deepgram is a speech-to-text API. In Clawdbot it is used for **inbound audio/voice note
|
|
transcription** via `tools.media.audio`.
|
|
|
|
When enabled, Clawdbot uploads the audio file to Deepgram and injects the transcript
|
|
into the reply pipeline (`{{Transcript}}` + `[Audio]` block). This is **not streaming**;
|
|
it uses the pre-recorded transcription endpoint.
|
|
|
|
Website: https://deepgram.com
|
|
Docs: https://developers.deepgram.com
|
|
|
|
## Quick start
|
|
|
|
1) Set your API key:
|
|
```
|
|
DEEPGRAM_API_KEY=dg_...
|
|
```
|
|
|
|
2) Enable the provider:
|
|
```json5
|
|
{
|
|
tools: {
|
|
media: {
|
|
audio: {
|
|
enabled: true,
|
|
models: [{ provider: "deepgram", model: "nova-3" }]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Options
|
|
|
|
- `model`: Deepgram model id (default: `nova-3`)
|
|
- `language`: language hint (optional)
|
|
- `tools.media.audio.providerOptions.deepgram.detect_language`: enable language detection (optional)
|
|
- `tools.media.audio.providerOptions.deepgram.punctuate`: enable punctuation (optional)
|
|
- `tools.media.audio.providerOptions.deepgram.smart_format`: enable smart formatting (optional)
|
|
|
|
Example with language:
|
|
```json5
|
|
{
|
|
tools: {
|
|
media: {
|
|
audio: {
|
|
enabled: true,
|
|
models: [
|
|
{ provider: "deepgram", model: "nova-3", language: "en" }
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Example with Deepgram options:
|
|
```json5
|
|
{
|
|
tools: {
|
|
media: {
|
|
audio: {
|
|
enabled: true,
|
|
providerOptions: {
|
|
deepgram: {
|
|
detect_language: true,
|
|
punctuate: true,
|
|
smart_format: true
|
|
}
|
|
},
|
|
models: [{ provider: "deepgram", model: "nova-3" }]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Notes
|
|
|
|
- Authentication follows the standard provider auth order; `DEEPGRAM_API_KEY` is the simplest path.
|
|
- Override endpoints or headers with `tools.media.audio.baseUrl` and `tools.media.audio.headers` when using a proxy.
|
|
- Output follows the same audio rules as other providers (size caps, timeouts, transcript injection).
|