ChatGPT-Plus는 공식 ChatGPT API를 사용하는 애플리케이션입니다.
데모 시연/피드백 문제/Gitpod 개발/Vercel 배포
중국어 간체 |
이 프로젝트가 마음에 드시나요? 별점 주세요 ️
아니면 친구들과 공유하여 개선하는 데 도움을 주세요!
ChatGPT-Plus 클라이언트는 공식 ChatGPT API의 애플리케이션입니다. 이 애플리케이션은 OpenAI ChatGPT의 공식 API에 대한 래퍼 애플리케이션입니다.
Node.js에서 이 모듈을 사용하려면 두 가지 방법 중 하나를 선택해야 합니다.
방법 | 무료? | 건장한? | 품질? |
---|---|---|---|
ChatGPTAPI | 아니요 | ✅ 예 | ✅️진짜 채팅GPT 모델 |
ChatGPTUnofficialProxyAPI | ✅ 예 | ✔️아마도 | ✅ 실시간 채팅GPT |
ChatGPTAPI
- 공식 OpenAI 채팅 완료 API(공식적이고 강력한 방법이지만 무료는 아님)와 함께 gpt-3.5-turbo-0301
모델을 사용합니다. 모델, 완성 매개변수 및 시스템 메시지를 대체하여 어시스턴트를 완전히 사용자 정의할 수 있습니다.
ChatGPTUnofficialProxyAPI
- 비공식 프록시 서버를 사용하여 Cloudflare를 우회하는 방식으로 ChatGPT의 백엔드 API에 액세스합니다(가벼우나 타사 서버에 의존하고 속도 제한이 있는 실제 ChatGPT 사용).
이 두 메서드는 API가 매우 유사하므로 전환이 간단해야 합니다.
참고: ChatGPTAPI
OpenAI의 공식 지원 API를 사용하므로 사용을 적극 권장합니다. 향후 릴리스에서는 ChatGPTUnofficialProxyAPI
에 대한 지원이 중단될 수 있습니다.
요청 원칙은 chatgpt-api에서 제공하는 기능 모듈을 사용합니다.
온라인 개발에 Gitpod를 사용할 수 있습니다.
또는 로컬 개발에 복제하고 다음 단계를 따르세요.
# clone the project
git clone https://github.com/zhpd/chatgpt-plus.git
git 환경이 없다면 zip 패키지를 직접 다운로드하여 압축을 풀고 프로젝트 디렉터리로 들어가시면 됩니다.
이 프로젝트는 Node.js를 기반으로 개발되었으며 Node.js 14.0+ 환경이 필요합니다.
fetch
사용할 수 있도록node >= 18
사용하고 있는지 확인하세요(또는 가져오기 폴리필을 설치한 경우node >= 14
).
본 프로젝트는 OpenAI에서 공식적으로 제공하는 API를 사용하며, API Key와 AccessToken 신청이 필요합니다.
- OpenAI 공식 등록 신청 주소: https://platform.openai.com/, 과학적인 인터넷 접속이 필요합니다.
- 다른 방법을 통해
ApiKey
또는AccessToken
얻으려면 클릭하세요.
애플리케이션이 성공하면 chatgpt-plus/service/.env
파일에 APIKey 및 AccessToken을 입력하세요.
개발에는 VSCode 편집기를 사용하고,
ESLint
및Prettier
플러그인을 설치하고, 설정에서Format On Save
켜는 것이 좋습니다.
루트 디렉터리 .env에서 포트 및 인터페이스 요청 주소를 구성합니다. 수정을 위해 루트 디렉터리에 .env.example 파일을 직접 복사하고, 파일명을 .env로 변경하시면 됩니다.)
환경 변수 이름 | 기본값 | 설명하다 |
---|---|---|
PORT | 3000 | 포트 |
NEXT_PUBLIC_API_URL | http://localhost:3002 | 인터페이스 주소 |
수정을 위해 루트 디렉터리에 .env.example 파일을 직접 복사하고, 파일 이름을 .env로 변경하면 됩니다.
# port
PORT = 3000
# api url
NEXT_PUBLIC_API_URL = http://localhost:3002
# enter the project directory
cd chatgpt-plus
# install dependency
npm install
# develop
npm run dev
작업이 성공적으로 시작된 후 브라우저에서 http://localhost:3000을 열어 효과를 확인할 수 있습니다.
서비스 디렉터리의 .env에 포트, ApiKey 및 AccessToken을 구성합니다.
환경 변수 이름 | 기본값 | 설명하다 |
---|---|---|
PORT | 3002 | 포트 |
OPENAI_API_KEY | - | API_KEY |
OPENAI_ACCESS_TOKEN | - | ACCESS_TOKEN |
API_REVERSE_PROXY | https://api.pawan.krd/backend-api/conversation | 연기 |
TIMEOUT_MS | 60000 | 시간 초과(밀리초) |
수정을 위해 서비스 디렉터리에 .env.example 파일을 직접 복사하고, 파일명을 .env로 변경하면 됩니다.
# service/.env
# OpenAI API Key - https://platform.openai.com/overview
OPENAI_API_KEY =
# change this to an `accessToken` extracted from the ChatGPT site's `https://chat.openai.com/api/auth/session` response
OPENAI_ACCESS_TOKEN =
# Reverse Proxy default 'https://bypass.churchless.tech/api/conversation'
API_REVERSE_PROXY =
# timeout
TIMEOUT_MS = 100000
# enter the project directory
cd chatgpt-plus
# enter the service directory
cd service
# install dependency
npm install
# develop
npm run dev
작업이 성공적으로 시작되면 백엔드 서비스가 정상적으로 실행될 수 있습니다.
Docker를 사용하여 배포하려면 Docker 환경을 설치해야 합니다.
docker-compose 폴더의 구성 파일을 사용하여 끌어서 실행합니다.
배포에 Vercel을 사용하고 원클릭 배포
.env
파일에 있는 API_URL
실제 백엔드 인터페이스 공용 네트워크 주소로 수정합니다.npm install
실행하여 종속 항목 설치npm run build
실행하여 코드 패키징dist
폴더의 파일을 웹 사이트의前端服务
디렉터리에 복사합니다.dist
폴더에 들어가세요npm run start
실행하여 서비스를 시작하세요. service
폴더를 입력하세요npm install
실행하여 종속 항목 설치npm run build
실행하여 코드 패키징service/dist
폴더의 파일을 웹 사이트의后端服务
디렉터리에 복사합니다.service/dist
폴더를 입력하세요.npm run start
실행하여 서비스를 시작하세요.참고 : 패키징을 원하지 않는 경우
service
폴더를 서버에 직접 복사한 후npm install
및npm run start
실행하여 서비스를 시작할 수 있습니다.
백엔드 service.env에 OPENAI_API_KEY
키를 구성하여 액세스할 수 있습니다.
# R OpenAI API Key
OPENAI_API_KEY =
이 프로젝트는 OpenAI에서 공식적으로 제공하는 API를 사용합니다. 먼저 OpenAI 계정을 신청해야 합니다.
백엔드 service.env에 OPENAI_ACCESS_TOKEN
액세스 토큰을 구성하여 액세스할 수 있습니다.
# change this to an `accessToken` extracted from the ChatGPT
OPENAI_ACCESS_TOKEN =
ChatGPT 웹 애플리케이션에서 OpenAI 액세스 토큰을 얻어야 합니다. email
과 password
필요하고 액세스 토큰을 반환하는 다음 방법 중 하나를 사용할 수 있습니다.
이러한 라이브러리는 이메일 및 비밀번호로 인증하는 계정과 함께 작동합니다(예: Microsoft/Google로 인증된 계정을 지원하지 않음).
또는 ChatGPT 웹 애플리케이션에 로그인하고 https://chat.openai.com/api/auth/session
열어 accessToken
수동으로 얻을 수 있습니다. 그러면 accessToken
문자열이 포함된 JSON 개체가 반환됩니다.
액세스 토큰은 며칠 동안 유효합니다.
참고 : 역방향 프록시를 사용하면 액세스 토큰이 제3자에게 노출됩니다. 부작용은 없지만 이 방법을 사용하기 전에 위험을 고려하십시오.
백엔드 service.env에서 API_REVERSE_PROXY
프록시 주소를 구성하여 역방향 프록시를 재정의할 수 있습니다.
# Reverse Proxy
API_REVERSE_PROXY =
커뮤니티 구성원이 실행하는 알려진 역방향 프록시는 다음과 같습니다.
역방향 프록시 URL | 작가 | 비율 제한 | 마지막 확인 날짜 |
---|---|---|---|
https://bypass.churchless.tech/api/conversation | @acheong08 | IP별 요청 5개/10초 | 2023년 3월 24일 |
https://api.pawan.krd/backend-api/conversation | @PawanOsman | 요청 50개/15초(~3r/s) | 2023년 3월 23일 |
참고: OpenAI의 액세스 비활성화를 방지하기 위해 역방향 프록시 작동 방식에 대한 정보는 현재 공개되지 않습니다.
Q: 프런트 엔드 페이지만 사용하는 경우 요청 인터페이스를 어디에서 변경합니까?
A: 루트 디렉터리에 있는 .env
파일의 API_URL
필드입니다.
Q: 프런트엔드에는 타자기 효과가 없나요?
A: 한 가지 가능한 이유는 Nginx 역방향 프록시와 버퍼가 켜진 후 Nginx가 브라우저에 보내기 전에 백엔드에서 특정 크기의 데이터를 버퍼링하려고 시도하기 때문입니다. 안티 매개변수 뒤에 proxy_buffering off;
추가한 다음 Nginx를 다시 로드해 보세요. 다른 웹서버의 구성도 동일합니다.
기여해주신 모든 분들께 감사드립니다!
이 프로젝트가 도움이 된다고 생각하시면 별점을 주거나 친구들과 공유해 주세요. 여러분의 지원이 제 가장 큰 동기가 됩니다!
MIT © zhpd