mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-10-03 15:53:56 +00:00
fix: 媒体 fallback 描述文本使用通道名而非固定'用户上传'
This commit is contained in:
@ -304,7 +304,7 @@ func (a *Agent) processMediaInput(evt *agentIO.InputEvent) {
|
|||||||
a.currentOutputChannel = evt.Source
|
a.currentOutputChannel = evt.Source
|
||||||
}
|
}
|
||||||
|
|
||||||
blocks, fallback := a.mediaToBlocks(evt.Payload, evt.Type)
|
blocks, fallback := a.mediaToBlocks(evt.Payload, evt.Type, evt.Source)
|
||||||
|
|
||||||
a.context.Append(ContextEvent{
|
a.context.Append(ContextEvent{
|
||||||
Timestamp: start,
|
Timestamp: start,
|
||||||
@ -358,13 +358,17 @@ func (a *Agent) processMediaInput(evt *agentIO.InputEvent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// mediaToBlocks 将媒体 payload 转为多模态 ContentBlock 数组和纯文本 fallback。
|
// mediaToBlocks 将媒体 payload 转为多模态 ContentBlock 数组和纯文本 fallback。
|
||||||
func (a *Agent) mediaToBlocks(payload map[string]interface{}, mediaType string) ([]agentAPI.ContentBlock, string) {
|
// source 是输入通道名,用于生成可读的描述文本(如"从 cli 收到了一张图片")。
|
||||||
|
func (a *Agent) mediaToBlocks(payload map[string]interface{}, mediaType string, source string) ([]agentAPI.ContentBlock, string) {
|
||||||
data, _ := payload["data"].(string)
|
data, _ := payload["data"].(string)
|
||||||
mime, _ := payload["mime"].(string)
|
mime, _ := payload["mime"].(string)
|
||||||
url, _ := payload["url"].(string)
|
url, _ := payload["url"].(string)
|
||||||
alt, _ := payload["alt"].(string)
|
alt, _ := payload["alt"].(string)
|
||||||
if alt == "" {
|
if alt == "" {
|
||||||
alt = fmt.Sprintf("[用户上传了%s]", mediaType)
|
if source == "" {
|
||||||
|
source = "unknown"
|
||||||
|
}
|
||||||
|
alt = fmt.Sprintf("[从 %s 收到了 %s]", source, mediaType)
|
||||||
}
|
}
|
||||||
|
|
||||||
var blocks []agentAPI.ContentBlock
|
var blocks []agentAPI.ContentBlock
|
||||||
@ -375,12 +379,12 @@ func (a *Agent) mediaToBlocks(payload map[string]interface{}, mediaType string)
|
|||||||
case "image":
|
case "image":
|
||||||
desc = a.inputCfg.Image.DescribePrompt
|
desc = a.inputCfg.Image.DescribePrompt
|
||||||
if desc == "" {
|
if desc == "" {
|
||||||
desc = "用户上传了一张图片,请使用 describe_image 工具查看详情。"
|
desc = fmt.Sprintf("从 %s 收到了一张图片,请使用 describe_image 工具查看详情。", source)
|
||||||
}
|
}
|
||||||
case "audio":
|
case "audio":
|
||||||
desc = a.inputCfg.Audio.DescribePrompt
|
desc = a.inputCfg.Audio.DescribePrompt
|
||||||
if desc == "" {
|
if desc == "" {
|
||||||
desc = "用户上传了一段音频,请使用 transcribe_audio 工具查看内容。"
|
desc = fmt.Sprintf("从 %s 收到了一段音频,请使用 transcribe_audio 工具查看内容。", source)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
blocks = append(blocks, agentAPI.ContentBlock{Type: "text", Text: desc})
|
blocks = append(blocks, agentAPI.ContentBlock{Type: "text", Text: desc})
|
||||||
|
|||||||
Reference in New Issue
Block a user