// Package eino 基于 CloudWeGo Eino 框架的 AI 编排层。
// 使用 Eino Graph 替代手写 goroutine 管道，实现声明式 STT → LLM → TTS 编排。
package eino

// PipelineInput Graph 统一输入。
type PipelineInput struct {
	AudioData  []byte // base64 解码后的音频（可选）
	ImageData  []byte // base64 解码后的图像（可选）
	Text       string // 直接文本输入（可选，跳过 STT）
	SessionID  string
	RequestID  string
	Language   string // zh / en
	Scenario   string // free_chat, interviewer, etc.
	TTSEnabled bool
	UserID     string // 用户 ID，用于加载自建情景
}

// PipelineOutput Graph 统一输出。
type PipelineOutput struct {
	TranscribedText string       // STT 结果
	FullResponse    string       // LLM 完整回复
	Model           string       // 实际使用的模型名
	TokenUsage      *TokenUsage  // token 用量
}

// STTOutput STT 节点输出。
type STTOutput struct {
	Text      string
	Language  string
	IsSkipped bool // 文本输入模式跳过了 STT
}

// TokenUsage token 用量统计。
type TokenUsage struct {
	Prompt     int
	Completion int
	Total      int
}
