Для начинающих, для "чайников
В настоящее время 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 довольно прямолинейно и просто, completions
endpoint достаточно гибок, чтобы решать большинство задач обработки языка (генерация контента, обобщение, семантический поиск, тегирование тем, анализ настроений и т. д.).
В настоящее время существует ограничение для большинства моделей: один запрос API может обрабатывать не более 4096 токенов между запросом и завершением. Также не забудьте прочитать Политики использования данных API 😉