✨Feat: 构建对话终端

This commit is contained in:
2026-03-20 14:26:24 +08:00
parent 3f5c0bbae1
commit 355645efdf
17 changed files with 1338 additions and 2 deletions
+63
View File
@@ -0,0 +1,63 @@
package generators
import (
"learning-assistant/internal/ai"
)
// GeneratorType 生成器类型
type GeneratorType string
const (
GeneratorMermaid GeneratorType = "mermaid"
GeneratorGuodegang GeneratorType = "guodegang"
GeneratorQuiz GeneratorType = "quiz"
GeneratorCard GeneratorType = "card"
GeneratorScenario GeneratorType = "scenario"
)
// GenerateResult 生成结果
type GenerateResult struct {
Type GeneratorType
Content string
Error error
}
// BaseGenerator 基础生成器
type BaseGenerator struct {
client *ai.SiliconFlowClient
promptManager *ai.PromptManager
}
// NewBaseGenerator 创建基础生成器
func NewBaseGenerator(client *ai.SiliconFlowClient, promptManager *ai.PromptManager) *BaseGenerator {
return &BaseGenerator{
client: client,
promptManager: promptManager,
}
}
// Generate 生成内容
func (g *BaseGenerator) Generate(genType GeneratorType, knowledge string, resultChan chan<- GenerateResult) {
prompt, err := g.promptManager.GeneratePrompt(string(genType), knowledge)
if err != nil {
resultChan <- GenerateResult{
Type: genType,
Error: err,
}
return
}
content, err := g.client.Generate(prompt)
if err != nil {
resultChan <- GenerateResult{
Type: genType,
Error: err,
}
return
}
resultChan <- GenerateResult{
Type: genType,
Content: content,
}
}