- 新增config.yaml和config.go用于管理配置 - 重构chatmodel.go使用配置初始化模型 - 修改GenerateChatMessage和ChatStream函数签名添加context参数 - 更新main.go加载配置并初始化聊天模型 - 优化错误处理和日志输出
32 lines
917 B
Go
32 lines
917 B
Go
package chat
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/cloudwego/eino/components/prompt"
|
|
"github.com/cloudwego/eino/schema"
|
|
)
|
|
|
|
var template = prompt.FromMessages(schema.FString,
|
|
schema.SystemMessage("你是一个{role}。你需要用{style}的语气回答问题。你的目标是帮助程"+
|
|
"序员保持积极乐观的心态,提供技术建议的同时也要关注他们的心理健康。"),
|
|
schema.MessagesPlaceholder("chat_history", true),
|
|
schema.UserMessage("问题: {question}"))
|
|
|
|
func GenerateChatMessage(ctx context.Context, role, style, question string, history []*schema.Message) ([]*schema.Message, error) {
|
|
// 在这里调用模板
|
|
messages, err := template.Format(ctx, map[string]any{
|
|
"role": role,
|
|
"style": style,
|
|
"question": question,
|
|
"chat_history": history,
|
|
})
|
|
|
|
if err != nil {
|
|
return nil, fmt.Errorf("生成消息失败: %w", err)
|
|
}
|
|
|
|
return messages, nil
|
|
}
|