ai-courseware/eino-project/api/customer/v1/customer.proto

347 lines
6.7 KiB
Protocol Buffer

syntax = "proto3";
package api.customer.v1;
import "google/api/annotations.proto";
option go_package = "eino-project/api/customer/v1;v1";
// 智能客服服务定义
service CustomerService {
// 健康检查接口
rpc SystemStatus (SystemStatusRequest) returns (SystemStatusResponse) {
option (google.api.http) = {
get: "/api/system/status"
};
}
// 聊天消息处理接口
rpc Chat (ChatRequest) returns (ChatResponse) {
option (google.api.http) = {
post: "/api/chat"
body: "*"
};
}
// 获取会话列表接口
rpc GetSessions (GetSessionsRequest) returns (GetSessionsResponse) {
option (google.api.http) = {
get: "/api/sessions"
};
}
// 创建新会话接口
rpc CreateSession (CreateSessionRequest) returns (CreateSessionResponse) {
option (google.api.http) = {
post: "/api/sessions"
body: "*"
};
}
// 知识库文档上传接口
rpc UploadKnowledge (UploadKnowledgeRequest) returns (UploadKnowledgeResponse) {
option (google.api.http) = {
post: "/api/knowledge/upload"
body: "*"
};
}
// 获取知识库文档列表接口
rpc ListKnowledge (ListKnowledgeRequest) returns (ListKnowledgeResponse) {
option (google.api.http) = {
get: "/api/knowledge/list"
};
}
// 删除知识库文档接口
rpc DeleteKnowledge (DeleteKnowledgeRequest) returns (DeleteKnowledgeResponse) {
option (google.api.http) = {
delete: "/api/knowledge/{id}"
};
}
// 搜索知识库接口
rpc SearchKnowledge (SearchKnowledgeRequest) returns (SearchKnowledgeResponse) {
option (google.api.http) = {
post: "/api/knowledge/search"
body: "*"
};
}
// 获取知识库摘要接口
rpc GetKnowledgeSummary (GetKnowledgeSummaryRequest) returns (GetKnowledgeSummaryResponse) {
option (google.api.http) = {
post: "/api/knowledge/summary"
body: "*"
};
}
// 订单查询接口
rpc QueryOrder (QueryOrderRequest) returns (QueryOrderResponse) {
option (google.api.http) = {
post: "/api/order/query"
body: "*"
};
}
// 流式聊天接口 (通过HTTP SSE实现)
rpc StreamChat (StreamChatRequest) returns (stream StreamChatResponse) {
option (google.api.http) = {
post: "/api/chat/stream"
body: "*"
};
}
}
// 系统状态请求
message SystemStatusRequest {}
// 系统状态响应
message SystemStatusResponse {
// 系统状态
bool status = 1;
// 服务状态详情
map<string, ServiceStatus> services = 2;
// 版本信息
string version = 3;
}
// 服务状态
message ServiceStatus {
// 服务名称
string name = 1;
// 服务状态
bool status = 2;
// 状态详情
string message = 3;
}
// 聊天请求
message ChatRequest {
// 用户输入消息
string message = 1;
// 会话ID
string session_id = 2;
}
// 聊天响应
message ChatResponse {
// 会话ID
string session_id = 1;
// 时间戳
string timestamp = 2;
// 消息类型
string type = 3;
// 消息内容
ChatPayload payload = 4;
}
// 聊天消息内容
message ChatPayload {
// 数据类型
string data_type = 1;
// 内容
ChatContent content = 2;
}
// 聊天内容
message ChatContent {
// 消息块
string chunk = 1;
// 完整消息
string full_message = 2;
// 是否为最终消息
bool is_final = 3;
}
// 获取会话列表请求
message GetSessionsRequest {}
// 获取会话列表响应
message GetSessionsResponse {
// 会话列表
repeated Session sessions = 1;
}
// 会话信息
message Session {
// 会话ID
string session_id = 1;
// 会话标题
string title = 2;
// 创建时间
string created_at = 3;
}
// 创建会话请求
message CreateSessionRequest {
// 会话标题
string title = 1;
}
// 创建会话响应
message CreateSessionResponse {
// 会话ID
string session_id = 1;
// 会话标题
string title = 2;
// 创建时间
string created_at = 3;
}
// 上传知识库文档请求
message UploadKnowledgeRequest {
// 文件名
string file_name = 1;
// 文件类型
string file_type = 2;
// 文件内容
bytes content = 3;
}
// 上传知识库文档响应
message UploadKnowledgeResponse {
// 是否成功
bool success = 1;
// 文件ID
string file_id = 2;
}
// 获取知识库文档列表请求
message ListKnowledgeRequest {}
// 获取知识库文档列表响应
message ListKnowledgeResponse {
// 文档列表
repeated KnowledgeDocument documents = 1;
}
// 知识库文档
message KnowledgeDocument {
// 文档ID
string id = 1;
// 文件名
string file_name = 2;
// 文件类型
string file_type = 3;
// 内容预览
string content_preview = 4;
// 上传时间
string upload_time = 5;
// 状态
string status = 6;
}
// 删除知识库文档请求
message DeleteKnowledgeRequest {
// 文档ID
string id = 1;
}
// 删除知识库文档响应
message DeleteKnowledgeResponse {
// 是否成功
bool success = 1;
}
// 订单查询请求
message QueryOrderRequest {
// 订单ID
string order_id = 1;
}
// 订单查询响应
message QueryOrderResponse {
// 订单ID
string order_id = 1;
// 订单状态
string status = 2;
// 是否需要AI诊断
bool need_ai = 3;
// 订单详情
OrderDetails details = 4;
}
// 订单详情
message OrderDetails {
// 产品名称
string product = 1;
// 金额
double amount = 2;
// 创建时间
string create_time = 3;
}
// 流式聊天请求
message StreamChatRequest {
// 用户输入消息
string message = 1;
// 会话ID
string session_id = 2;
// 模型名称 (可选)
string model = 3;
}
// 流式聊天响应
message StreamChatResponse {
// 会话ID
string session_id = 1;
// 时间戳
string timestamp = 2;
// 消息类型 (chunk, final, error)
string type = 3;
// 消息内容
string content = 4;
// 是否为最终消息
bool is_final = 5;
// 错误信息 (如果有)
string error = 6;
}
// 搜索知识库请求
message SearchKnowledgeRequest {
// 搜索查询
string query = 1;
// 返回结果数量限制
int32 limit = 2;
}
// 搜索知识库响应
message SearchKnowledgeResponse {
// 搜索结果
repeated KnowledgeSearchResult results = 1;
// 总数
int32 total = 2;
}
// 知识库搜索结果
message KnowledgeSearchResult {
// 文档ID
string id = 1;
// 标题
string title = 2;
// 内容
string content = 3;
// 相关性评分
float score = 4;
// 元数据
map<string, string> metadata = 5;
}
// 获取知识库摘要请求
message GetKnowledgeSummaryRequest {
// 分类
string category = 1;
}
// 获取知识库摘要响应
message GetKnowledgeSummaryResponse {
// 分类
string category = 1;
// 摘要内容
string summary = 2;
// 文档数量
int32 document_count = 3;
// 最后更新时间
string last_updated = 4;
}