Add Ollama local model provider
This commit is contained in:
@@ -15,6 +15,8 @@ from .config import (
|
||||
GEMINI_API_KEY,
|
||||
GEMINI_API_URL,
|
||||
GEMINI_MODEL,
|
||||
OLLAMA_API_URL,
|
||||
OLLAMA_MODEL,
|
||||
OPENAI_API_KEY,
|
||||
OPENAI_API_URL,
|
||||
OPENAI_MODEL,
|
||||
@@ -81,6 +83,8 @@ _PROVIDER_ALIASES = {
|
||||
"claude_anthropic": "anthropic",
|
||||
"gemini": "gemini",
|
||||
"google": "gemini",
|
||||
"olama": "ollama",
|
||||
"ollama": "ollama",
|
||||
"openai": "openai",
|
||||
"openrouter": "openrouter",
|
||||
"z.ai": "zai",
|
||||
@@ -145,6 +149,18 @@ _PROVIDER_SETTINGS = {
|
||||
"key_var": "ANTHROPIC_API_KEY",
|
||||
"model_var": "ANTHROPIC_MODEL",
|
||||
},
|
||||
"ollama": {
|
||||
"provider": "ollama",
|
||||
"protocol": "openai_compatible",
|
||||
# Ollama обычно локальный и не требует API key.
|
||||
"api_key": None,
|
||||
"requires_api_key": False,
|
||||
"model": OLLAMA_MODEL,
|
||||
"api_url": OLLAMA_API_URL,
|
||||
"name": "Ollama",
|
||||
"key_var": "OLLAMA_API_KEY",
|
||||
"model_var": "OLLAMA_MODEL",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -221,7 +237,7 @@ def _content_to_text(content) -> str:
|
||||
def _get_provider_config_error(cfg) -> Optional[str]:
|
||||
if not cfg:
|
||||
return "Не настроен AI-провайдер. Проверьте файл .env."
|
||||
if not cfg["api_key"]:
|
||||
if cfg.get("requires_api_key", True) and not cfg.get("api_key"):
|
||||
return f"Не настроен {cfg['key_var']}. Проверьте файл .env."
|
||||
if not cfg["model"]:
|
||||
return f"Не настроен {cfg['model_var']}. Проверьте файл .env."
|
||||
@@ -236,10 +252,9 @@ def _build_headers(cfg):
|
||||
"Content-Type": "application/json",
|
||||
}
|
||||
|
||||
headers = {
|
||||
"Authorization": f"Bearer {cfg['api_key']}",
|
||||
"Content-Type": "application/json",
|
||||
}
|
||||
headers = {"Content-Type": "application/json"}
|
||||
if cfg.get("api_key"):
|
||||
headers["Authorization"] = f"Bearer {cfg['api_key']}"
|
||||
headers.update(cfg.get("extra_headers") or {})
|
||||
return headers
|
||||
|
||||
|
||||
Reference in New Issue
Block a user