Files
ai-agent/contract/platform_ai.go
T
t 18c9354095 refactor: 将客服后端重构为宿主可嵌入模块
- 注入数据库、运行时配置、统一响应、文件存储和平台 AI 能力,补充业务读写工具与客户快捷操作契约。

- 移除模块内重复的组织、客户、工单、标签、技能、旧工作流、MCP 和迁移实现,将身份权限与业务主体交由宿主管理。

- 使用 libSQL 重构向量存储,并完善图片消息、访客身份、排队调度、企业微信和支持聊天页面。

- 统一 HTTP、DTO 与 WebSocket 的 snake_case 协议,补齐模块初始化、业务动作和公共载荷等回归测试。
2026-08-28 22:23:13 +08:00

57 lines
1.8 KiB
Go

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)
}