Files
agent-CoT/main.go
T
2025-11-16 21:14:35 +08:00

69 lines
1.4 KiB
Go

package main
import (
"bufio"
"context"
"fmt"
"log"
"os"
"strings"
"github.com/tmc/langchaingo/llms"
"github.com/tmc/langchaingo/llms/openai"
"github.com/tmc/langchaingo/memory"
)
func main() {
llm, err := openai.New(
openai.WithModel("Qwen/Qwen3-Coder-30B-A3B-Instruct"),
openai.WithBaseURL("https://api.siliconflow.cn/v1"),
openai.WithToken("sk-udqgogvqgfriqvsehkpxgaejfclvoikbntjeaeijhqnhnviw"),
)
if err != nil {
log.Fatal(err)
}
chatMemory := memory.NewConversationBuffer()
ctx := context.Background()
reader := bufio.NewReader(os.Stdin)
fmt.Println("Chat Application Started. Type 'exit' to quit.")
fmt.Println("-----------------------------------------------")
for {
fmt.Print("You: ")
userInput, _ := reader.ReadString('\n')
userInput = strings.TrimSpace(userInput)
if userInput == "exit" {
break
}
messages, _ := chatMemory.ChatHistory.Messages(ctx)
// Conversation
var conversation string
for _, msg := range messages {
conversation += msg.GetContent() + "\n"
}
fullPrompt := conversation + "Human: " + userInput + "\nAssistant:"
response, err := llms.GenerateFromSinglePrompt(
ctx,
llm,
fullPrompt,
)
if err != nil {
log.Fatal(err)
}
chatMemory.ChatHistory.AddUserMessage(ctx, userInput)
chatMemory.ChatHistory.AddAIMessage(ctx, response)
fmt.Println("[AI Response] ", response)
}
}