Перейти к содержанию

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")) ```