定义并实现三个 AI 服务客户端,每个服务一个独立包 #36

Merged
huanghaosheng merged 10 commits from feature/phase3 into develop 2026-06-13 15:53:10 +08:00
Showing only changes of commit 078cfe6278 - Show all commits

View File

@@ -0,0 +1,37 @@
package llm
import (
"context"
"github.com/hhs/camtalk/internal/models"
)
// Service 多模态大模型服务契约。
type Service interface {
// ChatStream 流式推理,返回增量文本的 channel。
// 调用方必须消费 channel 直到 Done=true否则需 cancel ctx 以释放连接。
ChatStream(ctx context.Context, req Request) (<-chan Chunk, error)
}
// Request 推理请求。
type Request struct {
Image []byte // JPEG 图片(已从 Base64 解码)
Text string // 用户语音识别后的文本
History []models.Message // 最近 N 轮对话历史
Language string // 语言,如 "zh-CN"
}
// Chunk 流式推理的一个增量片段。
type Chunk struct {
Delta string // 增量文本
Done bool // 是否结束
TokensUsed *TokenUsage // 仅 Done=true 时有值
Model string // 实际使用的模型名
}
// TokenUsage 用量统计。
type TokenUsage struct {
Prompt int
Completion int
Total int
}