feat: Enhanced Configuration System with Multi-Provider LLM Support #1088
+3,409
−33
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces a comprehensive configuration system for Graphiti that enables easier multi-provider support, better configuration management, and improved developer experience. It directly addresses several open GitHub issues related to Azure OpenAI, LiteLLM, and provider flexibility.
🎯 Key Features
1. Unified Configuration System
2. Multi-Provider LLM Support
3. Easy Provider Switching
📦 What's Included
New Modules
graphiti_core/config/settings.py- Configuration classesgraphiti_core/config/providers.py- Provider enumerations and defaultsgraphiti_core/config/factory.py- Factory functions for client creationgraphiti_core/llm_client/litellm_client.py- LiteLLM integrationDocumentation
docs/CONFIGURATION.md- Comprehensive configuration guideexamples/graphiti_config_example.yaml- Example configurationsDOMAIN_AGNOSTIC_IMPROVEMENT_PLAN.md- Future roadmapTests
tests/config/test_settings.py- 22 configuration teststests/config/test_factory.py- 12 factory tests🐛 Issues Addressed
📖 Usage Examples
Traditional Initialization (Still Works)
New Config-Based Initialization
YAML Configuration Example
✅ Testing & Quality
🔧 Dependencies
Core
pyyaml>=6.0.0(added to core dependencies)Optional
litellm>=1.52.0(install withpip install graphiti-core[litellm])💡 Benefits
🚀 What's Next
This PR is the foundation for future enhancements outlined in the Domain Agnostic Improvement Plan:
📝 Notes
test_create_azure_openai_client) but Azure OpenAI functionality works correctly🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com