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 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 metadata = 5; } // 获取知识库摘要请求 message GetKnowledgeSummaryRequest { // 分类 string category = 1; } // 获取知识库摘要响应 message GetKnowledgeSummaryResponse { // 分类 string category = 1; // 摘要内容 string summary = 2; // 文档数量 int32 document_count = 3; // 最后更新时间 string last_updated = 4; }