l-ai-memories-proto/memory.proto
Aleksander Ogurtsov 96fb69e20e Add_gRPC_methods
2026-03-15 10:12:10 +03:00

146 lines
4.9 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}