feat: add multi-provider LLM support with factory pattern

- Add tradingagents/llm_clients/ with unified factory pattern
- Support OpenAI, Anthropic, Google, xAI, OpenRouter, Ollama, vLLM
- Replace direct LLM imports in trading_graph.py with create_llm_client()
- Handle provider-specific params (reasoning_effort, thinking_config)
This commit is contained in:
Yijia Xiao
2026-01-20 06:52:18 +00:00
parent 13b826a31d
commit 79051580b8
10 changed files with 328 additions and 15 deletions
+21
View File
@@ -0,0 +1,21 @@
from abc import ABC, abstractmethod
from typing import Any, Optional
class BaseLLMClient(ABC):
"""Abstract base class for LLM clients."""
def __init__(self, model: str, base_url: Optional[str] = None, **kwargs):
self.model = model
self.base_url = base_url
self.kwargs = kwargs
@abstractmethod
def get_llm(self) -> Any:
"""Return the configured LLM instance."""
pass
@abstractmethod
def validate_model(self) -> bool:
"""Validate that the model is supported by this client."""
pass