LangChain#
LangChain работает через ChatOpenAI с подменённым base_url.
Установка#
bash
pip install langchain langchain-openai
Базовый ChatModel#
```python from langchain_openai import ChatOpenAI
llm = ChatOpenAI( model="openai/gpt-4o-mini", base_url="https://api.ml-router.su/v1", api_key="orb_live_…", temperature=0.3, )
resp = llm.invoke("Что такое RAG?") print(resp.content) ```
С prompt-template#
```python from langchain_core.prompts import ChatPromptTemplate from langchain_openai import ChatOpenAI
llm = ChatOpenAI( model="anthropic/claude-3-5-sonnet", base_url="https://api.ml-router.su/v1", api_key="orb_live_…", )
prompt = ChatPromptTemplate.from_messages([ ("system", "Ты эксперт по {domain}."), ("user", "{question}"), ])
chain = prompt | llm resp = chain.invoke({ "domain": "PostgreSQL", "question": "Как работает MVCC?", }) print(resp.content) ```
Streaming#
python
for chunk in llm.stream("Расскажи длинную историю"):
print(chunk.content, end="", flush=True)
С tool calling#
```python from langchain_core.tools import tool
@tool def get_weather(city: str) -> str: """Returns weather for a city.""" return f"Sunny in {city}, +20°C"
llm_with_tools = llm.bind_tools([get_weather]) resp = llm_with_tools.invoke("Какая погода в Берлине?") print(resp.tool_calls) ```
LangGraph агент#
```python from langgraph.prebuilt import create_react_agent from langchain_openai import ChatOpenAI
llm = ChatOpenAI( model="openai/gpt-4o", base_url="https://api.ml-router.su/v1", api_key="orb_live_…", )
agent = create_react_agent(llm, tools=[get_weather]) result = agent.invoke({"messages": [("user", "погода в Москве")]}) ```
Сменить модель — поменять одну строку#
```python
Был openai#
llm = ChatOpenAI(model="openai/gpt-4o-mini", ...)
Стал claude#
llm = ChatOpenAI(model="anthropic/claude-3-5-sonnet", ...)
Стал gemini#
llm = ChatOpenAI(model="google/gemini-2.0-flash", ...) ```
Все модели работают через тот же OpenAI-совместимый API — никаких отдельных адаптеров не нужно.
LlamaIndex#
Аналогично через OpenAILike:
```python from llama_index.llms.openai_like import OpenAILike
llm = OpenAILike( model="openai/gpt-4o-mini", api_base="https://api.ml-router.su/v1", api_key="orb_live_…", is_chat_model=True, )
print(llm.complete("Hello")) ```