diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-20 18:27:35 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-20 18:27:35 +0300 |
| commit | 83caeb9bcdc4a5eafda937807cd42ea8455948a6 (patch) | |
| tree | f2258d2d77bfb3f9186bbc457cecdfe17877b891 /internal/llmutils | |
| parent | 005c262d09314cd43285af33dc6f1afef0621714 (diff) | |
Add YouSearch (You.com Research API) provider integration
Amp-Thread-ID: https://ampcode.com/threads/T-019e45ff-4976-750c-b2e6-121d0e5991ef
Co-authored-by: Amp <amp@ampcode.com>
Diffstat (limited to 'internal/llmutils')
| -rw-r--r-- | internal/llmutils/client.go | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/internal/llmutils/client.go b/internal/llmutils/client.go index c626918..a68746e 100644 --- a/internal/llmutils/client.go +++ b/internal/llmutils/client.go @@ -36,6 +36,11 @@ func DefaultModelForProvider(cfg appconfig.App, provider string) string { return model } return "claude-3-5-sonnet-20240620" + case "yousearch": + if effort := strings.TrimSpace(cfg.YouSearchResearchEffort); effort != "" { + return effort + } + return "standard" default: if model := strings.TrimSpace(cfg.OpenAIModel); model != "" { return model @@ -77,20 +82,21 @@ func NewClientFromAppForProvider(cfg appconfig.App, provider, modelOverride stri // NewClientFromApp builds an llm.Client using app config and environment keys. func NewClientFromApp(cfg appconfig.App) (llm.Client, error) { llmCfg := llm.Config{ - Provider: cfg.Provider, - RequestTimeout: cfg.RequestTimeout, - OpenAIBaseURL: cfg.OpenAIBaseURL, - OpenAIModel: cfg.OpenAIModel, - OpenAITemperature: cfg.OpenAITemperature, - OpenRouterBaseURL: cfg.OpenRouterBaseURL, - OpenRouterModel: cfg.OpenRouterModel, - OpenRouterTemperature: cfg.OpenRouterTemperature, - OllamaBaseURL: cfg.OllamaBaseURL, - OllamaModel: cfg.OllamaModel, - OllamaTemperature: cfg.OllamaTemperature, - AnthropicBaseURL: cfg.AnthropicBaseURL, - AnthropicModel: cfg.AnthropicModel, - AnthropicTemperature: cfg.AnthropicTemperature, + Provider: cfg.Provider, + RequestTimeout: cfg.RequestTimeout, + OpenAIBaseURL: cfg.OpenAIBaseURL, + OpenAIModel: cfg.OpenAIModel, + OpenAITemperature: cfg.OpenAITemperature, + OpenRouterBaseURL: cfg.OpenRouterBaseURL, + OpenRouterModel: cfg.OpenRouterModel, + OpenRouterTemperature: cfg.OpenRouterTemperature, + OllamaBaseURL: cfg.OllamaBaseURL, + OllamaModel: cfg.OllamaModel, + OllamaTemperature: cfg.OllamaTemperature, + AnthropicBaseURL: cfg.AnthropicBaseURL, + AnthropicModel: cfg.AnthropicModel, + AnthropicTemperature: cfg.AnthropicTemperature, + YouSearchResearchEffort: cfg.YouSearchResearchEffort, } oaKey := os.Getenv("HEXAI_OPENAI_API_KEY") if strings.TrimSpace(oaKey) == "" { @@ -110,5 +116,9 @@ func NewClientFromApp(cfg appconfig.App) (llm.Client, error) { if strings.TrimSpace(olKey) == "" { olKey = os.Getenv("OLLAMA_API_KEY") } - return llm.NewFromConfig(llmCfg, oaKey, orKey, anKey, olKey) + ysKey := os.Getenv("HEXAI_YOUSEARCH_API_KEY") + if strings.TrimSpace(ysKey) == "" { + ysKey = os.Getenv("YOU_API_KEY") + } + return llm.NewFromConfig(llmCfg, oaKey, orKey, anKey, olKey, ysKey) } |
