fix tool_call tts
This commit is contained in:
parent
dae6d6a2b0
commit
21c6e7808c
3 changed files with 22 additions and 5 deletions
|
|
@ -1379,6 +1379,9 @@ func (al *AgentLoop) runLLMIteration(
|
|||
Channel: opts.Channel,
|
||||
ChatID: opts.ChatID,
|
||||
Content: feedbackMsg,
|
||||
Metadata: map[string]string{
|
||||
"is_tool_call": "true",
|
||||
},
|
||||
})
|
||||
fbCancel()
|
||||
}
|
||||
|
|
@ -1397,6 +1400,9 @@ func (al *AgentLoop) runLLMIteration(
|
|||
Channel: opts.Channel,
|
||||
ChatID: opts.ChatID,
|
||||
Content: result.ForUser,
|
||||
Metadata: map[string]string{
|
||||
"is_tool_call": "true",
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -1447,6 +1453,9 @@ func (al *AgentLoop) runLLMIteration(
|
|||
Channel: opts.Channel,
|
||||
ChatID: opts.ChatID,
|
||||
Content: r.result.ForUser,
|
||||
Metadata: map[string]string{
|
||||
"is_tool_call": "true",
|
||||
},
|
||||
})
|
||||
logger.DebugCF("agent", "Sent tool result to user",
|
||||
map[string]any{
|
||||
|
|
|
|||
|
|
@ -30,10 +30,11 @@ type InboundMessage struct {
|
|||
}
|
||||
|
||||
type OutboundMessage struct {
|
||||
Channel string `json:"channel"`
|
||||
ChatID string `json:"chat_id"`
|
||||
Content string `json:"content"`
|
||||
ReplyToMessageID string `json:"reply_to_message_id,omitempty"`
|
||||
Channel string `json:"channel"`
|
||||
ChatID string `json:"chat_id"`
|
||||
Content string `json:"content"`
|
||||
ReplyToMessageID string `json:"reply_to_message_id,omitempty"`
|
||||
Metadata map[string]string `json:"metadata,omitempty"`
|
||||
}
|
||||
|
||||
// MediaPart describes a single media attachment to send.
|
||||
|
|
|
|||
|
|
@ -154,7 +154,14 @@ func (c *DiscordChannel) Send(ctx context.Context, msg bus.OutboundMessage) erro
|
|||
return nil
|
||||
}
|
||||
|
||||
if c.tts != nil {
|
||||
isToolCall := false
|
||||
if msg.Metadata != nil {
|
||||
if val, ok := msg.Metadata["is_tool_call"]; ok && val == "true" {
|
||||
isToolCall = true
|
||||
}
|
||||
}
|
||||
|
||||
if c.tts != nil && !isToolCall {
|
||||
if ch, err := c.session.State.Channel(channelID); err == nil && ch.GuildID != "" {
|
||||
if vc, ok := c.session.VoiceConnections[ch.GuildID]; ok && vc != nil {
|
||||
// Cancel any previous TTS playback
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue