347 lines
6.7 KiB
Protocol Buffer
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;
|
|
} |