// 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"
}
