Files
co-chat/cmd/single/main.go
T
2026-02-28 14:28:38 +08:00

68 lines
1.3 KiB
Go

package main
import (
"bufio"
"context"
"fmt"
"log"
"os"
"github.com/tmc/langchaingo/llms"
"github.com/tmc/langchaingo/llms/openai"
)
func main() {
apiKey := "sk-angtzujyplaqsrxvlxkmjahpyxwnhhaonnfamokggxclmdlv"
baseUrl := "https://api.siliconflow.cn/v1"
//baseUrl := "https://api.siliconflow.cn/v1/chat/completions"
model := "Pro/deepseek-ai/DeepSeek-V3.2"
if apiKey == "" {
log.Fatal("apiKey is empty")
}
llm, err := openai.New(
openai.WithToken(apiKey),
openai.WithBaseURL(baseUrl),
)
if err != nil {
log.Fatalf("初始化失败: %v\nAPI Key: %s\nBase URL: %s", err, apiKey, baseUrl)
}
ctx := context.Background()
reader := bufio.NewReader(os.Stdin)
fmt.Println("========= 请输入您的问题 (输入 'exit' 退出) =========")
for {
fmt.Print("😇 You: ")
prompt, err := reader.ReadString('\n')
if err != nil {
log.Fatalf("读取输入失败: %v", err)
}
if prompt == "exit\n" {
fmt.Println("========= 谢谢使用,再见! =========")
break
}
// Chat
message := []llms.MessageContent{
llms.TextParts(llms.ChatMessageTypeHuman, prompt),
}
response, err := llm.GenerateContent(ctx, message,
llms.WithModel(model),
)
if err != nil {
log.Fatalf("调用失败: %v\n模型: %s", err, model)
}
fmt.Println("🤖 AI: ", response.Choices[0].Content)
}
}