refactor: unify voice transcription config across all channels

- Move transcriptionProvider to global channels config (not per-channel)
- ChannelManager auto-resolves API key from matching provider config
- BaseChannel gets transcription_provider attribute, no more getattr hack
- Remove redundant transcription fields from WhatsAppConfig
- Update README: document transcriptionProvider, update provider table

Made-with: Cursor
This commit is contained in:
Xubin Ren
2026-04-06 06:07:30 +00:00
parent 7b7a3e5748
commit 35dde8a30e
6 changed files with 21 additions and 15 deletions
+2 -2
View File
@@ -22,6 +22,7 @@ class BaseChannel(ABC):
name: str = "base"
display_name: str = "Base"
transcription_provider: str = "groq"
transcription_api_key: str = ""
def __init__(self, config: Any, bus: MessageBus):
@@ -41,8 +42,7 @@ class BaseChannel(ABC):
if not self.transcription_api_key:
return ""
try:
provider_name = getattr(self, "transcription_provider", "groq")
if provider_name == "openai":
if self.transcription_provider == "openai":
from nanobot.providers.transcription import OpenAITranscriptionProvider
provider = OpenAITranscriptionProvider(api_key=self.transcription_api_key)
else: