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

Сервис не работает в России. Для регистрации зарубежного номера можно воспользоваться сторонними сервисами для покупки виртуального номера (это стоит в районе 50 рублей), чтобы получить СМС.
Важно: покупая смс на чужой номер, Вы полностью компрометируете безопасность своего аккаунта.
Поэтому, помните, что представленный в данной статье способ получения доступа - это только для "поиграться".

Создание нового аккаунта
После успешной регистрации Вы попадете на стартовую страницу OpenAI:

Стартовая страница
Перейдите в личный кабинет - Просмотр API-ключей:

Получение API-ключей
Сгенерируйте новый ключ:
Внимание! Ключ показывается только один раз - сразу скопируйте и сохраните его

Генерация токена
Переходим в проект Salebot - Настройки проекта и создаем константу open_ai_token
Внимание! В значение константы указываем API-токен Open AI без кавычек.
open_ai_create_completion(prompt, model, max_tokens, temperature, variants)
Параметры:
!prompt - текст запроса к нейросети в виде строки. Уточнения вида "на каком языке отвечать" и прочее прописываем в данный параметр
model - модель ответа (по умолчанию - 'text-davinci-003')
Возможные варианты:
- 'text-davinci-003' - данная модель может решать логические задачи, определять причину и следствие, понимать смысл текста, создавать творческий контент, объяснять мотивы персонажей и выполнять сложные задачи обобщения.
- 'text-curie-001' - данная модель лучше справляется с обобщением, языковым переводом и классификацией настроений.
- 'text-babbage-001' - модель хорошо подходит для задач семантического поиска, которые оценивают, насколько документы соответствуют поисковому запросу.
- 'text-ada-001' - самая быстрая и наименее затратная модель. Лучше всего подходит для тривиальных задач, например для разбора текста, переформатирования текста и более простых задач классификации. Чем больше описания вы предоставите Аде, тем лучше она будет работать.
max_tokens - указание максимального числа токенов, которые могут быть использованы (по умолчанию - 512)
temperature - Какую температуру выборки использовать, от 0 до 2. Более высокие значения, такие, как 0.8, сделают вывод более случайным, а более низкие значения, такие, как 0.2, сделают его более сфокусированным и детерминированным. По умолчанию, 1.
variants - сколько вариаций ответов сгенерить (1 если не передать) Ответ функции в переменную
Если используется любой из параметров max_tokens, temperature, variants, то обязательно должен быть указан параметр model
Для получения ответа на русском обязательно укажите это в тексте запроса - prompt. Не забывайте, что чем больше по размерам запрос и подробнее ответ, тем больше расходуется "токенов". Некоторое количество токенов будет выдано бесплатно при регистрации, но в дальейшем их необходимо докупать.
Примеры:
answer = open_ai_create_completion('поздоровайся по-китайски')
После выполнения в переменной answer будет ответ сервера.
Полный вебхук вы найдете в переменной сделки open_ai_request:
{"id":"cmpl-6v3pVDEZ5Hkzlm5zEzTYljuZmKFg4", "object":"text_completion","created":1679057437, "model":"text-davinci-003","choices":[{"text":"\n\n你好!", "index":0,"logprobs":null,"finish_reason":"stop"}], "usage":{"prompt_tokens":27,"completion_tokens":9,"total_tokens":36}}
В ответе указывается модель - поле model и массив с ответами в поле choices. В нашем примере там 1 ответ, в поле text - ответ, а далее его параметры. Например, на запрос из примера затрачено 36 токенов - поле total_tokens.
Если не передавать необязательные параметры, то значения по умолчанию будут следующие:
model = 'text-davinci-003', max_tokens = 16, temperature=1, variants=1
max_tokens ограничивает максимальное значение completion_tokens, им регулируете в том числе размер ответа
variants - число вариантов, которые сгенерирует нейросеть
По достижению лимита токенов будет получен ответ:
{ "error": { "message": "You exceeded your current quota, please check your plan and billing details.", "type": "insufficient_quota", "param": null, "code": null } }
Этот ответ говорит о том, что закончилась предоставленная квота и требуется выбрать тариф для оплаты.
open_ai_moderations(moderated_text)
Параметры
moderated_text - текст для проверки
Описание
Данная функция оценит текст через нейросеть по разным показателям:
- наличие «сексуального» контекста
- проявление «ненависти»
- призыв к «насилию»/«самоповреждение»
- наличие «сексуального контекста в отношении несовершеннолетних»
- проявление «ненависти/угрозы»/"насилие/графика"
После проверки вернет ответ - числовые показатели по вышеупомянутым категориям и оценку нейросети на допустимость содержимого текста
Пример ответа:
{"id":"modr-6wYsfOLFauZVZJSRWXJtPJdfnEFTn","model":"text-moderation-004","results":[{"flagged":false,"categories":{"sexual":false,"hate":false,"violence":false,"self-harm":false,"sexual/minors":false,"hate/threatening":false,"violence/graphic":false},"category_scores":"sexual":0.04952487722039223,"hate":0.002161110285669565,"violence":0.002313266508281231,"self-harm":3.314739660709165e-05, "sexual/minors":0.00018231201102025807, "hate/threatening":2.090354882966494e-06, "violence/graphic":8.858629598762491e-07}}]}
open_ai_edits(input, instruction, model, temperature) - Исправляет/редактирует текст в соответствии с заданными инструкциями
Параметры
input - текст для исправления
instruction - инструкции, что необходимо сделать (например, исправь ошибки)
model - модель редактирования, необязательный параметр
Возможные значения:
- text (используется по умолчанию) - редактирование/исправление текста
- code - редактирование/исправление ошибок в программном коде (нет гарантий правильности проведенного редактирования кода)
temperature - коэффициент сложности, значение от 0 до 2, необязательный параметр.
Чем выше значение, тем разнообразнее варианты ответов, чем меньше, тем предопределеннее ответы на однотипные запросы. По умолчанию значение 1
open_ai_images_generations(prompt, variants, size) - генерация картинок
Параметры
prompt - описание желаемого изображения, не более 1000 символов
variants - необязательный параметр, число вариантов изображения для генерации. По умолчанию 1
size - необязательный параметр, размер картинки. Указать нужно один из вариантов 1024 (значение по умолчанию), 512 или 256. Генерирует только квадратные картинки.
Функцию помещаем в переменную для получения содержимого ответа. Ответ содержит ссылки на сгенерированные изображения
open_ai_chat_completions(client_answer, model, max_tokens, temperature) - функционал для чата, работает специфично, но это позволило оформить его в таком виде.
Параметры
client_answer - текст, содержаший вопрос в чат
model - используемая модель, допускается 2 варианта 'gpt-3.5-turbo' (значение по умолчанию) и 'gpt-4'. Gpt-4 - бета-версия нейросети, имеет ограничения
max_tokens - максимум токенов, который может быть израсходован, по умолчанию 1024.
Не забывайте учитывать ограничения версий нейросети, в частности:
- 'gpt-3.5-turbo' имеет ограничение в 4096 токенов
- 'gpt-4' - в 8192 токена
temperature - необязательный параметр, значение от 0 до 2 (значение по умолчанию 1). Чем выше значение, тем разнообразнее варианты ответов, чем меньше, тем предопределеннее будут ответы на однотипные запросы.
GPT-4 находится в разработке и еще не была выпущена, поэтому пометка "Limited beta" означает, что модель доступна только для ограниченного числа пользователей в рамках бета-тестирования. Это позволяет разработчикам тестировать модель и устранять ошибки, прежде чем она будет доступна всем пользователям. Когда модель будет готова к выпуску, она вероятно будет доступна без ограничений.
Если Вы получаете ошибку вида:
{ "error": { "message": "The model: gpt-4 does not exist", "type": "invalid_request_error", "param": null, "code": "model_not_found" } }
значит Вам недоступна данная модель, используйте модель помладше.
Для указания общих инструкций работы нейросети добавьте в константы проекта переменную open_ai_instruction, чтобы бот понимал как отвечать в той или иной ситуации.
Например, укажите значение "Отвечай вежливо на том языке, на котором к тебе обращаются".
История хранится в переменных сделки, в переменной под названием open_ai_chat_messages.
Будьте внимательнее при редактировании значения переменной open_ai_chat_messages. При внесении некорректных правок функция может стать невыполнимой
У нейросети есть ограничение - в историю сохраняются 25 сообщений. Если их больше, то делает 25, а потом добавляет сообщение пользователя и ответ нейросети (ну и инструкцию, если ее вдруг удалило).
Роли для работы следующие:
- user - пользователь
- system - инструкции для бота
- assistant - ответы нейросети.
Не бойтесь удалить переменную инструкций. В случае, если мы не найдем те инструкции, что были заданы в переменной open_ai_instruction, мы добавим их до добавления последнего сообщения в историю.
предусмотрено только для функций open_ai_create_completion() и open_ai_chat_completions()
Для получения полного вебхука от OpenAI достаточно присвоить любое значение переменной save_webhook(переменная может быть как константой проекта, так и переменной сделки).


При этом ответ OpenAI будет записываться в переменную open_ai_request, которую вы найдете в карточке клиента среди переменных сделки. В частности, open_ai_request будет содержать количество израсходованных токенов для выполнения запроса и прочую полезную информацию.
Функцию выполнять нужно внутри переменной и тогда в нее вернется ответ нейросети в виде текста без лишних данных и можно будет сразу отправить его клиенту. Если что-то пошло не так (например токены закончились, бесплатный период использования истек или возникли непредвиденные ошибки из-за вмешательства в историю чата) то вернет ответ сервера полностью.
Last modified 2mo ago