LangChain
Фреймворк для AI-приложений
LangChain работает с любым OpenAI-совместимым сервером. EasyLLM подключается как стандартный провайдер через openai_api_base. Один импорт — доступ ко всем моделям.
🐍 Python
Установка
pip install langchain langchain-openaiБазовый чат
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="openai/gpt-4o-mini",
openai_api_key="eak_YOUR_KEY",
openai_api_base="https://api.easyllm.kz/v1",
temperature=0.7,
)
response = llm.invoke("Напиши двустишие про осень")
print(response.content)Claude через тот же клиент
EasyLLM транслирует OpenAI-формат в Anthropic. Меняется только имя модели:
llm = ChatOpenAI(
model="anthropic/claude-sonnet-4-20250514", # Claude через OpenAI-формат
openai_api_key="eak_YOUR_KEY",
openai_api_base="https://api.easyllm.kz/v1",
)Chain с промптом
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
prompt = ChatPromptTemplate.from_messages([
("system", "Ты опытный переводчик."),
("user", "Переведи на английский: {text}"),
])
chain = prompt | llm | StrOutputParser()
result = chain.invoke({"text": "Привет, мир"})Эмбеддинги для RAG
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(
model="openai/text-embedding-3-small",
openai_api_key="eak_YOUR_KEY",
openai_api_base="https://api.easyllm.kz/v1",
)
vector = embeddings.embed_query("Что такое RAG?")🟨 JavaScript / TypeScript
Установка
npm install @langchain/openai @langchain/coreБазовый чат
import { ChatOpenAI } from "@langchain/openai";
const llm = new ChatOpenAI({
model: "openai/gpt-4o-mini",
apiKey: "eak_YOUR_KEY",
configuration: {
baseURL: "https://api.easyllm.kz/v1",
},
});
const response = await llm.invoke("Напиши двустишие про осень");
console.log(response.content);Best practice: переменные окружения
Не хардкодьте ключ. Добавьте в .env:
OPENAI_API_KEY=eak_YOUR_KEY
OPENAI_API_BASE=https://api.easyllm.kz/v1LangChain подхватит их автоматически — параметры в коде можно не указывать.
Частые проблемы
Модель возвращает ошибку 404
Используйте формат provider/model: openai/gpt-4o-mini, anthropic/claude-sonnet-4-20250514, не просто gpt-4o-mini.
Streaming не работает
EasyLLM поддерживает streaming для всех chat-моделей. Проверьте stream=True в ChatOpenAI и что вы обрабатываете чанки через .stream() или .astream().
Ошибка Connection timeout
Увеличьте request_timeout=60. Claude Sonnet на длинных промптах может отвечать 30+ секунд.
Function calling работает?
Да — через bind_tools() или with_structured_output(). Используйте модели gpt-4o, claude-sonnet-4.
Попробовать в коде
Получите ключ и пробный баланс 100 ₽ — хватит на несколько сотен запросов к GPT-4o Mini
Получить ключ