68 lines
1.6 KiB
Go
68 lines
1.6 KiB
Go
// Code generated by Wire. DO NOT EDIT.
|
|
|
|
//go:generate go run -mod=mod github.com/google/wire/cmd/wire
|
|
//go:build !wireinject
|
|
// +build !wireinject
|
|
|
|
package main
|
|
|
|
import (
|
|
"ai_scheduler/internal/config"
|
|
"ai_scheduler/internal/services"
|
|
"ai_scheduler/internal/tools"
|
|
"ai_scheduler/pkg/ollama"
|
|
"ai_scheduler/pkg/types"
|
|
)
|
|
|
|
import (
|
|
_ "ai_scheduler/docs"
|
|
)
|
|
|
|
// Injectors from wire.go:
|
|
|
|
// InitializeApp 初始化应用程序
|
|
func InitializeApp(configPath string) (*App, error) {
|
|
configConfig, err := config.LoadConfig(configPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
aiClient := provideOllamaClient(configConfig)
|
|
toolsConfig := provideToolsConfig(configConfig)
|
|
manager := tools.NewManager(toolsConfig)
|
|
routerService := provideRouterService(aiClient, manager)
|
|
app := NewApp(configConfig, routerService)
|
|
return app, nil
|
|
}
|
|
|
|
// wire.go:
|
|
|
|
// provideOllamaClient 提供Ollama客户端
|
|
func provideOllamaClient(cfg *config.Config) types.AIClient {
|
|
client, _ := ollama.NewClient(&cfg.Ollama)
|
|
return client
|
|
}
|
|
|
|
// provideToolsConfig 提供工具配置
|
|
func provideToolsConfig(cfg *config.Config) *config.ToolsConfig {
|
|
return &cfg.Tools
|
|
}
|
|
|
|
// provideRouterService 提供路由服务
|
|
func provideRouterService(aiClient types.AIClient, toolManager *tools.Manager) types.RouterService {
|
|
return services.NewRouterService(aiClient, toolManager)
|
|
}
|
|
|
|
// App 应用程序结构
|
|
type App struct {
|
|
Config *config.Config
|
|
RouterService types.RouterService
|
|
}
|
|
|
|
// NewApp 创建应用程序
|
|
func NewApp(cfg *config.Config, routerService types.RouterService) *App {
|
|
return &App{
|
|
Config: cfg,
|
|
RouterService: routerService,
|
|
}
|
|
}
|