Загрузить файлы в «/»
This commit is contained in:
@@ -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,
|
||||
)
|
||||
Reference in New Issue
Block a user