mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
Feat/speech support (#392)
* feat: expand speech provider support with new client types and configuration schema * feat: add icon support for speech providers and update related configurations * feat: add SVG support for Deepgram and Elevenlabs with Vue components * feat: except *-speech client type in llm provider * feat: enhance speech provider functionality with advanced settings and model import capabilities * chore: remove go.mod replace * feat: enhance speech provider functionality with advanced settings and model import capabilities * chore: update go module dependencies * feat: Ear and Mouth * fix: separate ear/mouth page * fix: separate audio domain and restore transcription templates Move speech and transcription internals into the audio domain, restore template-driven transcription providers, and regenerate Swagger/SDK so the frontend can stop hand-calling /transcription-* APIs. --------- Co-authored-by: aki <arisu@ieee.org>
This commit is contained in:
@@ -175,6 +175,14 @@ func (s *Service) UpsertBot(ctx context.Context, botID string, req UpsertRequest
|
||||
}
|
||||
ttsModelUUID = modelID
|
||||
}
|
||||
transcriptionModelUUID := pgtype.UUID{}
|
||||
if value := strings.TrimSpace(req.TranscriptionModelID); value != "" {
|
||||
modelID, err := db.ParseUUID(value)
|
||||
if err != nil {
|
||||
return Settings{}, err
|
||||
}
|
||||
transcriptionModelUUID = modelID
|
||||
}
|
||||
browserContextUUID := pgtype.UUID{}
|
||||
if value := strings.TrimSpace(req.BrowserContextID); value != "" {
|
||||
ctxID, err := db.ParseUUID(value)
|
||||
@@ -204,6 +212,7 @@ func (s *Service) UpsertBot(ctx context.Context, botID string, req UpsertRequest
|
||||
SearchProviderID: searchProviderUUID,
|
||||
MemoryProviderID: memoryProviderUUID,
|
||||
TtsModelID: ttsModelUUID,
|
||||
TranscriptionModelID: transcriptionModelUUID,
|
||||
BrowserContextID: browserContextUUID,
|
||||
PersistFullToolResults: current.PersistFullToolResults,
|
||||
})
|
||||
@@ -298,6 +307,7 @@ func normalizeBotSettingsReadRow(row sqlc.GetSettingsByBotIDRow) Settings {
|
||||
row.SearchProviderID,
|
||||
row.MemoryProviderID,
|
||||
row.TtsModelID,
|
||||
row.TranscriptionModelID,
|
||||
row.BrowserContextID,
|
||||
row.PersistFullToolResults,
|
||||
)
|
||||
@@ -322,6 +332,7 @@ func normalizeBotSettingsWriteRow(row sqlc.UpsertBotSettingsRow) Settings {
|
||||
row.SearchProviderID,
|
||||
row.MemoryProviderID,
|
||||
row.TtsModelID,
|
||||
row.TranscriptionModelID,
|
||||
row.BrowserContextID,
|
||||
row.PersistFullToolResults,
|
||||
)
|
||||
@@ -345,6 +356,7 @@ func normalizeBotSettingsFields(
|
||||
searchProviderID pgtype.UUID,
|
||||
memoryProviderID pgtype.UUID,
|
||||
ttsModelID pgtype.UUID,
|
||||
transcriptionModelID pgtype.UUID,
|
||||
browserContextID pgtype.UUID,
|
||||
persistFullToolResults bool,
|
||||
) Settings {
|
||||
@@ -376,6 +388,9 @@ func normalizeBotSettingsFields(
|
||||
if ttsModelID.Valid {
|
||||
settings.TtsModelID = uuid.UUID(ttsModelID.Bytes).String()
|
||||
}
|
||||
if transcriptionModelID.Valid {
|
||||
settings.TranscriptionModelID = uuid.UUID(transcriptionModelID.Bytes).String()
|
||||
}
|
||||
if browserContextID.Valid {
|
||||
settings.BrowserContextID = uuid.UUID(browserContextID.Bytes).String()
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ type Settings struct {
|
||||
SearchProviderID string `json:"search_provider_id"`
|
||||
MemoryProviderID string `json:"memory_provider_id"`
|
||||
TtsModelID string `json:"tts_model_id"`
|
||||
TranscriptionModelID string `json:"transcription_model_id"`
|
||||
BrowserContextID string `json:"browser_context_id"`
|
||||
Language string `json:"language"`
|
||||
AclDefaultEffect string `json:"acl_default_effect"`
|
||||
@@ -36,6 +37,7 @@ type UpsertRequest struct {
|
||||
SearchProviderID string `json:"search_provider_id,omitempty"`
|
||||
MemoryProviderID string `json:"memory_provider_id,omitempty"`
|
||||
TtsModelID string `json:"tts_model_id,omitempty"`
|
||||
TranscriptionModelID string `json:"transcription_model_id,omitempty"`
|
||||
BrowserContextID string `json:"browser_context_id,omitempty"`
|
||||
Language string `json:"language,omitempty"`
|
||||
AclDefaultEffect string `json:"acl_default_effect,omitempty"`
|
||||
|
||||
Reference in New Issue
Block a user