package llm import ( anthProvider "gitea.stevedudenhoeffer.com/steve/go-llm/v2/anthropic" googleProvider "gitea.stevedudenhoeffer.com/steve/go-llm/v2/google" openaiProvider "gitea.stevedudenhoeffer.com/steve/go-llm/v2/openai" ) // OpenAI creates an OpenAI client. // // Example: // // model := llm.OpenAI("sk-...").Model("gpt-4o") func OpenAI(apiKey string, opts ...ClientOption) *Client { cfg := &clientConfig{} for _, opt := range opts { opt(cfg) } return newClient(openaiProvider.New(apiKey, cfg.baseURL)) } // Anthropic creates an Anthropic client. // // Example: // // model := llm.Anthropic("sk-ant-...").Model("claude-sonnet-4-20250514") func Anthropic(apiKey string, opts ...ClientOption) *Client { cfg := &clientConfig{} for _, opt := range opts { opt(cfg) } _ = cfg // Anthropic doesn't support custom base URL in the SDK return newClient(anthProvider.New(apiKey)) } // Google creates a Google (Gemini) client. // // Example: // // model := llm.Google("...").Model("gemini-2.0-flash") func Google(apiKey string, opts ...ClientOption) *Client { cfg := &clientConfig{} for _, opt := range opts { opt(cfg) } _ = cfg // Google doesn't support custom base URL in the SDK return newClient(googleProvider.New(apiKey)) }