Replace hardcoded DEFAULT_MODEL and DEFAULT_SMALL_MODEL constants across all LLM clients with a centralized, configurable provider defaults system.
Key changes:
- Created provider_defaults.py with centralized configuration for all providers
- Added environment variable support for easy customization (e.g., GEMINI_DEFAULT_MODEL)
- Updated all LLM clients to use configurable defaults instead of hardcoded constants
- Made edge operations max_tokens configurable via EXTRACT_EDGES_MAX_TOKENS
- Updated cross-encoder reranker clients to use provider defaults
- Maintained full backward compatibility with existing configurations
This resolves the issue where Gemini's flash-lite model has location constraints in Vertex AI that differ from the regular flash model, and users couldn't easily override these without editing source code.
Environment variables now supported:
- {PROVIDER}_DEFAULT_MODEL
- {PROVIDER}_DEFAULT_SMALL_MODEL
- {PROVIDER}_DEFAULT_MAX_TOKENS
- {PROVIDER}_DEFAULT_TEMPERATURE
- {PROVIDER}_EXTRACT_EDGES_MAX_TOKENS
- EXTRACT_EDGES_MAX_TOKENS (global fallback)
Fixes#681
Co-authored-by: Daniel Chalef <danielchalef@users.noreply.github.com>
* remove temporary debug logging
* add anthropic api to .env.example
* move anthropic int tests to llm_client dir to better match existing test structure
* update `TestLLMClient` to `MockLLMClient` to eliminate pytest warning
* Fix: use self.max_tokens when max_token isnt specified
* Fix: use self.max_tokens in OpenAI clients
* Fix: use self.max_tokens in Anthropic client
* Fix: use self.max_tokens in Gemini client
* update Anthropic client to use tool calling and add tests
* fix linting errors before creating pull request by making literal types for anthropic models
* implement so
* bug fixes and typing
* inject schema for non-openai clients
* correct datetime format
* remove List keyword
* Refactor node_operations.py to use updated prompt_library functions
* update example
* Override default max tokens for Anthropic and Groq clients
* Override default max tokens for Anthropic and Groq clients
* Override default max tokens for Anthropic and Groq clients