Files
aichat/main.go
T
2026-06-17 13:13:06 +08:00

50 lines
1.2 KiB
Go

package main
import (
"fmt"
"os"
"strings"
agents "aichat/agenttool"
"aichat/config"
"aichat/conversation"
"aichat/llm"
"aichat/server"
"aichat/toolmanager"
"aichat/toolrouter"
)
func main() {
cfg, legacySearchProfiles, err := config.Load("config.yaml")
if err != nil {
fmt.Fprintln(os.Stderr, "配置加载失败:", err)
os.Exit(1)
}
// 初始化火山方舟 SDK 客户端
aiState, err := llm.NewState(cfg.OpenAI)
if err != nil {
fmt.Fprintln(os.Stderr, "OpenAI 配置初始化失败:", err)
os.Exit(1)
}
toolManager, err := toolmanager.Load("agents", agents.LoadOptions{Values: map[string]any{agents.LegacySearchProfilesKey: legacySearchProfiles}})
if err != nil {
fmt.Fprintln(os.Stderr, "工具加载失败:", err)
os.Exit(1)
}
defer toolManager.Close()
toolRouterState, err := toolrouter.NewState(&cfg.ToolRouter, aiState)
if err != nil {
fmt.Fprintln(os.Stderr, "工具路由配置初始化失败:", err)
os.Exit(1)
}
store := conversation.NewStore("conversations")
app := server.New(cfg, aiState, toolManager, toolRouterState, store)
cfg.Server.Mode = strings.ToLower(cfg.Server.Mode)
if err := app.Run(); err != nil {
fmt.Fprintln(os.Stderr, "服务异常退出:", err)
os.Exit(1)
}
}