refactor: 将客服后端重构为宿主可嵌入模块
- 注入数据库、运行时配置、统一响应、文件存储和平台 AI 能力,补充业务读写工具与客户快捷操作契约。 - 移除模块内重复的组织、客户、工单、标签、技能、旧工作流、MCP 和迁移实现,将身份权限与业务主体交由宿主管理。 - 使用 libSQL 重构向量存储,并完善图片消息、访客身份、排队调度、企业微信和支持聊天页面。 - 统一 HTTP、DTO 与 WebSocket 的 snake_case 协议,补齐模块初始化、业务动作和公共载荷等回归测试。
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package contract
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
const (
|
||||
ModelSourcePlatform = "platform"
|
||||
ModelSourceCustom = "custom"
|
||||
)
|
||||
|
||||
// PlatformAIConfig is a runtime-only OpenAI-compatible model configuration.
|
||||
// Credentials and the signed HTTP client are supplied by the host and are
|
||||
// never persisted in Agent Desk tables or returned by dashboard APIs.
|
||||
type PlatformAIConfig struct {
|
||||
BaseURL string
|
||||
APIKey string
|
||||
ChatEnabled bool
|
||||
ChatModel string
|
||||
VisionEnabled bool
|
||||
VisionModel string
|
||||
EmbeddingEnabled bool
|
||||
ModelName string
|
||||
EmbeddingModel string
|
||||
EmbeddingDimension int
|
||||
MaxOutputTokens int
|
||||
TimeoutMS int
|
||||
MaxRetryCount int
|
||||
HTTPClient *http.Client
|
||||
}
|
||||
|
||||
type PlatformAIStatus struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
Balance float64 `json:"balance"`
|
||||
Currency string `json:"currency"`
|
||||
DefaultProvider string `json:"default_provider"`
|
||||
DefaultModel string `json:"default_model"`
|
||||
ChatEnabled bool `json:"chat_enabled"`
|
||||
ChatProvider string `json:"chat_provider"`
|
||||
ChatModel string `json:"chat_model"`
|
||||
VisionEnabled bool `json:"vision_enabled"`
|
||||
VisionModel string `json:"vision_model"`
|
||||
EmbeddingEnabled bool `json:"embedding_enabled"`
|
||||
EmbeddingModel string `json:"embedding_model"`
|
||||
EmbeddingDimension int `json:"embedding_dimension"`
|
||||
RechargeURL string `json:"recharge_url"`
|
||||
}
|
||||
|
||||
// PlatformAIProvider lets the host resolve the current model source on every
|
||||
// request, so changing the system setting takes effect without restarting.
|
||||
type PlatformAIProvider interface {
|
||||
ModelSource(context.Context) (string, error)
|
||||
Config(context.Context) (*PlatformAIConfig, error)
|
||||
Status(context.Context) (*PlatformAIStatus, error)
|
||||
}
|
||||
Reference in New Issue
Block a user