From 2d142cdfdb1c849a9ba9a845525e23784bc18416 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Mon, 17 Aug 2026 15:14:56 +0300 Subject: [PATCH] DEV-000063 classify reminder and capability directives --- modules/interaction/domain/chat.go | 2 +- modules/interaction/domain/chat_test.go | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/interaction/domain/chat.go b/modules/interaction/domain/chat.go index 4a98f40..63649f7 100644 --- a/modules/interaction/domain/chat.go +++ b/modules/interaction/domain/chat.go @@ -105,7 +105,7 @@ func ClassifySpeechAct(message string, corrects interaction.HumanUtteranceID) in return interaction.SpeechActQuestion case strings.Contains(lower, "проверь") || strings.Contains(lower, "исслед") || strings.Contains(lower, "разбер"): return interaction.SpeechActRequestToInvestigate - case strings.Contains(lower, "сделай") || strings.Contains(lower, "запусти") || strings.Contains(lower, "создай") || strings.Contains(lower, "настрой") || strings.Contains(lower, "добавь") || strings.Contains(lower, "измени") || strings.Contains(lower, "поменяй") || strings.Contains(lower, "используй") || strings.Contains(lower, "удали") || strings.Contains(lower, "удалить"): + case strings.Contains(lower, "сделай") || strings.Contains(lower, "запусти") || strings.Contains(lower, "создай") || strings.Contains(lower, "настрой") || strings.Contains(lower, "добавь") || strings.Contains(lower, "измени") || strings.Contains(lower, "поменяй") || strings.Contains(lower, "используй") || strings.Contains(lower, "удали") || strings.Contains(lower, "удалить") || strings.Contains(lower, "напомни") || strings.Contains(lower, "подключи"): return interaction.SpeechActDirective case strings.HasPrefix(lower, "я решил") || strings.Contains(lower, "решение"): return interaction.SpeechActDecision diff --git a/modules/interaction/domain/chat_test.go b/modules/interaction/domain/chat_test.go index d53c6b0..580a976 100644 --- a/modules/interaction/domain/chat_test.go +++ b/modules/interaction/domain/chat_test.go @@ -36,6 +36,19 @@ func TestNewHumanUtteranceAppendsCorrectionRelation(t *testing.T) { } } +func TestNewHumanUtteranceClassifiesReminderAndCapabilityConnectionAsDirective(t *testing.T) { + conversation := interaction.Conversation{ID: "conversation-1", ActorID: "actor-1", PrincipalID: "principal-1", Channel: interaction.ChannelWebChat, State: interaction.ConversationOpen} + for _, message := range []string{"Напомни завтра позвонить врачу.", "Подключи интеграцию с неизвестным сервисом."} { + utterance, _, _, err := NewHumanUtterance(conversation, interaction.ChatMessageRequest{Message: message}, time.Unix(10, 0)) + if err != nil { + t.Fatal(err) + } + if utterance.SpeechAct != interaction.SpeechActDirective { + t.Fatalf("expected directive for %q, got %s", message, utterance.SpeechAct) + } + } +} + func TestNewConversationRequiresActorAndPrincipal(t *testing.T) { _, err := NewConversation(identity.ActorID(""), identity.PrincipalID("principal-1"), time.Unix(10, 0)) if err == nil { -- 2.54.0