32 lines
864 B
Go
32 lines
864 B
Go
|
|
// Package orchestrator 实现 STT → LLM → TTS 流式并行管道。
|
||
|
|
package orchestrator
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
|
||
|
|
"github.com/hhs/camtalk/internal/models"
|
||
|
|
)
|
||
|
|
|
||
|
|
// Orchestrator AI 编排器接口。
|
||
|
|
// 接收查询并执行完整的 STT → LLM → TTS 管道。
|
||
|
|
type Orchestrator interface {
|
||
|
|
// ProcessQuery 处理一次用户查询。
|
||
|
|
// ctx 用于整体超时和中断控制。
|
||
|
|
// sessionID 用于会话管理和历史获取。
|
||
|
|
// req 包含图像和音频数据。
|
||
|
|
// sender 用于向客户端推送消息。
|
||
|
|
ProcessQuery(
|
||
|
|
ctx context.Context,
|
||
|
|
sessionID string,
|
||
|
|
req models.WsQuery,
|
||
|
|
sender Sender,
|
||
|
|
) error
|
||
|
|
}
|
||
|
|
|
||
|
|
// QueryRequest 查询请求(内部使用)。
|
||
|
|
type QueryRequest struct {
|
||
|
|
Image []byte // JPEG 图片(已从 Base64 解码)
|
||
|
|
Audio []byte // 音频数据(已从 Base64 解码)
|
||
|
|
Language string // 语言,如 "zh-CN"
|
||
|
|
}
|