Вы уже умеете писать промпты и использовать модели в интерактивном режиме — через ChatGPT, Claude или другие интерфейсы. Но как быть, если вы хотите подключить LLM к своему продукту? Например:
- сделать Telegram-бота, который генерирует тексты;
- создать AI-интерфейс для анализа данных в Notion;
- автогенерировать отчёты из CRM по расписанию.
В этом уроке вы научитесь использовать OpenAI API и познакомитесь с библиотеками, которые помогают автоматизировать работу: LangChain, Flowise и аналоги.
Что вы узнаете в рамках статьи
- Как получить ключ OpenAI API и отправить первый запрос;
- Как учитывать токены, лимиты и ограничения контекста;
- Как построить пайплайн с LangChain или Flowise;
- Как вызывать модель из бота, приложения или сервиса;
- Как проектировать надёжную LLM-интеграцию.
📓 Ключевые термины
- API (Application Programming Interface) — интерфейс взаимодействия с моделью через код.
- Token — минимальная единица текста, за которую списывается плата.
- Rate limiting — ограничение частоты запросов к API.
- Context window — максимальный объём текста, который модель может обработать за один раз.
- LangChain / Flowise — фреймворки для работы с LLM и создания цепочек обработки.
📡 Подключение к OpenAI API
Если вы хотите использовать LLM в своём проекте — например, создать умного бота, генератор текстов или ассистента для анализа данных — вам понадобится подключиться к OpenAI API. Это как подключить "мозг" к вашему приложению.
🧰 1. Получите API-ключ
Перейдите в профиль OpenAI и сгенерируйте ключ. 📎 Аналогия: это как цифровой пропуск или бейджик — он подтверждает, что именно вы обращаетесь к модели и позволяет учитывать лимиты.
💡 Не публикуйте этот ключ публично (например, в GitHub) — с ним можно делать запросы от вашего имени.
📦 2. Установите библиотеку
Чтобы общаться с моделью на Python, используйте официальный клиент OpenAI. Установка простая:
pip install openai
📎 Аналогия: Вы устанавливаете “переводчика”, который будет пересылать ваши запросы к модели и возвращать ответы.
🧪 3. Простейший запрос
Вот минимальный рабочий пример на Python:
import openai
openai.api_key = "ваш_ключ"
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "user", "content": "Сделай краткое резюме этой статьи"}
]
)
print(response["choices"][0]["message"]["content"])
Что здесь происходит:
| Строка | Объяснение |
|---|---|
import openai |
Подключаем библиотеку |
openai.api_key = ... |
Указываем ключ доступа |
ChatCompletion.create(...) |
Отправляем диалог модели |
model="gpt-4" |
Выбираем нужную модель |
messages=[...] |
Передаём историю общения: кто и что сказал |
print(...) |
Показываем ответ модели |
📎 Аналогия: Представьте, что вы отправляете письмо в очень умный call-центр (GPT). Вы формулируете свой запрос, указываете, кто вы (роль "user"), и получаете развёрнутый ответ, оформленный по нужному протоколу.
⚖️ Работа с токенами и ограничениями
Когда вы общаетесь с LLM, каждый символ в запросе и ответе превращается в токены — это минимальные смысловые единицы, с которыми работает модель. Они похожи на "монетки", которые тратятся при каждом запросе. Чтобы эффективно использовать модель, нужно понимать, как эти токены считаются и как избежать переполнения.
🧮 Что такое токены
Токен — это не обязательно слово. Это может быть часть слова, служебный символ, даже пробел. Например:
Hello→ 1 токенunbelievable→ может разбиться наun,believ,able(3 токена),или.— тоже отдельные токены
📎 Аналогия: Токены — это как пиксели в изображении. Даже если глаз видит одно целое, модель разбивает всё на маленькие части и считает по ним.
💡 В среднем 100 токенов ≈ 75 слов на английском. На русском — чуть меньше (≈ 60–70 слов), потому что слова длиннее.
📏 Ограничения на размер
У разных моделей — разные максимумы. Например:
| Модель | Лимит токенов |
|---|---|
gpt-3.5-turbo |
16 385 токенов |
gpt-4 (базовая) |
8 192 токена |
gpt-4-1106-preview |
128 000 токенов |
Всё, что вы передаёте в messages, а также то, что модель генерирует в ответ — суммируется. Если лимит превышен, запрос не выполнится и вы получите ошибку.
📎 Аналогия: Это как переполнить корзину в магазине: касса откажется пробивать, если вещей слишком много.
🧹 Как не выйти за лимит
Чтобы избежать ошибок и контролировать расходы:
- Очищайте старую историю. Не нужно держать в
messagesвесь диалог с начала времён. Оставляйте только релевантное. - Ограничьте длину входных данных. Например, урезайте текст до 500 слов или заранее сжимайте его.
- Контролируйте генерацию. Ставьте
max_tokens, чтобы ответ не превысил нужную длину.
📎 Аналогия: Вы не печатаете всю историю чата перед каждым сообщением — вы просто продолжаете с того места, где нужно.
🛠 Инструменты для работы с токенами
Чтобы точно оценить длину запроса, можно использовать библиотеку tiktoken:
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4")
tokens = enc.encode("Пример текста для оценки")
print(len(tokens)) # Выводит количество токенов
📎 Аналогия: Это как весы: вы заранее знаете, поместится ли ваш “багаж” в лимит модели.
🧱 LangChain и Flowise: как строить цепочки действий
Когда вы работаете с LLM, часто одного запроса недостаточно. Нужно получить данные из базы, затем передать их в модель, потом обработать результат… И тут на помощь приходят специальные фреймворки — LangChain и Flowise. Они позволяют соединять действия в логические цепочки, где каждое звено решает свою задачу.
🔗 Зачем нужны цепочки
Один промпт — это хорошо, но в реальных проектах часто нужно:
- Сначала понять, что хочет пользователь
- Затем извлечь нужную информацию (из базы или документа)
- Потом передать всё в модель
- И наконец — красиво оформить или переслать результат
📎 Аналогия: Это как кулинарный рецепт: не просто "сделай суп", а "возьми овощи → нарежь → обжарь → добавь воду → вари → подай с зеленью".
⚙️ Что такое LangChain
LangChain — это Python-фреймворк, который позволяет строить цепочки запросов и логики вокруг LLM.
Например:
from langchain.chains import LLMChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
template = "Составь описание товара: {product}"
prompt = PromptTemplate.from_template(template)
llm = OpenAI(model_name="gpt-3.5-turbo")
chain = LLMChain(llm=llm, prompt=prompt)
response = chain.run(product="умные часы для бега")
print(response)
Здесь prompt — как шаблон, chain.run() — как вызов всей цепочки.
📎 Аналогия: LangChain — это как Lego для работы с LLM. Вы собираете кирпичики: промпт, модель, память, внешние вызовы — и создаёте собственные мини-программы.
🧩 Что такое Flowise
Flowise — это визуальный no-code редактор, построенный поверх LangChain. Вы работаете не с кодом, а с блоками, которые соединяются стрелками:
- Блок "User Input" — принимает ввод от пользователя
- Блок "Retrieval" — ищет нужную информацию (например, в PDF или базе)
- Блок "Chat Model" — общается с LLM
- Блок "Output" — показывает или передаёт результат
📎 Аналогия: Flowise — это как Figma, но для AI: вы визуально проектируете поток взаимодействия между пользователем и моделью.
💡 Где это особенно полезно
LangChain и Flowise идеально подходят для:
- 👨💼 Создания AI-ассистентов для бизнеса
- 🗂 Интеграции с базами знаний (вики, CRM, Notion)
- 📊 Генерации отчётов и визуализаций
- 🤖 Разработки чат-ботов с памятью и логикой
- 🧪 Прототипирования и экспериментов без кода
🤖 Интеграция в приложения: ваш собственный ChatGPT
После того как вы настроили взаимодействие с LLM и построили цепочки, возникает следующий шаг: встроить интеллект в реальные интерфейсы. То есть — соединить модель с привычными для пользователей платформами: Telegram, веб-приложением, отчетной системой.
📎 Аналогия: Это как вырастить искусственный мозг (LLM), а потом встроить его в тело: чат-бот, сайт, инструмент для команды. Без "тела" интеллект не может быть полезным.
📨 Telegram-бот: быстрый старт
Вы можете создать собственного бота на базе OpenAI с помощью библиотеки python-telegram-bot:
from telegram import Update
from telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypes
import openai
openai.api_key = "ваш_ключ"
async def handle(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_input = update.message.text
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": user_input}]
)
await update.message.reply_text(response["choices"][0]["message"]["content"])
app = ApplicationBuilder().token("ваш_тг_токен").build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle))
app.run_polling()
📎 Аналогия: это как посадить GPT за экран Telegram и позволить пользователям общаться напрямую, но в вашем сценарии: HR-бот, консультант, генератор писем и т.п.
🌐 Веб-приложение: React + backend
Если вы делаете сайт, где нужно взаимодействие с LLM (например, генерация описаний, ответ на вопросы, персонализированный интерфейс) — вы можете интегрировать OpenAI API через свой backend (Node/Python/Go), а на фронте использовать React или любую другую SPA-библиотеку.
Клиент отправляет запрос → бэкенд формирует prompt → отправляет его в OpenAI → возвращает результат.
📎 Аналогия: это как если бы вы добавили на сайт кнопку "Спросить эксперта", и вместо того, чтобы писать самому, за вас отвечает LLM.
🕒 Cron-задачи: автоматизация генерации
Иногда LLM не нужен в реальном времени, а работает в фоне. Например:
- Раз в день — генерировать и отправлять отчёты
- Каждую ночь — подготавливать резюме новых новостей
- Раз в час — проверять тональность отзывов
Вы настраиваете cron (или любой планировщик задач), и Python-скрипт вызывает OpenAI API по расписанию.
📎 Аналогия: это как нанять невидимого помощника, который работает ночью: пишет отчёты, сортирует отзывы, подводит итоги — и вы приходите с утра, а всё готово.
🎯 Что важно при встраивании
Когда вы интегрируете LLM в приложения, важно проектировать устойчивую систему:
- 💬 Fallback-ответы — что делать, если модель "зависла" или не дала ответа?
- 🛠 Логирование — записывайте ошибки и время выполнения, чтобы понимать, где узкие места.
- ♻️ Замена промптов — держите шаблоны промптов в отдельных файлах или базе, чтобы можно было обновлять их без деплоя.
📎 Аналогия: вы делаете не "магическую" кнопку, а интерфейс с разумной логикой, резервами и управляемостью — как настоящий пользовательский продукт.
❌ Наиболее частые ошибки
- Игнорируют лимит токенов - Модель не завершает ответ или выдаёт ошибку — разработчик забывает учитывать длину запроса и ответа.
- Забывают про rate limiting - При высоком трафике API блокируется — нужно добавлять паузы и повторные попытки.
- Жёстко прошиты промпты - Любое изменение требует правки кода — стоит выносить шаблоны отдельно.
- Невнятные ошибки - Пользователь не понимает, что пошло не так — отсутствуют fallback-сообщения и логирование.
- Слишком длинный ввод - Модель не справляется с большим контекстом — нужен контроль длины и сжатие текста.
🤔 Частые вопросы
- Нужно ли всегда использовать LangChain?
Нет. Если у вас простой бот или скрипт — хватит прямого запроса к API. - Что делать, если превышен лимит токенов?
Обрезать ввод или использовать сжатие (compression, summarization). - Можно ли подключить другие модели?
Да. LangChain и Flowise работают и с Claude, Mistral, Gemini и другими.
✅ Итоги
Теперь вы умеете подключать LLM к своим продуктам:
- знаете, как устроен API и как обрабатывать токены;
- умеете вызывать модель через код или визуальные пайплайны;
- можете встраивать генерацию и анализ в ботов, UI, задачи.
Это делает LLM не просто "игрушкой для чата", а реальным помощником в вашем продукте или проекте.