Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11

Как подключить GPT API в своё приложение

Читайте, как настроить доступ из России, рассчитать бюджет и не слить деньги на первой же неделе. Готовые примеры на Python и JavaScript, советы по безопасности и рекомендации от экспертов.

490 открытий3К показов
Как подключить GPT API в своё приложение

Если вы хотите добавить в свой проект чат-бота, автоматически обрабатывать тексты или генерировать контент — эта публикация сэкономит пару дней экспериментов и поможет избежать типичных ошибок при интеграции. Разберём настройку доступа из России, покажем код на Python и JavaScript, обсудим риски и случаи, когда одного API недостаточно.

Считаем расходы и настраиваем лимиты

Как подключить GPT API в своё приложение 1

OpenAI взимает плату за токены — единицы измерения текста. Один токен — это 4 символа английского текста или 2-3 символа русского:

  • «привет» — это 2 токена,
  • «hello» — 1 токен.

Вы платите за два типа токенов:

  • входящие — ваш запрос к модели,
  • исходящие — ответ модели.

Актуальные цены смотрите на сайте OpenAI.

Как подключить GPT API в своё приложение 2

Например, GPT-4o стоит $2.50 за миллион входящих токенов и $10 за миллион исходящих. Диалог на 1000 токенов обойдётся примерно в $0.01. При обработке 10 000 таких диалогов в день расходы составят $100 ежедневно.

Настройка финансовой защиты

Перед подключением API к приложению зайдите в настройки биллинга OpenAI и настройте три параметра:

  • Usage limits — жёсткое ограничение расходов. При достижении лимита API перестаёт отвечать на запросы.
  • Email notifications — уведомления при достижении определённого процента от лимита (например, 80%).
  • Rate limits — ограничения по токенам (TPM) и запросам (RPM) в минуту для каждого API-ключа.

OpenAI показывает статистику с задержкой 5-10 минут. Для контроля в реальном времени используйте библиотеку tiktoken:

			import tiktoken
encoder = tiktoken.encoding_for_model("gpt-4")
tokens = len(encoder.encode("Ваш текст"))
		

Начинайте с малых лимитов и увеличивайте постепенно. Лучше получить ошибку «превышен лимит» и быстро поднять порог, чем обнаружить пятизначный счёт в конце месяца.

Я видел много задач, которые прекрасно решаются без LLM, но «пацаны не поймут». Если без LLM и правда никак, то научитесь считать: оптимизируйте промпты, не давайте агентам уходить в долгие циклы взаимодействия с моделями.
Пётр ЕмельяновCEO Блумтех, Head of RnD Ubic

Работаем с ChatGPT из России

Как подключить GPT API в своё приложение 3

OpenAI официально не доступен российским пользователям. Если попробуете зайти на их сайт или отправить запрос к API напрямую — получите ошибку.

Можно купить подписку на любой сервис обхода блокировок за 200-500 рублей/месяц. Работает, но есть нюансы:

  • скорость ответов снижается,
  • соединение периодически разрывается,
  • если сервис накроется — ваше приложение встанет.

Более надёжный вариант — арендовать виртуальный сервер в Европе или США за $5-10 в месяц и настроить на нём прокси-сервер. Придётся потратить пару часов на настройку, зато получите стабильное соединение под вашим полным контролем.

Пришлось настроить собственный прокси — это стабильно, надёжно и недорого.
Никита БезлепкинGenAI Lead

Платим за API

OpenAI принимает только зарубежные карты, и есть несколько вариантов:

  • Виртуальные карты типа Pyypl или RedotPay. Минус один — при пополнении теряете 10-20 рублей на каждой сотне из-за курса, но для личных экспериментов терпимо.
  • Физические карты зарубежных банков. Нужно ехать в Казахстан, Армению или Грузию, либо искать посредников. Курс конвертации в таком случае будет менее грабительским.

Если возиться с обходом блокировок не хочется, есть отечественные аналоги:

  • GigaChat.
  • YandexGPT.

Ещё можно рассмотреть OpenRouter. Это агрегатор разных моделей, включая ChatGPT. Работает без смены IP, но платить всё равно придётся зарубежной картой. Цены чуть выше, чем напрямую у OpenAI.

В личных экспериментах использую OpenRouter, и мне нравится. Это «единое окно» в разные модели, работает без смены IP, совместимо с OpenAI. Также есть «обёртки» во всех популярных фреймворках, таких как langchain/langgraph, очень удобно.
Пётр ЕмельяновCEO Блумтех, Head of RnD Ubic
С одной стороны, с агрегаторами (OpenRouter) проще в плане доступа, оплаты, использования единого OpenAI API для всех моделей, консолидированного учёта расходов. С другой стороны — есть минусы: риски безопасности, стоимость, ограничения глубокой настройки и набора функций / API, ошибки доступа и маршрутизации.
Александр ШибаловскийCTO, www.linkedin.com/in/alxsh

Подключаем API на Python

Установите библиотеку OpenAI:

			pip install openai
		

Пример базового запроса по API:

			from openai import OpenAI

client = OpenAI(api_key="ваш-секретный-ключ")

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "Ты помощник программиста"},
        {"role": "user", "content": "Объясни, что такое рекурсия"}
    ],
    max_tokens=150,
    temperature=0.7
)

print(response.choices[0].message.content)
		

GPT API работает как любой другой сервис — отправили POST-запрос, получили JSON с ответом.

Три главных параметра, которые влияют на ответы:

  • max_tokens — сколько токенов (≈ слов) может содержать ответ. Поставите 50 — получите короткий ответ. Поставите 2000 — модель распишет подробно. Каждый токен стоит денег, помните об этом.
  • temperature (от 0 до 2) — насколько предсказуемы ответы. При 0 модель выдаёт самый вероятный вариант. При 1.5 начинает фантазировать. Для технической документации ставьте 0.2, для креативных задач — 0.8-1.0.
  • top_p — альтернатива temperature. Ограничивает выбор слов по вероятности. Обычно используют что-то одно: либо temperature, либо top_p.

В реальных проектах вы не обойдётесь одним запросом. Чаще всего придётся строить цепочки: сначала извлечь данные, потом проверить их, затем сформировать финальный ответ. Каждый шаг — отдельный промпт со своими параметрами.

Большинство промышленных задач с LLM не решается одним проходом и одним промптом, тебе нужна совокупность различных инструментов и ухищрений.
Никита БезлепкинGenAI Lead

Подключаем API на JavaScript

Установите библиотеку OpenAI:

			npm install openai
		

Пример базового запроса по API:

			import OpenAI from 'openai';

const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY
});

async function askGPT() {
  try {
    const response = await openai.chat.completions.create({
      model: "gpt-3.5-turbo",
      messages: [{ role: "user", content: "Привет!" }]
    });
    
    console.log(response.choices[0].message.content);
  } catch (error) {
    console.error('Ошибка:', error.message);
  }
}
		

Никогда не пишите API-ключ прямо в коде, используйте файл .env:

			OPENAI_API_KEY=sk-...ваш_ключ...
		

И библиотеку dotenv:

			import dotenv from 'dotenv';
dotenv.config();

const apiKey = process.env.OPENAI_API_KEY;
		

Чтобы не уволили и не засудили

Как подключить GPT API в своё приложение 4

В 2023 году инженеры Samsung отправили исходный код в ChatGPT, когда просили помочь с оптимизацией. После этого корпорация запретила сотрудникам работать с публичными нейросетями. И Samsung не одиноки — Amazon, Apple, JPMorgan Chase ввели похожие ограничения.

Вы отправляете данные на чужие сервера, и никто не гарантирует, что они там не останутся. OpenAI прямо пишет в документации, что может использовать ваши запросы для обучения моделей.

Люди внезапно утратили всю бдительность и запихивают в чаты что ни попадя. Безопасники реагируют по всем направлениям, вот и про DLP (Data Leak Prevention) вспомнили.
Пётр ЕмельяновCEO Блумтех, Head of RnD Ubic

Как работать безопасно

Перед отправкой заменяйте настоящие данные на фейковые. Вместо «Иван Петров, +79291234045» пишите «USER_NAME, USER_PHONE». После получения ответа подставляйте реальные значения обратно.

API-ключи храните в переменных окружениях, а не в коде. Меняйте ключи каждые 30-60 дней. Настройте алерты на всплески запросов — если обычно делаете 100 запросов в день, а тут внезапно 10000, значит ключ утёк.

Когда ждать ответ целиком, а когда показывать по частям

В API есть два режима получения ответов: обычный и потоковый (streaming). В обычном режиме вы ждёте, пока модель сгенерирует весь текст, и получаете его целиком. В потоковом — ответ приходит частями.

Стриминг нужен для тех случаев, когда не можем ждать конечный ответ (например, голосовые каналы или текстовые, где хотим удержать внимание пользователя). При этом, стриминг не повредит и в других сценариях, но только если вы понимаете, что реализация стриминга с вашей стороны не требует больших усилий.
Никита БезлепкинGenAI Lead
Со стримингом больше мороки на стороне вашей системы, например, по частям отправлять результат на фронтэнд, либо собирать результат если требуется обработка полного ответа. Получается, что без стриминга оптимально работать, если ответы короткие, либо результат используется для анализа, классификации.
Александр ШибаловскийCTO, www.linkedin.com/in/alxsh

Когда нужны фреймворки

Прямых вызовов API достаточно для простых задач — отправить запрос и получить ответ. Фреймворки нужны, когда строите чат-бота с памятью, систему с поиском по документам или многоагентную систему.

Фреймворки чисто для вызова модели не нужны, они скорее помогают нам комбинировать сложные реализации вызовов, например при разработке агентских систем. Тут мой фаворит LangGraph.
Никита БезлепкинGenAI Lead
Если цель сугубо академическая, и хочется детально разобраться, то лучше изучать «низкоуровневые» API. Если строите что-то прикладное, то удобнее, быстрее и проще взять фреймворк. Я люблю langchain/langgraph, но в последнее время DSPy всё увереннее завоёвывает моё сердечко.
Пётр ЕмельяновCEO Блумтех, Head of RnD Ubic
Из фреймворков наиболее универсальное сочетание — LangChain + LangGraph. Также могу выделить LlamaIndex, Haystack, AutoGen, crewAI, Neurite, FlashRAG.
Александр ШибаловскийCTO, www.linkedin.com/in/alxsh

Чек-лист перед стартом

  • Зарегистрируйтесь на сайте OpenAI и получите API-ключ в разделе настроек.
  • Настройте финансовые лимиты в биллинге OpenAI: Usage limits, Email notifications и Rate limits.
  • Подключите зарубежную карту для оплаты (виртуальную Pyypl/RedotPay или физическую карту зарубежного банка).
  • Настройте VPN или прокси-сервер для доступа к API из России (или используйте OpenRouter).
  • Установите библиотеку OpenAI для вашего языка программирования (pip install openai для Python или npm install openai для JavaScript).
  • Создайте файл .env и поместите туда API-ключ.
  • Напишите тестовый запрос с базовыми параметрами: model, messages, max_tokens, temperature.
  • Настройте обработку ошибок и повторные попытки при сбоях соединения.
  • Настройте мониторинг количества запросов и алерты на аномальную активность.
Следите за новыми постами
Следите за новыми постами по любимым темам
490 открытий3К показов