You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: echo STT transcripts to thread before agent reply (#571)
* feat: STT transcript echo to thread (Discord + Slack)
When STT transcribes a voice message, optionally post the transcript back
to the thread (no mentions) before the agent reply so users can verify what
was heard. Default is OFF — opt in via [stt] echo_transcript = true.
- New config: [stt] echo_transcript (default false, opt-in)
- New helper: stt::post_echo with platform-agnostic ChatAdapter handle —
future LINE/Telegram/Teams adapters get echo for free
- Format: > 🎤 <transcript> per clip, all in one thread message
- Failure: > 🎤 (transcription failed) line + ⚠️ reaction on the user msg
- Helm: agents.<name>.stt.echoTranscript (camelCase) wired through configmap
- Docs: docs/stt.md and docs/config-reference.md updated
Rebased on top of #567 (gateway config rendering).
Tests: 133/133 cargo. helm-unittest: 28/28. Clippy --all-targets -D warnings clean.
* fix: close unclosed test fn delimiter + cargo fmt
---------
Co-authored-by: obrutjack <obrutjack@yahoo.com>
Copy file name to clipboardExpand all lines: docs/config-reference.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -204,6 +204,7 @@ Speech-to-text transcription for voice messages. Uses an OpenAI-compatible `/aud
204
204
|`api_key`| string |`""`| API key for the STT service. When empty and `base_url` contains `groq.com`, the `GROQ_API_KEY` environment variable is used automatically. For local servers, use `api_key = "not-needed"`. |
205
205
|`model`| string |`"whisper-large-v3-turbo"`| Model name to use for transcription. |
206
206
|`base_url`| string |`"https://api.groq.com/openai/v1"`| Base URL of the STT API. Any OpenAI-compatible `/audio/transcriptions` endpoint works. |
207
+
|`echo_transcript`| bool |`false`| When set to `true` and STT runs, post a `> 🎤 <transcript>` message to the thread before the agent reply so users can verify what was heard. Failures show `(transcription failed)` and add a ⚠️ reaction to the original message. |
|`api_key`| no*| — | API key for the STT provider. *Auto-detected from `GROQ_API_KEY` env var if not set. For local servers, use any non-empty string (e.g. `"not-needed"`). |
59
60
|`model`| no |`whisper-large-v3-turbo`| Whisper model name. Varies by provider. |
60
61
|`base_url`| no |`https://api.groq.com/openai/v1`| OpenAI-compatible API base URL. |
62
+
|`echo_transcript`| no |`false`| When set to `true` and STT runs, post a `> 🎤 <transcript>` message to the thread before the agent reply so users can verify what was heard. Failures show `(transcription failed)` and add a ⚠️ reaction to the original message. |
0 commit comments