From 83caeb9bcdc4a5eafda937807cd42ea8455948a6 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 20 May 2026 18:27:35 +0300 Subject: 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 --- internal/llmutils/client.go | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) (limited to 'internal/llmutils') 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) } -- cgit v1.2.3