영어 | 중국어
트리 기반 데이터 구조를 사용하여 데이터를 저장하고 처리하는 ChatGPT 서버로, ChatGPT를 통해 사용자에게 마인드맵과 같은 Q&A 경험을 제공합니다. 트리 구조는 컨텍스트(토큰) 전송을 크게 최적화하고 회사 내에서 사용할 때 더 나은 경험을 제공합니다.
이미지는 데모 클라이언트를 보여줍니다. UI는 참조용입니다.
업무 시나리오에서는 동일한 질문을 깊게 물어야 하는 경우가 상대적으로 드물기 때문에 대부분의 경우 토큰 수는 2000개 이내로 제어할 수 있습니다. 따라서 GPT 3.5의 토큰 한도(4096)이면 충분합니다(GPT4를 고려할 필요가 없음). 정확성).
두 스크린샷 사이의 시간은 5분을 초과하지 않습니다. 사용자가 다수이기 때문에 언급된 5가지 질문에 대한 토큰 소비를 구별하기 위해서는 상세한 로그를 봐야 하지만 전체적인 토큰 소비는 통제 가능하다고 볼 수 있습니다.
43.206.107.75:4000
데모 환경은 클라우드 서버에 배포됩니다. OpenAI 토큰을 설정 하지 않으므로 모의 모드가 시작됩니다.
필요에 따라 업데이트가 이루어집니다. 프로젝트가 널리 사용될 경우 더 많은 업데이트가 제공될 예정이며, 프로젝트의 사용자가 적을 경우 관심도에 따라 업데이트가 이루어질 것입니다.
이 프로젝트를 기반으로 웹 UI를 자유롭게 개발해 보세요! 데모에 나오는 UI는 UI 디자인 초보인 제가 직접 작성한 것입니다. PR을 환영합니다!
사용자 입력을 다중 분기 트리로 구성하고 현재 분기의 콘텐츠만 GPT에 컨텍스트 정보로 전달합니다. 우리가 매번 전송하는 콘텐츠의 양은 현재 노드의 깊이와 같습니다. 다중 분기 트리를 통해 컨텍스트 선택 및 전송을 최적화합니다.
n개의 노드가 있는 이진 트리의 깊이는 logn입니다. 여기서 깊이는 GPT API에 전달해야 하는 컨텍스트 정보를 나타냅니다. 컨텍스트를 처리하지 않으면 선분으로 변질되는 1차원 트리로 간주될 수 있으며, 당연히 가장 복잡한 경우입니다. 세션을 트리 구조로 구성하여 마인드맵을 만들 수 있습니다.
OpenAI가 지원되는 국가 또는 지역의 서버 위치를 선택하는 것이 좋습니다. 데이터 센터와 클라우드 호스트가 모두 허용되며 다음 클라우드가 테스트되었습니다.
지원되지 않는 국가 또는 지역에서 테스트를 고집하는 경우 이 프로젝트는 프록시를 완벽하게 지원하지만 프록시 자체가 경험에 영향을 미치고 위험을 초래할 수 있습니다. 프록시 구성 세부정보는 Spec.GPT.TransportUrl 구성 파일을 참조하세요.
프록시 사용은 권장되지 않습니다. 자신의 책임하에 사용하십시오.
git clone https://github.com/finishy1995/effibot.git
cd effibot
기본 구성은 모의 모드입니다. 즉, 실제로 GPT API를 호출하지 않고 사용자 입력을 응답으로 반환합니다. 기본 REST API 포트는 4001
이며 모든 구성은 http/etc/http-api.yaml
파일에서 수정할 수 있습니다.
vi http/etc/http-api.yaml
Name : http-api
Host : 0.0.0.0
Port : 4001 # Port of http server, default 4001
Timeout : 30000 # Timeout of http request, default 30000(ms)
Log :
Level : debug
Mode : file # Log mode, default console 日志模式,可选 console(命令行输出) 或 file
Path : ../logs # Log file path, default ../logs
Spec :
GPT :
# Token: "sk-" # Token of OpenAI, will start mock mode if not set. OpenAI 密钥,如果不设置则启用 mock 模式
# TransportUrl: "http://localhost:4002" # Transport url of OpenAI, default "http://localhost:4002 代理地址,如果不设置则不启用代理
Timeout : 20s # Timeout of OpenAI request, default 20s
MaxToken : 1000 # Max token of OpenAI response, default 1000
파일 수정 후 One-click deployment
나 container deployment
필요한 경우 다음 명령어를 실행해 주세요.
mkdir -p ./effibot_config
cp http/etc/http-api.yaml ./effibot_config
docker
및 docker-compose
올바르게 설치되고 활성화되었는지 확인하세요.
docker-compose up -d
데모 클라이언트는 포트 4000
에서 실행되고 REST API는 포트 4000
및 4001
에서 모두 실행됩니다.
docker-compose
없으면 다음 명령을 사용할 수 있습니다.
docker network create effibot
docker run -p 4001:4001 -v ./effibot_config:/app/etc --network effibot --name effibot -d finishy/effibot:latest
docker run -p 4000:4000 --network effibot --name effibot-demo -d finishy/effibot-demo:latest
golang 1.18+가 설치 및 구성되어 있는지 확인하세요.
cd http
go run http.go # go build http.go && ./http
디렉토리 종료
cd ..
docker build -t effibot:latest -f http/Dockerfile .
docker network create effibot
# Modify the configuration file as needed, such as adding the OpenAI token and change the log mode to console
docker run -p 4001:4001 -v ./effibot_config:/app/etc --network effibot --name effibot -d effibot:latest
docker build -t effibot-demo:latest -f demo/Dockerfile .
docker run -p 4000:4000 --network effibot --name effibot-demo -d effibot-demo:latest
데모 클라이언트는 Vue.js + Vite + TypeScript로 개발되었으며 Node.js 14+ 환경이 필요합니다.
cd demo
yarn && yarn dev
데모 클라이언트는 http://localhost:5173에서 자동으로 열립니다.