50 lines
1.2 KiB
Go
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)
|
|
}
|
|
}
|