> ## Documentation Index
> Fetch the complete documentation index at: https://speshu.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# LangChain: как собрать RAG-бота по своим документам за вечер

> Практичный обзор LangChain: что это такое, как работает RAG-пайплайн, чем он отличается от LlamaIndex и как подключить модели SpeShu.AI.

LangChain — open-source фреймворк для приложений на базе LLM. Его используют, когда простой вызов модели уже не решает задачу: нужно подключить документы, сделать поиск по базе знаний, добавить инструменты, память или управляемый агентный сценарий.

О нём говорят потому, что LangChain стал одним из стандартных способов быстро собрать RAG-прототип. Вы можете взять PDF, страницу документации, выгрузку из CRM или набор Markdown-файлов и превратить их в чат, который отвечает с опорой на ваши данные.

В этой статье разберём, где LangChain полезен, как устроен типовой RAG-пайплайн и как заменить прямой OpenAI endpoint на SpeShu.AI.

## Что такое langchain

LangChain — это набор компонентов для работы с языковыми моделями, embeddings, retrievers, vector stores, prompts и tool calling. Он не является отдельной моделью. Это слой, который связывает модель, данные и бизнес-логику.

Фреймворк нужен разработчикам, которые хотят собрать не просто чат, а приложение: поиск по документам, ассистента поддержки, агента для анализа репозитория, внутренний помощник по регламентам или генератор отчётов.

Главная идея простая: вы описываете цепочку шагов, а LangChain помогает привести данные к нужному формату, вызвать модель и вернуть ответ.

## Как работает langchain

В RAG-сценарии архитектура обычно состоит из пяти частей:

* загрузчик документов получает файлы или страницы;
* splitter делит текст на чанки;
* embeddings превращают чанки в векторы;
* vector store ищет релевантные фрагменты;
* LLM отвечает на вопрос с найденным контекстом.

Для короткого прототипа достаточно in-memory хранилища. Для продакшена чаще выбирают Qdrant, Weaviate, Chroma, Postgres/pgvector или другую базу с нормальным индексом и фильтрами.

Технически LangChain хорош тем, что не заставляет вас жить внутри одного провайдера. Можно использовать OpenAI-compatible API, локальные модели, внешние vector DB и свои функции.

## Что умеет langchain

* подключать chat-модели через `ChatOpenAI`;
* создавать embeddings через `OpenAIEmbeddings`;
* строить RAG по PDF, HTML, Markdown и базам данных;
* работать с vector stores;
* вызывать инструменты и функции;
* собирать агентов и workflow;
* интегрироваться с LangGraph для stateful-логики.

Мини-кейсы: чат по базе знаний, ассистент службы поддержки, поиск по юридическим документам, генерация ответов на RFP, анализ внутренней документации.

## langchain на практике

Ниже минимальный RAG-пайплайн. Он использует OpenAI-compatible endpoint SpeShu.AI: чат-модель идёт через `/chat/completions`, embeddings — через `/embeddings`.

```python theme={null} theme={null}
import os
from langchain_core.documents import Document
from langchain_core.vectorstores import InMemoryVectorStore
from langchain_openai import ChatOpenAI, OpenAIEmbeddings

api_key = os.environ["SPESHU_AI_API_KEY"]
base_url = "https://speshu.ai/api/v1"

docs = [
    Document(page_content="SpeShu.AI даёт доступ к разным LLM и оплату в рублях."),
    Document(page_content="Для RAG нужны embeddings, vector store и chat-модель."),
]

embeddings = OpenAIEmbeddings(
    model="text-embedding-3-large",
    api_key=api_key,
    base_url=base_url,
)

vector_store = InMemoryVectorStore(embeddings)
vector_store.add_documents(docs)

question = "Что нужно для RAG-бота?"
context = "\n\n".join(
    doc.page_content for doc in vector_store.similarity_search(question, k=2)
)

llm = ChatOpenAI(
    model="openai/gpt-5.5",
    api_key=api_key,
    base_url=base_url,
)

answer = llm.invoke(
    [
        ("system", "Отвечай только по контексту."),
        ("user", f"Контекст:\n{context}\n\nВопрос: {question}"),
    ]
)

print(answer.content)
```

На выходе получится простой бот, который ищет релевантные документы и отвечает по найденному контексту. Дальше можно заменить `InMemoryVectorStore` на Qdrant или Weaviate, добавить загрузку PDF и сохранять историю диалога.

## Преимущества и недостатки langchain

Плюсы:

* огромная экосистема интеграций;
* быстрый старт для RAG;
* поддержка OpenAI-compatible API;
* много готовых примеров и компонентов.

Минусы:

* много абстракций, в которых легко запутаться;
* API менялся несколько раз, поэтому старые статьи быстро устаревают;
* для сложных stateful-агентов лучше сразу смотреть в сторону LangGraph.

## langchain vs альтернативы

LangChain vs LlamaIndex: LangChain шире и удобен для цепочек, инструментов и агентов. LlamaIndex часто проще, когда главная задача — подключить данные и сделать поиск.

LangChain vs Haystack: Haystack более явно строит pipeline из компонентов и хорошо подходит для production RAG. LangChain быстрее для прототипов и гибких LLM-приложений.

LangChain vs Flowise: Flowise даёт визуальный интерфейс поверх LangChain-подобных блоков. LangChain лучше, если вы хотите писать код и контролировать архитектуру.

## Кому подойдёт langchain

LangChain подойдёт backend-разработчикам, AI-стартапам, командам поддержки, аналитикам с Python-навыками и продуктовым командам, которым нужен быстрый RAG-прототип.

Если вы хотите сделать production-сервис, заранее продумайте хранение документов, обновление индекса, лимиты токенов, права доступа и observability.

## Как попробовать langchain через SpeShu.AI

SpeShu.AI удобно использовать как OpenAI-compatible endpoint для такого LangChain-пайплайна:

* не нужен VPN;
* не нужна зарубежная карта;
* доступно несколько моделей через один ключ;
* один интерфейс для чата и embeddings;
* быстрый старт через [личный кабинет](https://speshu.ai/profile).

Получите ключ, укажите `base_url="https://speshu.ai/api/v1"` и выберите модель из [каталога](/api-reference/models/list).

## Заключение

LangChain стоит попробовать, если вы хотите быстро собрать RAG-бота, агента или LLM-приложение с собственными данными. Главный инсайт: фреймворк не заменяет архитектуру, но сильно ускоряет первый рабочий прототип.

Для серьёзного проекта начинайте с малого: один источник данных, один vector store, один понятный prompt и проверяемые ответы.

***

<Card title="Подключить API" icon="plug" type="tip" href="https://speshu.ai/profile">
  Запустите интеграцию через SpeShu.AI: единый доступ к AI-моделям, без VPN и зарубежной карты
</Card>
