diff --git a/docs b/docs index c694af9..9731deb 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit c694af9a912105490498965cdaa681659ecbcee8 +Subproject commit 9731debd6a7841ba9c51ef61859b34e1729e0bbc diff --git a/internal/ai/application/runtime/service.go b/internal/ai/application/runtime/service.go index 4596d7f..369704a 100644 --- a/internal/ai/application/runtime/service.go +++ b/internal/ai/application/runtime/service.go @@ -4,6 +4,7 @@ import ( "context" "cs-agent/internal/ai/runtime/executor" + "cs-agent/internal/pkg/utils" ) type Service struct { @@ -25,6 +26,7 @@ func (s *Service) Run(ctx context.Context, req Request) (*Summary, error) { if s == nil || s.runtime == nil || s.prepare == nil { return nil, nil } + req.UserMessage.Content = utils.BuildRuntimeMessageText(req.UserMessage.MessageType, req.UserMessage.Content) selectedSkill, skillReason, skillTrace, skillErr := s.prepare.selectSkill(ctx, req) req.SelectedSkill = selectedSkill req.SkillRouteReason = skillReason diff --git a/internal/ai/runtime/internal/impl/adapter/message_adapter.go b/internal/ai/runtime/internal/impl/adapter/message_adapter.go index 0f4fe39..1d9db92 100644 --- a/internal/ai/runtime/internal/impl/adapter/message_adapter.go +++ b/internal/ai/runtime/internal/impl/adapter/message_adapter.go @@ -1,10 +1,9 @@ package adapter import ( - "strings" - "cs-agent/internal/models" "cs-agent/internal/pkg/enums" + "cs-agent/internal/pkg/utils" "cs-agent/internal/repositories" "github.com/cloudwego/eino/schema" @@ -54,7 +53,7 @@ func BuildSchemaMessage(item *models.Message) *schema.Message { if item == nil { return nil } - content := strings.TrimSpace(item.Content) + content := utils.BuildRuntimeMessageText(item.MessageType, item.Content) if content == "" { return nil } diff --git a/internal/pkg/utils/message.go b/internal/pkg/utils/message.go index fa181e6..bd93148 100644 --- a/internal/pkg/utils/message.go +++ b/internal/pkg/utils/message.go @@ -105,6 +105,26 @@ func BuildHTMLSummary(content string) string { return strings.TrimSpace(strings.Join(parts, " ")) } +func BuildRuntimeMessageText(messageType enums.IMMessageType, content string) string { + content = strings.TrimSpace(content) + switch messageType { + case enums.IMMessageTypeHTML: + return BuildHTMLSummary(content) + case enums.IMMessageTypeImage: + if content != "" { + return "[图片] " + content + } + return "[图片]" + case enums.IMMessageTypeAttachment: + if content != "" { + return "[附件] " + content + } + return "[附件]" + default: + return content + } +} + func BuildRenderableMessage(item *models.Message) (content, payload string) { if item == nil { return "", "" diff --git a/internal/pkg/utils/message_test.go b/internal/pkg/utils/message_test.go index b87c8a4..56b3830 100644 --- a/internal/pkg/utils/message_test.go +++ b/internal/pkg/utils/message_test.go @@ -71,6 +71,22 @@ func TestBuildMessageHTMLForResponseAddsSignedURL(t *testing.T) { } } +func TestBuildRuntimeMessageTextForHTML(t *testing.T) { + got := BuildRuntimeMessageText(enums.IMMessageTypeHTML, `
你好