package chat import ( "context" "fmt" "github.com/cloudwego/eino-ext/components/model/openai" "github.com/cloudwego/eino/schema" ) func Chat(chatModel *openai.ChatModel, ctx context.Context, question string) { role := "心理咨询师" style := "温柔可爱" history := []*schema.Message{} messages, err := GenerateChatMessage(role, style, question, history) if err != nil { panic(err) } response, err := chatModel.Generate(ctx, messages) if err != nil { panic(err) } // 获取 Token 使用情况 if usage := response.ResponseMeta.Usage; usage != nil { println("提示 Tokens:", usage.PromptTokens) println("生成 Tokens:", usage.CompletionTokens) println("总 Tokens:", usage.TotalTokens) } fmt.Println(response) } func ChatStream(chatModel *openai.ChatModel, ctx context.Context, question string) { role := "心理咨询师" style := "温柔可爱" history := []*schema.Message{} messages, err := GenerateChatMessage(role, style, question, history) if err != nil { panic(err) } // 获取流式回复 reader, err := chatModel.Stream(ctx, messages) if err != nil { panic(err) } defer reader.Close() // 注意要关闭 // 处理流式内容 for { chunk, err := reader.Recv() if err != nil { break } print(chunk.Content) } }