local LLM support
This commit is contained in:
@@ -10,9 +10,11 @@ from physcom.llm.base import LLMProvider
|
||||
def build_llm_provider() -> LLMProvider | None:
|
||||
"""Return an LLMProvider based on env vars, or None if not configured.
|
||||
|
||||
LLM_PROVIDER — provider name ('gemini'; more can be added)
|
||||
LLM_PROVIDER — provider name ('gemini', 'ollama'; more can be added)
|
||||
GEMINI_API_KEY — required when LLM_PROVIDER=gemini
|
||||
GEMINI_MODEL — optional Gemini model name (default: gemini-2.0-flash)
|
||||
OLLAMA_MODEL — optional Ollama model name (default: qwen2.5:7b)
|
||||
OLLAMA_HOST — optional Ollama server URL (default: http://localhost:11434)
|
||||
"""
|
||||
provider = os.environ.get("LLM_PROVIDER", "").lower().strip()
|
||||
|
||||
@@ -27,4 +29,10 @@ def build_llm_provider() -> LLMProvider | None:
|
||||
from physcom.llm.providers.gemini import GeminiLLMProvider
|
||||
return GeminiLLMProvider(api_key=api_key, model=model)
|
||||
|
||||
raise ValueError(f"Unknown LLM_PROVIDER: {provider!r}. Supported: gemini")
|
||||
if provider == "ollama":
|
||||
model = os.environ.get("OLLAMA_MODEL", "qwen2.5:7b")
|
||||
host = os.environ.get("OLLAMA_HOST", "http://localhost:11434")
|
||||
from physcom.llm.providers.ollama import OllamaLLMProvider
|
||||
return OllamaLLMProvider(model=model, host=host)
|
||||
|
||||
raise ValueError(f"Unknown LLM_PROVIDER: {provider!r}. Supported: gemini, ollama")
|
||||
|
||||
Reference in New Issue
Block a user