// Package ai 定义 AI 聊天 Provider 抽象与工厂: // 上层只依赖 Provider 接口,通过 New 按设置创建讯飞星火 Lite 或 DeepSeek 实例。 package ai import "context" // Message 是一条对话消息(role: system | user | assistant)。 type Message struct { Role string `json:"role"` Content string `json:"content"` } // Chunk 是流式返回的一段增量内容;Err 非空表示流异常中止。 // Usage 在流结束时可选附带 token 用量(若服务商提供)。 type Chunk struct { Content string Err error Usage *Usage } // Usage 一次调用的 token 用量。 type Usage struct { PromptTokens int64 CompletionTokens int64 Estimated bool } // Provider 是 AI 服务商的统一抽象。 type Provider interface { Name() string // ChatStream 发起流式对话,返回增量内容通道;通道关闭即流结束。 ChatStream(ctx context.Context, messages []Message) (<-chan Chunk, error) }