51 lines
976 B
Go
51 lines
976 B
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"context"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"strings"
|
|
|
|
"myaibot/internal/bot"
|
|
"myaibot/internal/config"
|
|
)
|
|
|
|
func main() {
|
|
cfg, err := config.Load()
|
|
if err != nil {
|
|
log.Fatalf("加载配置失败: %v", err)
|
|
}
|
|
if cfg.APIKey == "" {
|
|
log.Println("提示: 未配置 api_key,请编辑 data/config.yaml")
|
|
}
|
|
fmt.Printf("🤖 %s 已启动 (模型: %s)。输入问题开始对话,输入 /exit 退出。\n", cfg.BotName, cfg.Model)
|
|
|
|
b := bot.New(cfg)
|
|
scanner := bufio.NewScanner(os.Stdin)
|
|
for {
|
|
fmt.Print("你: ")
|
|
if !scanner.Scan() {
|
|
break
|
|
}
|
|
input := strings.TrimSpace(scanner.Text())
|
|
if input == "" {
|
|
continue
|
|
}
|
|
if input == "/exit" || input == "/quit" {
|
|
fmt.Println("再见!")
|
|
break
|
|
}
|
|
answer, err := b.Chat(context.Background(), input)
|
|
if err != nil {
|
|
fmt.Printf("⚠️ %v\n", err)
|
|
continue
|
|
}
|
|
fmt.Printf("%s: %s\n", cfg.BotName, answer)
|
|
}
|
|
if err := scanner.Err(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|