Files

68 lines
1.3 KiB
Go
Raw Permalink Normal View History

2026-02-28 10:23:32 +08:00
package main
import (
2026-02-28 14:28:38 +08:00
"bufio"
2026-02-28 10:23:32 +08:00
"context"
"fmt"
"log"
2026-02-28 14:28:38 +08:00
"os"
2026-02-28 10:23:32 +08:00
"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()
2026-02-28 14:28:38 +08:00
reader := bufio.NewReader(os.Stdin)
2026-02-28 10:23:32 +08:00
2026-02-28 14:28:38 +08:00
fmt.Println("========= 请输入您的问题 (输入 'exit' 退出) =========")
for {
fmt.Print("😇 You: ")
prompt, err := reader.ReadString('\n')
if err != nil {
log.Fatalf("读取输入失败: %v", err)
}
2026-02-28 10:23:32 +08:00
2026-02-28 14:28:38 +08:00
if prompt == "exit\n" {
fmt.Println("========= 谢谢使用,再见! =========")
break
}
2026-02-28 10:23:32 +08:00
2026-02-28 14:28:38 +08:00
// Chat
message := []llms.MessageContent{
llms.TextParts(llms.ChatMessageTypeHuman, prompt),
}
2026-02-28 10:23:32 +08:00
2026-02-28 14:28:38 +08:00
response, err := llm.GenerateContent(ctx, message,
llms.WithModel(model),
)
2026-02-28 10:23:32 +08:00
2026-02-28 14:28:38 +08:00
if err != nil {
log.Fatalf("调用失败: %v\n模型: %s", err, model)
}
fmt.Println("🤖 AI: ", response.Choices[0].Content)
}
2026-02-28 10:23:32 +08:00
}