Для начинающих, для "чайников

В настоящее время OpenAI (июль 2023 г.) предлагает следующие три продукта:

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

Прежде всего, сначала поймите, как работать с API…

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

Модели GPT-3 могут понимать и генерировать естественный язык. Более мощные модели поколения GPT-3.5 заменили эти модели, однако исходные базовые модели GPT-3 (davinci, curie, ada и babbage) в настоящее время являются единственными моделями, доступными для точной настройки.

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

Цены указаны за 1000 токенов…

Модель ценообразования

Последнее важно, потому что с вас будет взиматься плата за количество токенов. Цены оплачиваются по мере использования за 1000 токенов с бесплатным кредитом в размере 5 долларов США, который можно использовать в течение первых 3 месяцев.

⚠️ Общее количество токенов, обработанных в одном запросе, включает как приглашение, так и завершение.

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

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

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

В этом примере мы собираемся использовать /completions конечную точку, которая позволит нам отправить запрос POST и получить одно или несколько завершений, предсказанных моделью, а также вероятности альтернативных токенов в каждой позиции.

Начиная

Перейдите к своим Ключам API учетной записи OpenAI и нажмите Создать новый секретный ключ, дайте ключу имя, скопируйте и сохраните значение. Это ключ API, который вы собираетесь использовать для аутентификации (все запросы API должны включать ключ API в HTTP-заголовок Authorization).

Установите Пакет Python:

pip install openai

Ниже я объявил свой ключ API как переменную окружения OPEN_API_KEY:

!/usr/bin/env python3

import openai
import os

openai.api_key = os.getenv("OPEN_API_KEY")

# get the models names from the list
available_models = openai.Model.list()
model_names = [model['id'] for model in available_models['data']]
print(model_names)

У вас должен быть вывод с доступными моделями:

Теперь при выполнении запроса обязательными являются две вещи: идентификатор используемой модели и приглашение для создания дополнений.

Ниже приведен пример, в котором используется модельtext-davinci-003 и считывается приглашение из STDIN.

#!/usr/bin/env python3

import openai
import os

openai.api_key = os.getenv("OPEN_API_KEY")

# get the models names from the list
available_models = openai.Model.list()
model_names = [model['id'] for model in available_models['data']]
print(f"{model_names} \n Prompt: ")

iprompt = input()

response = openai.Completion.create(
            model="text-davinci-003",
            prompt=iprompt,
            temperature=0.5,
        )
print(response)

Затем я протестирую модель с помощью простой подсказки Suggest a funny name for a cat, и мы увидим, что возвращенное завершение равно Sneaky McMeowface, но более важным является finish_reason, которое в данном случае равно stop, и оно показывает, что API вернул полное завершение, сгенерированное моделью. .

Если бы я дал ему еще одну подсказку, например. What is a LLM мы видим, что теперь finish_reason равно length .

Вы можете «исправить» это, используя max_tokens (которое по умолчанию равно 16), и теперь, если установлено значение 100, мы можем четко увидеть разницу в завершении для одного и того же приглашения What is a LLM.

response = openai.Completion.create(
            model="text-davinci-003",
            prompt=iprompt,
            temperature=0.5,
            max_tokens=100,
        )

Внимательно используйте настройки для max_tokens и stop, потому что эти параметры напрямую влияют на завершения, и они могут быстро израсходовать вашу квоту токенов.

Теперь есть много параметров для завершения, некоторые из них:

  • temperature = может принимать значения от 0 до 2, по умолчанию равно 1, и если, как правило, установить высокую температуру для более творческих результатов или установить низкую температуру для более предсказуемые результаты
  • echo = логическое значение по умолчанию False, если установлено значение True, возвращается приглашение

Но повозившись с ними, хочется вернуться:

response.choices[0].text

Заключительные примечания

Использование OpenAI ChatGPT API довольно прямолинейно и просто, completionsendpoint достаточно гибок, чтобы решать большинство задач обработки языка (генерация контента, обобщение, семантический поиск, тегирование тем, анализ настроений и т. д.).

В настоящее время существует ограничение для большинства моделей: один запрос API может обрабатывать не более 4096 токенов между запросом и завершением. Также не забудьте прочитать Политики использования данных API 😉