Интеграция LangChain для AI-пайплайнов в мобильном приложении
Ваше мобильное приложение — доставка еды — ежедневно обрабатывает 5000 запросов. Каждый требует поиска по 50 000 страниц меню, акций и ресторанов. Без контекста LLM отвечает шаблонно, с полной загрузкой документов трафик зашкаливает. Выход — RAG-пайплайн на базе LangChain. Backend сам находит релевантные фрагменты и передаёт их в промпт. Клиент отправляет лишь короткий запрос, сервер возвращает ответ на основе актуальных данных. Закажите консультацию — мы проанализируем вашу задачу и предложим оптимальную архитектуру.
Мы строим такие пайплайны для iOS и Android более 5 лет. Под нагрузкой до 10 000 запросов в день latency не превышает 2 секунд для 95% вызовов. LangChain — оркестратор, который связывает цепочки LLM, инструменты, память и векторные хранилища. Согласно официальной документации LangChain, пайплайны с RAG сокращают стоимость токенов на 40% за счёт уменьшения входящего контекста.
Как RAG-пайплайн снижает нагрузку на мобильное устройство?
RAG (Retrieval-Augmented Generation) — техника, при которой сервер ищет релевантные документы в векторном хранилище и добавляет их в контекст LLM. Без RAG клиенту пришлось бы передавать гигабайты документов на сервер — это дорого и медленно. С RAG сервер сам находит 4–6 фрагментов, экономя трафик до 80% и ускоряя ответ до 1,5 секунды. Например, ассистент по внутренней документации: PDF и Notion индексируются в pgvector, пользователь задаёт вопрос, backend возвращает ответ на основе контекста. Кастомная реализация RAG занимает 2–3 месяца и требует постоянной поддержки — LangChain сокращает этот срок до 3–5 дней.
Почему агенты требуют явного подтверждения?
Агенты LangChain самостоятельно вызывают инструменты: проверка баланса, создание платежа, поиск магазинов. Деструктивные операции — списание денег, удаление данных — должны подтверждаться пользователем на мобильном UI. Наша реализация добавляет шаг explicit confirmation: агент формирует запрос, приложение показывает диалог, и только после одобрения выполняется действие. Это предотвращает случайные списания и соответствует политикам App Store и Google Play. Без такого подтверждения агент может выполнить нежелательное действие, что приведёт к негативному пользовательскому опыту и юридическим рискам.
Как LangChain решает проблему долгосрочной памяти?
Память между сессиями — частая потребность. LangChain предлагает несколько типов, каждый под свою задачу:
| Тип памяти | Принцип | Когда использовать |
|---|---|---|
| ConversationBufferMemory | Вся история | Короткие сессии |
| ConversationSummaryMemory | Саммари через LLM | Длинные сессии (экономит токены) |
| ConversationBufferWindowMemory | Последние K сообщений | Стандартный выбор |
| VectorStoreRetrieverMemory | Семантический поиск по истории | Долгосрочная память |
Персистентность истории — через PostgresChatMessageHistory или RedisChatMessageHistory. Session ID передаётся с мобильного клиента, backend подгружает нужную историю.
RAG-пайплайн: разбор на компонентах
Сценарий: мобильный ассистент отвечает на вопросы по внутренней документации компании (PDF, Notion-страницы).
# Backend — FastAPI + LangChain
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import PGVector
from langchain.chains import create_retrieval_chain
from langchain.chains.combine_documents import create_stuff_documents_chain
from langchain_core.prompts import ChatPromptTemplate
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.3)
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
# pgvector — хранилище документов
vectorstore = PGVector(
embeddings=embeddings,
collection_name="company_docs",
connection=DATABASE_URL,
)
retriever = vectorstore.as_retriever(search_kwargs={"k": 4})
# Промпт с контекстом из документов
prompt = ChatPromptTemplate.from_messages([
("system", "Ты ассистент компании. Отвечай только на основе предоставленного контекста.\n\nКонтекст:\n{context}"),
("human", "{input}")
])
chain = create_retrieval_chain(retriever, create_stuff_documents_chain(llm, prompt))
@app.post("/api/chat")
async def chat(request: ChatRequest):
result = await chain.ainvoke({"input": request.message})
return {"answer": result["answer"]}
Мобильное приложение делает обычный POST-запрос. Вся сложность RAG скрыта на сервере.
Агенты с инструментами
LangChain-агент с инструментами позволяет ассистенту выполнять реальные действия: проверить баланс счёта, создать задачу, найти ближайший магазин через геолокацию API.
from langchain.agents import AgentExecutor, create_openai_functions_agent
from langchain.tools import tool
@tool
def get_account_balance(account_id: str) -> str:
"""Возвращает текущий баланс счёта пользователя."""
balance = database.get_balance(account_id)
return f"Баланс счёта {account_id}: {balance} USD"
@tool
def create_payment(amount: float, recipient: str) -> str:
"""Создаёт платёж. Требует подтверждения."""
payment_id = payments.create(amount, recipient, status="pending")
return f"Платёж {payment_id} создан, ожидает подтверждения."
agent = create_openai_functions_agent(llm, [get_account_balance, create_payment], prompt)
executor = AgentExecutor(agent=agent, tools=[get_account_balance, create_payment], verbose=True)
Критично: деструктивные операции (платежи, удаление) должны проходить через explicit confirmation на мобильном UI, а не автоматически выполняться агентом.
Мониторинг через LangSmith
LangChain нативно интегрируется с LangSmith — платформой для трейсинга цепочек. Каждый вызов chain видно по шагам: сколько токенов потратил retriever, сколько — generation, где возникли задержки. Включается через переменные окружения, без изменений кода.
Что входит в интеграцию LangChain?
- Анализ требований к пайплайну и предложение архитектуры.
- Выбор компонентов: chain, agent, RAG, тип памяти.
- Разработка backend API на FastAPI или аналоге.
- Интеграция векторного хранилища: pgvector, Pinecone или Weaviate.
- Настройка мониторинга через LangSmith.
- Нагрузочное тестирование: гарантируем latency < 2 секунд для 95% запросов.
- Документация API и передача доступов.
- Бесплатная поддержка 2 недели после внедрения.
Ориентиры по срокам
Простой RAG-пайплайн с pgvector — 3–5 дней. Многошаговый агент с кастомными инструментами — 1–2 недели. Полная система с памятью, мониторингом и fallback — 2–4 недели.
Получите консультацию — мы оценим проект и предложим оптимальное решение под ключ. Рассчитаем стоимость и сроки, подберём архитектуру под вашу задачу.







