# LangChain через Konductor

LangChain работает с Konductor через `ChatOpenAI` из пакета `langchain-openai`: нужны только `base_url` и ключ компании. Пример проверен на `langchain-openai==0.3.35`.

## Установка

```bash
pip install langchain-openai==0.3.35
```

## Первый запрос

Задай `KONDUCTOR_KEY` и `KONDUCTOR_MODEL`, как в [быстром старте](/konductor/docs/quickstart), и запусти:

```python
import os

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url="https://llm.kodzavod.ru/v1",
    api_key=os.environ["KONDUCTOR_KEY"],
    model=os.environ["KONDUCTOR_MODEL"],
    max_tokens=256,
)

answer = llm.invoke("Привет!")
print(answer.content)
print(answer.response_metadata["token_usage"]["cost_rub"])
```

Последняя строка печатает стоимость запроса в рублях: LangChain кладёт `usage` ответа в `response_metadata["token_usage"]`, а `cost_rub` Konductor добавляет туда же.

## Что здесь важно

- `base_url` — `https://llm.kodzavod.ru/v1`, с `/v1` на конце. SDK дописывает к нему только `/chat/completions`.
- `api_key` — ключ компании.
- `model` — идентификатор модели из каталога на странице [Цены](/konductor/pricing).
- `max_tokens` ограничивает ответ. Перед запросом Konductor резервирует деньги по `max_tokens` на выходе, поэтому слишком большое значение может дать 402. LangChain отправляет это поле как `max_completion_tokens`, Konductor принимает оба имени.

## Если запрос не прошёл

Смотри страницу [Ошибки 402, 403 и 429](/konductor/docs/errors). Если нужен тот же вызов без LangChain, смотри [OpenAI SDK через Konductor](/konductor/docs/openai-sdk).
