А вы знаете, сколько стоит один запрос API Chat GPT? Что скрывается за этим непонятным словом Tokens (токены)? И как сделать запрос дешевле?

Сегодня мы разберём тему формирования цены на запросы API Chat GPT, а так же узнаем, как посчитать стоимость вашего запроса.

Начнём с цены и откуда она берётся

Все актуальные цены мы можем узнать на официальном сайте OpenAI (у меня без VPN не открывается).

Давайте разберём на примере мой любимый GPT-3.5 Turbo.

Вот его цена:

Model

Input

Output

4K context

$0.0015 / 1K tokens

$0.002 / 1K tokens

16K context

$0.003 / 1K tokens

$0.004 / 1K tokens

А теперь по порядку.

Что за разные Модели (Model)?
Названия «4K context» и «16K context» обозначают, сколько символов может обработать на входе нейросеть.
«4K context» - может обработать 4 тысячи токенов
«16K context» - может обработать 16 тысяч токенов
* что такое токены я расскажу ниже
4 тысяч или 16 тысяч это довольно большая разница!
А цена увеличивается всего в 2 раза.

Input - цена за входящий запрос
Output - цена за исходящий ответ
Что они обозначают, мы поймём позже

И вот они, цены:
«$0.003 / 1K tokens» 
Что такое $0.003 мы понимаем, но что такое 1K tokens, может быть совсем непонятным!
Я изначально думал, что один Токен, это один запрос. (Как же я был наивен!)

Что такое токены?

Яндексим (ищем в интернете)

Токен — это цифровой актив (сертификат), который представляет определенную стоимость, функционирует на основе блокчейна или другой децентрализованной сети и гарантирует обязательства компании перед его владельцем.

Сложно и непонятно.

Спрашиваем Chat GPT

В контексте нейросетей, термин "tokens" (токены) обычно относится к минимальным единицам, на которые разбивается входной текст или последовательность символов перед подачей на обработку модели. Токеном может быть одна буква, одно слово или даже целая фраза, в зависимости от типа и задачи модели.

В итоге мы понимаем, что Токен, это какая-то плавающая единица измерения для нейросети.

Но как так, я ведь плачу за каждую эту единицу свои деньги! Почему я не могу быть точно уверенным в объёме.

OpenAI продумали этот момент и предоставили нам инструмент для вычисления количества токенов в нашем запросе. (тоже открывается только с VPN)

скриншот с сайта https://platform.openai.com/tokenizer
скриншот с сайта https://platform.openai.com/tokenizer

Сюда мы можем вставить наш текст, который мы хотим отправлять в запрос нейросети и получить число затрачиваемых токенов на наш запрос.

???? Заметил, что число токенов на русском языке не соответствует реальному запросу. На английском языке расчёт точный.

Но мы же не будем каждый раз переходить на сайт, вставлять наш запрос и подсчитывать, сколько же он стоит!

И не надо!)
Точный расчёт затраченных токенов нам придёт в ответе от Chat GPT.

???? Сейчас будет много непонятного для обычного пользователя, и чтобы не нагружать вас терминами, я скрою блоки с кодом, формулами и вычислениями.

СЧИТАЕМ ТОКЕНЫ В ЗАПРОСЕ

СЧИТАЕМ ТОКЕНЫ В ЗАПРОСЕ

Давайте разберём это на конкретном примере.

Сейчас я задам боту такой контекст:
«Я Бот Роман.
Очень неразговорчив!
Говорю не больше 5 слов.
Не люблю людей, особенно тебя.
Груб и неопрятен.»

И напишу в. запросе:
«Привет) как дела?»

Мой код на Python будет выглядеть так:

message_list = [
    { "role": "system", "content" : "Я Бот Роман. Очень неразговорчив! …» }
    { "role": "user", "content" :  "Привет) как дела?" }
]
completion = openai.ChatCompletion.create(
    model=”gpt-3.5-turbo-16k",
    messages=message_list
)
chat_response = completion.choices[0].message.content
completion_usage = completion.usage

chat_response - Это ответ Chat GPT на наш вопрос, он мне ответил: «Привет. Дела нормально, спасибо.»

completion_usage - это как раз расчёты, сколько токенов было затрачено! 
Выглядит completion_usage так:

{
  "prompt_tokens": 76,
  "completion_tokens": 18,
  "total_tokens": 94
}

Теперь вспомним про Input и Output в начале статьи.
prompt_tokens - это число токенов затраченное на входные данные Input
completion_tokens
- это число токенов затраченное на выходные данные Output
total_tokens
- всего затрачено токенов, нам это не нужно.
Таким образом мы можем узнать, сколько токенов было потрачено на наш запрос.

РАССЧИТАЕМ СТОИМОСТЬ ЗАПРОСА

РАССЧИТАЕМ СТОИМОСТЬ ЗАПРОСА

Что ж, мы узнали сколько токенов было затрачено на наш запрос, теперь рассчитаем, сколько он стоил.

Формула выглядит так:
-------->
(p / 1000) * mi + (c / 1000) * mo = d
p
-  (prompt_tokens) затраченное число токинов на вход
с - (completion_tokens) затраченное число токенов на выходе
*делим мы их на 1000, так как цена за 1000
mi - цена за 1000 токенов указанная в прайсе Input
mo
- цена указанная в прайсе  Output
d
- цена в долларах

(p / 1000) * mi + (c / 1000) * mo = d

Давайте рассчитаем по нашей формуле стоимость составленного запроса, используя gpt-3.5-turbo-16k:

Model

Input

Output

16K context

$0.003 / 1K tokens

$0.004 / 1K tokens

РАСЧËТ:
(76 / 1000) * 0,003 + (18 / 1000) * 0,004 = 0,0003 доллара

На текущий момент доллар стоит 91 рубль
0,0003 * 91 = 0,0273 рубля
Итого: 0,0273 рубля

Округляем и получаем 3 копейки.

Немного, согласен, не жалко.

При этом символов в описании было 109 + 17 (в вопросе) = 126 символов на вход.
Бот с такой настройкой будет иметь мало пользы.

Давайте рассчитаем стоимость более реального запроса, когда Chat GPT имеет приличное описание преднастройки.

Число символов в описании 6453 + 16 (в вопросе) = 6469

В ответе получаем такое количество токенов:
"prompt_tokens": 2968
"completion_tokens": 104

Рассчитаем по формуле:
(2968 / 1000) * 0,003 + (104 / 1000) * 0,004 = 0,00932 долларов
0,00932 * 91 = 0,84812

Вот это уже нормальная сумма, 84 копейки за запрос.

Но будем честны, даже с курсом в 91 рубль за доллар, вы его за такую цену не купите, и я бы рассчитывал на 100 рублей за доллар.

ИТОГО, почти рубль за один неплохой запрос.

А теперь представим, что на каждый вопрос в 20 символов, бот будет нам отвечать в 230 символов, и в итоге каждый вопрос будет увеличивать число на 250 символов.

И приблизительно посчитаем, сколько будет стоить диалог в 10 вопросов боту.
Применим формулу для расчёта:
--------> (x * 10 + y * (n * (n+1) / 2) ) * (z / x) = r
x
- число символов в описание 
y - на сколько будет увеличиваться число символов за один вопрос 
n - число сообщений
z - цена полученная при вычислении первого запроса (у нас 0,00932)
r - цена за переписку в 10 сообщений

(x * 10 + y * (n * (n+1) / 2) ) * (z / x) = r

РЕШАЕМ:
(6453 * 10 + 250 * (10 * (10 + 1) / 2) ) * (0,00932 / 6453)  ≈ 0,118076 долларов
0,118076 * 91 ≈ 10.752116 рублей

Не хило так, одна переписка на 10 вопросов нам обходится в 10 рублей и 75 копеек.

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

Ещё надо учесть, что этот расчёт сделан по текущему курсу, вы скорее всего заплатите больше, покупая доллары.

???? Прошу заметить, что за 10 сообщений, это очень примерный расчёт! Реальную сумму мы сможем получить, только прогнав вопросы и получив на выходе число затраченных токенов.

КАК СЭКОНОМИТЬ ТОКЕНОВ В ЗАПРОСЕ

КАК СЭКОНОМИТЬ ТОКЕНОВ В ЗАПРОСЕ

Недавно узнал, что Chat GPT тратит намного меньше токенов, если говорить с ним на Английском языке!

Давайте же проверим это)
Просто переведём в Яндекс переводчике наше первое описание про Рому.
Получаем:
«I'm a Bot Novel.
Very taciturn!
I say no more than 5 words.
I don't like people, especially you.
Rude and untidy.»

Вопрос можем задать так же на русском и ответ получим на русском:
«Привет) как дела?»

Получаем такие затраты токенов:
"prompt_tokens": 55
"completion_tokens":  13

Давайте сравним:

Название

Число Токенов на Рус

Число Токенов на Англ

prompt_tokens

76

55

completion_tokens

18

13

Уменьшение стоимости вышло примерно на 18%
Уже не плохо!

Но реальная экономия начинается, когда мы делаем большие запросы!:

Название

Число Токенов на Рус

Число Токенов на Англ

prompt_tokens

2968

1568

completion_tokens

104

133

Хоть и число на формирование ответа подросло, мы получаем экономию почти в 2 раза!!!
При этом, сами вопросы мы оставляем на русском.

Итоги

Я подробно описал, как рассчитать стоимость одного запроса API Chat GPT в скрытом блоке РАССЧИТАЕМ СТОИМОСТЬ ЗАПРОСА.

???? Все суммы ниже относятся к gpt-3.5-turbo-16k, если вы хотите использовать gpt-3.5-turbo, то делите все итоговые суммы на 2.

Если обобщить весь блок и сказать очень примерную цифру.
То за 3000 русских символов в запросе мы заплатим 81 копейку с курсом в 91 рубль за доллар.
И очень грубо говоря: 3000 / 81 = 0,027 копеек за одни символ.
Для точных расчётов ознакомьтесь с блоком расчёта цены!

А за один хороший запрос, примерно в 5000 символов, стоимость будет в районе
1 рубля.
Поэтому, любой сервис написанный на Chat GPT, будет стоить около 1 - 2 рублей за запрос.

По итогу, стоимость Chat GPT не такая уж и маленькая, особенно, когда мы хотим добиться от неё вразумительных для нас результатов.

Большая это цена или маленькая, решать вам. 

Для какого-то бизнеса подобные затраты будут копейками, а в каких-то проектах, это поставит крест на идее внедрить себе Chat GPT.

Если вам было интересно, буду рад вашему отклику и фидбеку????

Я и дальше продолжу изучать этот сложный мир нейросетей и делиться с вами своими открытиями!

Автор: Жданов Роман

Комментарии (8)


  1. Mihaelc
    04.08.2023 15:58
    +3

    То есть если грамотно формулировать вопросы и писать ему по 20-50 сообщений в день, то будет стоить около 10-15$/мес - обычная цена месячной подписки многих сервисов. Но я пока использовал его только чтобы поиграться. Реально полезного применения для себя так и не нашел:)


    1. Pemuul Автор
      04.08.2023 15:58
      +1

      Для себя я начал применять его в обучающих целях.

      Например даю ему установку, чтобы он задавал вопросы по программированию уровня Middle и Senior, и если не знаю ответа, то прошу его подробнее рассказать.

      Ещё общаюсь с ним на Английском языке для практики.

      Это можно делать и в обычном чате, понимаю, но каждый раз настраивать, это не так уж и удобно, мне проще один раз настроить всё основательно, сделать простой сайтик и пользоваться.


    1. rPman
      04.08.2023 15:58

      gpt4 доступен только по подписке 20$/m


      Заглянул сюда чтобы узнать, есть ли какой то лимит токенов, доступный без оплаты по этой подписке, и как я понимаю этого нет (есть бесплатные ознакомительные $ на токены gpt3 и ниже на бесплатном аккаунте но они сгорают через месяц после регистрации).


  1. BoberMod
    04.08.2023 15:58
    +6

    Но мы же но будем каждый раз переходить на сайт, вставлять наш запрос и подсчитывать, сколько же он стоит!

    Поэтому будем писать код, который делает тоже самое, вызывается 1 раз и больше никогда не используется.

    Вся статья гуглится одним запросом "openai token size", где первая же ссылка ведёт на хелпу не только с информацией о длине, но и других языках и особенностях.

    Более того, там есть ссылка на библиотеку tiktoken, которая позволяет рассчитать близкое к реальному количество токенов не отправляя никакие запросы.


    1. Pemuul Автор
      04.08.2023 15:58

      Я знал о библиотеке tiktoken, но решил не включать о ней информацию, так как не хотел перегружать статью.

      Да, tiktoken подойдёт, чтобы примерно рассчитать, сколько стоит размер потенциального запроса, но это будет только приблизительный подсчёт!

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

      Во-вторых, данный метод не даёт нам возможности посчитать, сколько будет стоить запрос целиком, так как мы платим не только за количество токенов на входные данные, но и за количество токенов, затраченных на генерацию ответа, причем по цене выше, чем запрос. Да, обычно на ответ тратится намного меньше токенов, но это будет зависеть от запроса. И быть на 100% уверенным, сколько будет затрачено токенов на запрос, невозможно. Мы можем узнать, сколько было потрачено токенов на формирование ответа по факту, получив число в ответе.


  1. izirayd
    04.08.2023 15:58
    +13

    Я ожидал от статьи расчет себестоимости токенизации, относительно цены видеокарт, которые использует GPT на серверах openai, расчеты по научным изысканием и прочее и прочее, что в конечном счет покажет сколько стоит в реальности токен


    1. Pemuul Автор
      04.08.2023 15:58

      Нет, эта статья не о том)

      Хотя тема интересная!


    1. niksite
      04.08.2023 15:58
      +1

      Вот да. Тоже ожидал оценку себестоимости.

      Для пользователя то понятно что копейки оно стоит. Для профессионального использования уже не совсем копейки и есть смысл использовать 3.5 или даже 3 в отдельных случаях, а не 4 по умолчанию.