Загрузить файлы в «/»

This commit is contained in:
2026-05-28 15:48:08 +00:00
commit f7a27c4088
5 changed files with 787 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
"""
Фабрика LLM — переключение между провайдерами через .env.
LLM_PROVIDER=openai → gpt-oss-20b (пары)
LLM_PROVIDER=gigachat → GigaChat (дома, бесплатные токены Сбера)
"""
import os
from dotenv import load_dotenv
load_dotenv()
def get_llm():
provider = os.getenv("LLM_PROVIDER", "openai").lower()
if provider == "gigachat":
from langchain_community.chat_models import GigaChat
print(f"[LLM] 🏠 GigaChat ({os.getenv('GIGACHAT_MODEL', 'GigaChat-MAX')})")
return GigaChat(
credentials=os.getenv("GIGACHAT_CREDENTIALS"),
scope=os.getenv("GIGACHAT_SCOPE", "GIGACHAT_API_B2B"),
model=os.getenv("GIGACHAT_MODEL", "GigaChat-MAX"),
verify_ssl_certs=False,
temperature=0.2,
timeout=240,
)
else:
from langchain_openai import ChatOpenAI
from pydantic import SecretStr
model = os.getenv("OPENAI_MODEL", "openi/gpt-oss-20b")
print(f"[LLM] 🏫 OpenAI-compatible ({model})")
return ChatOpenAI(
model=model,
base_url=os.getenv("OPENAI_BASE_URL"),
api_key=SecretStr(os.getenv("OPENAI_API_KEY", "fake")),
temperature=0.2,
timeout=360,
)