Эта статья разделена на две части,включать【Создайте чат GPT на внутреннем сервере.】и【Бэкенд Спринг Загрузить интегрированный чат GPT】。
Создавать ли чат на [внутреннем сервере] GPT] и [Backend Spring Загрузить интегрированный чат GPT], оба метода требуют, чтобы машина имела доступ к www.google.com.
Начнем с урока, состоящего из двух частей.
Сначала нужно подготовить следующие вещи:
1. Облачный сервер Linux, имеющий доступ к публичной сети, минимальная конфигурация — 1 ядро и 2G (конечно, если есть деньги, можно купить самую высокую конфигурацию)
2. Ключ GPT Чата
3. Образ Docker с открытым исходным кодом, похожий на GPT.
Это может быть Tencent Cloud, Alibaba Cloud или Huawei Cloud и т. д. Обычно я могу построить его на Alibaba Cloud и Huawei Cloud соответственно.
На сервере, который уже имеет доступ к Google, вам необходимо добавить прокси в /etc/profile, чтобы обеспечить нормальный доступ к вызову интерфейса ChatGPT через метод ключа:
export all_proxy=http://127.0.0.1:8889 export http_proxy=http://127.0.0.1:8889 export https_proxy=https://127.0.0.1:8889 export all_proxy=socks5://127.0.0.1:1080
8889 и 1080 здесь должны быть установлены соответственно в соответствии с config.json в конфигурации вашего прокси.
После завершения настройки выполните source /etc/profile, проверьте завиток Если доступ к api.openai.com/ возможен, проблем нет. Может…
Вы можете прочитать статью, которую я записал ранее о настройке.DockerКомандная строка выглядит следующим образомПримечания о проблемах, возникающих при установке Docker на CentOS7.
После завершения построения, поскольку внешний доступ Docker должен проходить через прокси хоста, необходимо задать следующие операции —
Создайте каталог ~/.docker/, затем создайте в нем новый файл config.json и добавьте в него следующую команду:
{
"default":
{
"httpProxy": "http://127.0.0.1:8889",
"httpsProxy": "http://127.0.0.1:8889",
"noProxy": "*.test.example.com,.example2.com,127.0.0.0/8"
}
}
}
копироватькод
В настоящее время на GitHub в Интернете имеется множество отличных приложений с открытым исходным кодом, имитирующих страницу чатаGPT. Нам не нужно изобретать велосипед. Нам нужно всего лишь выбрать одно из них, чтобы упаковать его и развернуть в контейнере Docker для запуска.
Я использую проект с открытым исходным кодомchatgpt-mirror.
Непосредственно клонируйте проект на соответствующий сервер Linux ——
git clone https://github.com/yuezk/chatgpt-mirror.git
копироватькод
Перед упаковкой в виде Dockerfile на основе этого проекта с открытым исходным кодом необходимо выполнить следующие зависимые образы —
docker pull node:18-alpine
docker pull node:18-slim
копироватькод
Далее вы можете выполнить следующие операции для создания образа Docker:
cd chatgpt-mirror
#--network хост означает публичную сеть с хостом, то есть используйте прокси, а потом обратите внимание на последний .
docker build --network host -t chatgpt-mirror .
#После успешного нормального выполнения вы можете увидеть новое изображение с помощью этой команды
docker images
копироватькод
Конкретная ситуация следующая:
Затем вам нужно добавить новый файл env в среду cdchatgpt-mirror и прописать в файле ключ ChatGPT и агент хост-машины:
OPENAI_API_KEY=ваш ключ GPT для чата
HTTP_PROXY=http://127.0.0.1:8889
копировать код
После завершения вышеуказанных операций наконец выполните в каталогеchatgpt-mirror——
docker run -itd --net host -p 3000:3000 -v /app/config.json:/app/config/app.config --env-file env chatgpt-mirror
После завершения нормального выполнения,Вы можете просмотреть и ввестиhttp://IP-адрес вашего сервера: 3000, вы можете получить приложение, которое выглядит как ChatGPT, но внутри вызывает реальный интерфейс ChatGPT.
Дело в том, что таким образом ваш компьютер, платформа, мобильный телефон и другие терминалы могут использовать ChatGPT напрямую без доступа к прокси, а скорость ответа примерно в два раза выше, чем при прямом подключении к официальному сайту!
Следующее — доступ к странице чата GPT, созданной на моем собственном сервере. Очень ли она похожа на настоящую?
Обратите внимание, что для этого метода также требуется, чтобы у компьютера был нормальный доступ к Google.
Сначала введите следующую конфигурацию в зависимость maven:
<dependency>
<groupId>com.theokanning.openai-gpt3-java</groupId>
<artifactId>service</artifactId>
<version>0.11.1</version>
</dependency>
копироватькод
Напишите следующий код -
@GetMapping("/ai")
public void sendMsg() throws InterruptedException {
System.out.println("Начинайте задавать вопросы~");
System.out.println("Вы помощник по работе и хотели бы помочь разработать книгу по планированию мероприятий" );
//GPT_TOKEN — ваш кодовый ключ
OpenAiService service = new OpenAiService(GPT_TOKEN,Duration.ofSeconds(10000));
CompletionRequest completionRequest = CompletionRequest.builder()
//Используемая модель
.model("text-davinci-003")
//Вводим приглашение
.prompt("Разработайте книгу по планированию мероприятий")
//Чем больше значение, тем более случайные результаты возвращаются каждый раз, то есть чем меньше сходство, необязательный параметр, значение по умолчанию 1. Ценность 0-2
.temperature(0.5)
//Вернем максимальное количество сегментов слова в результате
.maxTokens(2048)
//Аналогично температуре
.topP(1D)
.build();
service.createCompletion(completionRequest).getChoices().forEach(System.out::println);
Thread.sleep(6000);
}
копироватькод
Документация по свойствам CompletionRequest представлена здесь:
platform.openai.com/docs/api-re…
Начните, вызовите этот интерфейс, и вы сможете использовать GPT чата для интеграции с серверным кодом SpringBoot ——
Следует отметить, что если он развернут в облачном сервисе Linux с доступом через прокси, код необходимо соответствующим образом скорректировать, иначе ChatGPT не будет доступен и появится следующее исключение: java.net.ConnectException: Failed to Connect to api .openai .com/2a03:2880:f10c:283:face:b00c:0:25de:443]
Поэтому необходимо внести следующие корректировки:
public void send1Msg() throws InterruptedException {
System.out.println("Начинайте задавать вопросы~");
System.out.println("Вы помощник по работе и хотели бы помочь разработать книгу по планированию мероприятий" );
//Необходимо настроить дополнительный прокси, который сможет получить доступ к чатуGPT
ObjectMapper mapper = defaultObjectMapper();
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8889));
OkHttpClient client = defaultClient(GPT_TOKEN,Duration.ofSeconds(10000))
.newBuilder()
.proxy(proxy)
.build();
Retrofit retrofit = defaultRetrofit(client, mapper);
OpenAiApi api = retrofit.create(OpenAiApi.class);
//Передаем установленный прокси в OpenAiService
OpenAiService service = new OpenAiService(api);
CompletionRequest completionRequest = CompletionRequest.builder()
.model("text-davinci-003")
.prompt("Разработайте книгу по планированию мероприятий")
.temperature(0.5)
.maxTokens(2048)
.topP(1D)
.build();
service.createCompletion(completionRequest).getChoices().forEach(System.out::println);
Thread.sleep(6000);
}
копироватькод
Чат, развернутый в облачной службе Linux, возвращает эффект печати ——
Выше речь идет о [построении чата на отечественных серверах] GPT] и [Backend Spring Загрузить интегрированный чат GPT】Руководство, еще больше интересного о чате Если вы хотите узнать о контенте, связанном с GPT, вы можете подписаться на меня, потому что я очень заинтересован в этой области и в следующий раз поделюсь другим соответствующим контентом. Если вы ничего не понимаете, можете спросить меня за кулисами.