Как использовать ChatGPT API для прямого взаимодействия с Colab или Databricks

Задумывались ли вы, как можно использовать API OpenAI для прямого взаимодействия с алгоритмами GPT? Это просто, бесплатно, а также более эффективно, чем «классический» веб-интерфейс на www.openai.com. В этом руководстве мы проведем вас через несколько простых шагов, которые позволят вам использовать GPT для генерации текста, создания изображений или отладки вашего кода!

Хотите скачать книги по Python в 2 клика? Тогда вам в наш телеграм канал PythonBooks 

По мере роста использования ChatGPT и других решений для обработки естественного языка (NLP) растет и количество инструментов и платформ, которые позволяют пользователям взаимодействовать с этими передовыми функциями. Одним из самых популярных вариантов является веб-интерфейс OpenAI, который получил широкое признание за свою способность решать сложные задачи обработки естественного языка (NLP).

Однако сегодня мы рассмотрим альтернативу: ChatGPT API. Эта статья разделена на три основных раздела:

  1. Настройка учетной записи в OpenAI и создание ключа API.
  2. Установка связи с Google Colab.
  3. Создание различных запросов: генерация текста, создание изображения и исправление ошибок.

Обратите внимание: хотя это руководство было выполнено в Google Colab (с бесплатным аккаунтом), вы можете также попробовать и другие среды. Например, весь этот код можно использовать и в Databricks.

Настройка учетной записи в OpenAI и создание ключа API

Для взаимодействия с алгоритмами GPT вам необходимо зарегистрировать бесплатную учетную запись в OpenAI: https://platform.openai.com/signup/

После регистрации вам нужно будет создать свой ключ API, который позволит вам отправлять запросы в OpenAI из сторонних сервисов, таких как Google Colab или Databricks. Перейдите в раздел «Просмотр ключа API» через пользовательское меню или воспользуйтесь следующей ссылкой: https://platform.openai.com/account/api-keys.

В этом разделе просто нажмите Create new secret key (Создать новый секретный ключ) и сохраните созданный ключ где-нибудь на своем компьютере (он скоро вам понадобится!).

Вид вкладки API Keys

Обратите внимание, что на сегодняшний день ChatGPT API предлагает бесплатное пробное использование с ограниченным количеством запросов и токенов в минуту. Ограничения скорости:

  • бесплатная пробная версия — 20 RPM 40000 TPM
  • оплата по мере использования (первые 48 часов) — 60 RPM 60000 TPM
  • оплата по мере использования (после 48 часов) — 3500 RPM 90000 TPM

(RPM = запросы в минуту, TPM = токены в минуту).

Установка связи с Google Colab

Самый простой способ протестировать API — использовать Google Colaboratory («Colab»), которая является чем-то вроде «бесплатной среды Jupyter Notebook, не требующей настройки и полностью работающей в облаке».

Хотя есть много других профессиональных сред, которые вы, возможно, захотите изучить (например, Databricks), мы все же считаем, что Colab — неплохой сервис для первых шагов с ChatGPT API.

Чтобы настроить базовую среду для ChatGPT в Colab, выполните следующие шаги:

  1. Откройте https://colab.research.google.com/ и зарегистрируйте бесплатную учетную запись.
  2. Создайте новый блокнот в Colab.
  3. Установите пакет openai: pip install openai

Чтобы выполнить простой запрос к API GPT 3.5 turbo model вместо обращения к их веб-интерфейсу, вы можете просто выполнить следующие строки кода в ноутбуке:

import os
import openai

openai.api_key = "please-paste-your-API-key-here"

openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "user", "content": "Hello ChatGPT, does this work?"}
  ]
  )

Другие доступные модели смотрите в их документации, ссылка на которую приведена в конце этой статьи.

Запустив данный код в Google Colab, вы получите JSON-объект, содержащий ожидаемый ответ! Это было легко, не так ли?

Вот текст этого ответа:

Hello! As an AI language model, I don’t have the context of what \”this\” refers to. Could you please specify what you are referring to so I can assist you better?

<OpenAIObject chat.completion id=chatcmpl-70ErnAfGGwU7GhMXzCcLGyUvr4hA2 at 0x7f097f0a5f40> JSON: {
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "Hello! As an AI language model, I don't have the context of what \"this\" refers to. Could you please specify what you are referring to so I can assist you better?",
        "role": "assistant"
      }
    }
  ],
  "created": 1680291503,
  "id": "chatcmpl-70ErnAfGGwU7GhMXzCcLGyUvr4hA2",
  "model": "gpt-3.5-turbo-0301",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 38,
    "prompt_tokens": 17,
    "total_tokens": 55
  }
}

Кроме того, объект JSON предоставляет информацию о количестве использованных токенов и причине завершения запроса. Если вам нужен только текстовый ответ, вы можете его получить, немного изменив свой код:

import os
import openai

openai.api_key = "please-paste-your-API-key-here"

response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "user", "content": "Hello ChatGPT, does this work?"}
  ]
  )

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

Создание различных запросов

Теперь, если у вас есть желание, вы можете начать отправлять множество различных запросов в ChatGPT API. В программировании очень полезно разбивать свой код на модули, то есть создать несколько полезных функций, которые можно будет вызывать для разных целей. Позвольте дать вам несколько идей.

Функция для общения с ChatGPT

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

import os
import openai

openai.api_key = "please-paste-your-API-key-here"

def chatWithGPT(prompt):
  completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
  {"role": "user", "content": prompt}
  ]
  )
  return print(completion.choices[0].message.content)

Как вы думаете, есть ли смысл изучать Python? Давайте спросим GPT!

chatWithGPT("is it a good idea to start learning python?")
As an AI language model, I cannot provide personal opinions, but I can say that Python is a popular and widely used programming language that is highly favored by beginners and experienced developers alike. It has a vast community support, a large number of libraries, and a simple syntax that makes it easy to grasp for those new to programming. It is useful for various applications, like data analysis, web development, machine learning, and more. Therefore, it could be a good idea to start learning Python if you want to pursue a career in programming or want to add another skill to your resume.

Функция для исправления ошибок в вашем коде

Еще один вариант использования ChatGPT — получать советы по исправлению вашего кода. Представьте, что ваш код Python возвращает ошибку, и вы хотите получить совет, что делать, не используя Google или StackOverflow:

import os
import openai

openai.api_key = "please-paste-your-API-key-here"

def fixMyCode(code): 
  completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "user", "content": "find error in my python script below and fix it: " + code}
  ]
  )
  return print(completion.choices[0].message.content)

Смотрите, наш код Python выдал ошибку, и мы не знаем, почему…

fixMyCode("""

def some_function():
    print("I'm going to sleep")
    time.sleep(10)
    print("I'm awake again")

some_function()

""")
Код с ошибкой и совет ChatGPT по ее исправлению.

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

Функция для создания изображений

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

import IPython
import os
import openai

openai.api_key = "please-paste-your-API-key-here"

def createImageWithGPT(prompt): 
  completion = openai.Image.create(
  prompt=prompt,
  n=1,
  size="512x512"
  )
  return IPython.display.HTML("<img src =" + completion.data[0].url + ">")

Давайте проявим творческий подход и попросим изобразить нам кота, едущего на скейтборде!

createImageWithGPT("Cat driving a skateboard")
Кот на скейтборде

Заключение

С помощью ChatGPT API предприятия и частные лица могут легко и недорого включать чат-ботов в свой рабочий процесс без технических знаний или обширных ресурсов, которые обычно требуются для такого рода задач.

API также можно использовать для создания виртуальных помощников, личных наставников и многого другого. Мы рекомендуем тщательно изучить документацию, предоставленную OpenAI для их API: https://platform.openai.com/docs/api-reference.

Таким образом, API легко использовать в вашей среде программирования. Это не только полезно для прямой отладки вашего кода, но также показывает более стабильную скорость отклика по сравнению с веб-интерфейсом OpenAI (который иногда недоступен).

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

Перевод статьи Jonas Dieckmann How To Use ChatGPT API for Direct Interaction From Colab or Databricks.