createOpenAIClient
()
| 276 | |
| 277 | // createOpenAIClient |
| 278 | func (c *AIController) createOpenAIClient() *openai.Client { |
| 279 | config := openai.DefaultConfig("") |
| 280 | config.BaseURL = "" |
| 281 | |
| 282 | aiConfig, err := c.siteInfoService.GetSiteAI(context.Background()) |
| 283 | if err != nil { |
| 284 | log.Errorf("Failed to get AI config: %v", err) |
| 285 | return openai.NewClientWithConfig(config) |
| 286 | } |
| 287 | |
| 288 | if !aiConfig.Enabled { |
| 289 | log.Warn("AI feature is disabled") |
| 290 | return openai.NewClientWithConfig(config) |
| 291 | } |
| 292 | |
| 293 | aiProvider := aiConfig.GetProvider() |
| 294 | |
| 295 | config = openai.DefaultConfig(aiProvider.APIKey) |
| 296 | config.BaseURL = aiProvider.APIHost |
| 297 | if !strings.HasSuffix(config.BaseURL, "/v1") { |
| 298 | config.BaseURL += "/v1" |
| 299 | } |
| 300 | return openai.NewClientWithConfig(config) |
| 301 | } |
| 302 | |
| 303 | // getPromptByLanguage |
| 304 | func (c *AIController) getPromptByLanguage(language i18n.Language, question string) string { |
no test coverage detected