Премиальное программное обеспечение и практические уроки
Используйте .NET для быстрого создания сервера ChatGPT и открытия API OpenAI
ChatGPT-сервер Играйте со всеми в WeChat ChatGPT Мне очень нравится играть с чат-ботами. Однако, поскольку ChatGPT запрещён WeChat, использование чат-ботов WeChat в WeChat может привести к блокировке. Я не хочу каждый раз заходить на сайт OpenAI, чтобы использовать ChatGPT, поэтому лучше создам собственный сервис для локального вызова ChatGPT. В конце концов, API OpenAI открыто для всех.
Диалог чата на официальном сайте имеет ограничения. Если текст ответа достаточно длинный, это может привести к исключениям, например, к тайм-ауту запроса по истечении определённого времени. Прямой доступ через API позволяет избежать этой ситуации.
Ниже представлена официальная информация. Вы можете самостоятельно создать сервер ChatGPT для предоставления услуг другим.
Официальный адрес веб-сайта документа:https://beta.openai.com/docs/introduction
Если вы не знаете, как зарегистрировать учетную запись OpenAI, вы можете обратиться к:
Сборка сервера ChatGPT
Сначала создайте новую программу-сервис Webapi.
Я использую .NET 6, но вы можете выбрать предпочтительную среду. Для удобства чтения я решил использовать контроллеры и включил поддержку OpenAPI (Swagger).
После его создания добавьте в программу регистрацию сервиса HttpClient, который будет использоваться для доступа к API OpenAI.
Создайте новый контроллер с именем RobotController, чтобы предоставить интерфейс webapi для тестирования.
В недавно созданном контроллере выполните некоторые начальные приготовления, например, внедрите IHttpClientFactory для резервного копирования.
На официальном сайте есть некоторая информация. Например, максимальное количество токенов модели text-davinci-003 составляет 4000, поэтому в конце есть параметр запроса, который не может превышать это число.
Это рекомендация по параметрам: установите для параметра temperature значение 0,9f, а для top_p — 1. Согласно документу, значение temperature повлияет на некоторые характеристики содержимого ответа, например на долю содержимого, которое может быть спроектировано как недружелюбное.
Давайте создадим общий класс сущности запроса, который будет служить параметрами, необходимыми для доступа к нашему веб-API. Важны три ключевых параметра, которые можно настроить более точно. Например, в документации рекомендуется установить значение temp равным 0,9f, а максимальное количество токенов — 4000, что можно изменить. Поле message содержит параметры запроса, используемые для взаимодействия с ботом.
Затем следует тело возвращаемого значения. Этот формат настраивается путём разбора возвращаемого значения OpenAI. Вы можете ссылаться на него по своему усмотрению или напрямую возвращать строку без разбора. В конце концов, это строка данных JSON, так что это не такая уж большая проблема.
Теперь давайте уточним метод Call. Общее содержимое показано ниже. «openaiKey» — мой личный ключ, поэтому я слегка размыл его, чтобы избежать проблем с конфиденциальностью. Надеюсь, вы понимаете. Остальной код вы можете посмотреть на скриншотах.
Наконец, запустите сервисную программу и введите Swagger для вызова интерфейса. Например, если я передам в поле сообщения «Помогите мне написать версию Hello World для C#», возвращаемым значением будут первые данные в массиве choices[], а text — содержимое ответа робота.
Вышеприведённый пример — всего лишь простой. Вы можете расширить или изменить его в соответствии со своими потребностями. Например, вы можете использовать существующие ключи и шаблоны для создания чат-сервиса на другом языке или создать чат-клиент для доступа к нему. Всё возможно. Если WeChat заблокирован, вы можете попробовать создать собственный сервис для косвенной реализации умного чата в определённых приложениях.
Загрузка сервера ChatGPT:https://www.mediafire.com/file/zfhax9qcbjzooq3/RobotServer.zip/file
Оригинальная ссылка этого блога:https://www.cnblogs.com/weskynet/p/16987108.html
https://pan.baidu.com/s/1aIWQHpgifxri3InYUgHWjQ?pwd=chat
https://pan.baidu.com/s/10XD3n_8gdphH7EJBX45Bbw?pwd=rbot
https://pan.baidu.com/s/1SMb2mW7DcoyCpSfEO2-2-w?pwd=chat