syntax = "proto3"; package memory; option go_package = "git.be.kaien.ru/l-ai/l-ai-memories/proto"; // Memory представляет воспоминание о пользователе message Memory { int64 id = 1; int64 user_id = 2; string username = 3; string key = 4; // Уникальный ключ факта string value = 5; // Значение факта string category = 6; // preference, fact, personality, relationship string priority = 7; // core, normal double confidence = 8; // 0.0 - 1.0 repeated string tags = 9; string source = 10; int64 created_at = 11; int64 updated_at = 12; } // StoreMemoryRequest запрос на сохранение воспоминания message StoreMemoryRequest { int64 user_id = 1; string username = 2; string message = 3; string key = 4; string value = 5; string category = 6; string priority = 7; double confidence = 8; repeated string tags = 9; string source = 10; } // StoreMemoryResponse ответ на сохранение воспоминания message StoreMemoryResponse { bool success = 1; string error = 2; int64 memory_id = 3; } // GetMemoriesRequest запрос на получение воспоминаний message GetMemoriesRequest { int64 user_id = 1; string username = 2; repeated string tags = 3; string search_query = 4; int32 limit = 5; } // GetMemoriesResponse ответ с воспоминаниями message GetMemoriesResponse { repeated Memory memories = 1; } // ProcessMessageRequest запрос на обработку сообщения для извлечения фактов message ProcessMessageRequest { int64 user_id = 1; string username = 2; string message = 3; string context = 4; } // ProcessMessageResponse ответ с извлечёнными фактами message ProcessMessageResponse { bool success = 1; string error = 2; int32 facts_extracted = 3; } // HealthCheckRequest для проверки здоровья сервиса message HealthCheckRequest {} // HealthCheckResponse для ответа на проверку здоровья message HealthCheckResponse { bool serving = 1; string version = 2; } // GetRelevantMemoriesRequest запрос на получение релевантных воспоминаний message GetRelevantMemoriesRequest { int64 user_id = 1; string username = 2; string current_message = 3; // Для генерации тегов int32 limit = 4; } // GetRelevantMemoriesResponse ответ с релевантными воспоминаниями message GetRelevantMemoriesResponse { repeated Memory memories = 1; string formatted_prompt = 2; // Готовый блок для вставки в промпт } // GetMemoriesByUserRequest запрос на получение всех воспоминаний пользователя message GetMemoriesByUserRequest { int64 user_id = 1; string username = 2; } // GetMemoriesByUserResponse ответ с воспоминаниями пользователя message GetMemoriesByUserResponse { repeated Memory memories = 1; } // BulkRefreshRequest запрос на массовую обработку сообщений message BulkRefreshRequest { int64 user_id = 1; string username = 2; repeated string messages = 3; // Список сообщений для обработки } // BulkRefreshResponse ответ с результатами массовой обработки message BulkRefreshResponse { bool success = 1; string error = 2; int32 messages_processed = 3; int32 facts_extracted = 4; int32 batch_count = 5; } // MemoryService - сервис для работы с памятью service MemoryService { // StoreMemory сохраняет воспоминание rpc StoreMemory(StoreMemoryRequest) returns (StoreMemoryResponse); // GetMemories получает воспоминания пользователя rpc GetMemories(GetMemoriesRequest) returns (GetMemoriesResponse); // ProcessMessage обрабатывает сообщение и извлекает факты rpc ProcessMessage(ProcessMessageRequest) returns (ProcessMessageResponse); // GetRelevantMemories получает релевантные воспоминания для текущего сообщения rpc GetRelevantMemories(GetRelevantMemoriesRequest) returns (GetRelevantMemoriesResponse); // GetMemoriesByUser получает все воспоминания пользователя rpc GetMemoriesByUser(GetMemoriesByUserRequest) returns (GetMemoriesByUserResponse); // BulkRefresh обрабатывает множество сообщений для извлечения фактов rpc BulkRefresh(BulkRefreshRequest) returns (BulkRefreshResponse); // HealthCheck проверяет здоровье сервиса rpc HealthCheck(HealthCheckRequest) returns (HealthCheckResponse); }