73 lines
1.8 KiB
Protocol Buffer
73 lines
1.8 KiB
Protocol Buffer
|
|
syntax = "proto3";
|
||
|
|
|
||
|
|
package emotions;
|
||
|
|
|
||
|
|
// Emotion classification for a message
|
||
|
|
message Emotion {
|
||
|
|
int64 id = 1;
|
||
|
|
int64 message_id = 2;
|
||
|
|
string emotion = 3;
|
||
|
|
double confidence = 4;
|
||
|
|
string model_version = 5;
|
||
|
|
int64 created_at = 6;
|
||
|
|
int64 updated_at = 7;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Request to get a single emotion by message ID
|
||
|
|
message GetEmotionRequest {
|
||
|
|
int64 message_id = 1;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Request to get multiple emotions with optional filters
|
||
|
|
message GetEmotionsRequest {
|
||
|
|
repeated int64 message_ids = 1;
|
||
|
|
optional string emotion_filter = 2;
|
||
|
|
optional double min_confidence = 3;
|
||
|
|
optional int32 limit = 4;
|
||
|
|
optional int32 offset = 5;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Response containing multiple emotions
|
||
|
|
message EmotionsResponse {
|
||
|
|
repeated Emotion emotions = 1;
|
||
|
|
int32 total_count = 2;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Request to update an emotion (for corrections/fine-tuning)
|
||
|
|
message UpdateEmotionRequest {
|
||
|
|
int64 message_id = 1;
|
||
|
|
string emotion = 2;
|
||
|
|
double confidence = 3;
|
||
|
|
optional string notes = 4;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Request to delete an emotion
|
||
|
|
message DeleteEmotionRequest {
|
||
|
|
int64 id = 1;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Generic response for mutations
|
||
|
|
message EmotionResponse {
|
||
|
|
bool success = 1;
|
||
|
|
string message = 2;
|
||
|
|
optional Emotion emotion = 3;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Empty message for list all
|
||
|
|
message Empty {}
|
||
|
|
|
||
|
|
// The emotion service with full CRUD operations
|
||
|
|
service EmotionService {
|
||
|
|
// Read operations
|
||
|
|
rpc GetEmotion(GetEmotionRequest) returns (Emotion);
|
||
|
|
rpc GetEmotions(GetEmotionsRequest) returns (EmotionsResponse);
|
||
|
|
rpc ListAllEmotions(Empty) returns (EmotionsResponse);
|
||
|
|
|
||
|
|
// Update operations (for classification corrections and fine-tuning)
|
||
|
|
rpc UpdateEmotion(UpdateEmotionRequest) returns (EmotionResponse);
|
||
|
|
rpc BatchUpdateEmotions(stream UpdateEmotionRequest) returns (EmotionResponse);
|
||
|
|
|
||
|
|
// Delete operation
|
||
|
|
rpc DeleteEmotion(DeleteEmotionRequest) returns (EmotionResponse);
|
||
|
|
}
|