английский | 中文
Сервер ChatGPT, который хранит и обрабатывает данные с использованием древовидной структуры данных, предоставляя пользователям возможность задать вопросы и ответы в формате интеллект-карты с помощью ChatGPT. Древовидная структура значительно оптимизирует передачу контекста (токенов) и обеспечивает удобство использования внутри компании.
На изображении показан демо-клиент; Пользовательский интерфейс предназначен только для справки.
В рабочих сценариях необходимость глубоко задавать один и тот же вопрос относительно редка, поэтому в большинстве случаев количество токенов можно контролировать в пределах 2000. Поэтому лимита токенов GPT 3.5 (4096) достаточно (нет необходимости учитывать GPT4 для точность).
Время между двумя скриншотами не превышает 5 минут. Из-за нескольких пользователей необходимо просматривать подробные журналы, чтобы различать потребление токенов по пяти упомянутым вопросам, но общее потребление токенов можно рассматривать как контролируемое.
43.206.107.75:4000
Демонстрационная среда разворачивается на облачном сервере. И НЕ устанавливайте токен OpenAI, чтобы он запустил макетный режим.
Обновления будут производиться по мере необходимости. Дополнительные обновления будут предоставляться, если проект широко используется, а обновления будут производиться на основе интереса, если у проекта меньше пользователей.
Не стесняйтесь разрабатывать веб-интерфейс на основе этого проекта! Пользовательский интерфейс в демо-версии написан мной, новичком в дизайне пользовательского интерфейса. Пиар приветствуется!
Организуйте пользовательский ввод в виде дерева с несколькими ветвями и передавайте в GPT только содержимое текущей ветки в качестве контекстной информации. Объем контента, который мы передаем каждый раз, равен глубине текущего узла. Оптимизируйте выбор и передачу контекста через многоветвевое дерево.
Бинарное дерево с n узлами имеет глубину logn. Глубина здесь относится к контекстной информации, которую нам необходимо передать в GPT API. Если не обрабатывать контекст, его можно рассматривать как одномерное дерево, которое вырождается в отрезок прямой, естественно, самый сложный случай. Организовав сеанс в виде древовидной структуры, мы можем создать интеллектуальную карту.
Рекомендуется выбрать расположение сервера в стране или регионе, поддерживаемом OpenAI. Допускаются как центры обработки данных, так и облачные хосты, а также были протестированы следующие облака:
Если вы настаиваете на тестировании в неподдерживаемой стране или регионе, этот проект полностью поддерживает прокси, но сам прокси может повлиять на работу и создать риски . Подробные сведения о конфигурации прокси-сервера см. в файле конфигурации Spec.GPT.TransportUrl.
Использование прокси не рекомендуется. Используйте на свой страх и риск.
git clone https://github.com/finishy1995/effibot.git
cd effibot
Конфигурацией по умолчанию является режим Mock, что означает, что он фактически не вызывает API GPT, а возвращает введенные пользователем данные в качестве ответа. Порт 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.