Upload 4 files
Browse files- docker/Dockerfile +35 -0
- docker/build.sh +8 -0
- docker/docker-compose.yml +24 -0
- docker/entrypoint.sh +51 -0
docker/Dockerfile
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM python:3.10-slim-bullseye
|
| 2 |
+
|
| 3 |
+
LABEL maintainer="foo@bar.com"
|
| 4 |
+
ARG TZ='Asia/Shanghai'
|
| 5 |
+
|
| 6 |
+
ARG CHATGPT_ON_WECHAT_VER
|
| 7 |
+
|
| 8 |
+
RUN echo /etc/apt/sources.list
|
| 9 |
+
# RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
|
| 10 |
+
ENV BUILD_PREFIX=/app
|
| 11 |
+
|
| 12 |
+
ADD . ${BUILD_PREFIX}
|
| 13 |
+
|
| 14 |
+
RUN apt-get update \
|
| 15 |
+
&&apt-get install -y --no-install-recommends bash ffmpeg espeak libavcodec-extra\
|
| 16 |
+
&& cd ${BUILD_PREFIX} \
|
| 17 |
+
&& cp config-template.json config.json \
|
| 18 |
+
&& /usr/local/bin/python -m pip install --no-cache --upgrade pip \
|
| 19 |
+
&& pip install --no-cache -r requirements.txt \
|
| 20 |
+
&& pip install --no-cache -r requirements-optional.txt \
|
| 21 |
+
&& pip install azure-cognitiveservices-speech
|
| 22 |
+
|
| 23 |
+
WORKDIR ${BUILD_PREFIX}
|
| 24 |
+
|
| 25 |
+
ADD docker/entrypoint.sh /entrypoint.sh
|
| 26 |
+
|
| 27 |
+
RUN chmod +x /entrypoint.sh \
|
| 28 |
+
&& mkdir -p /home/noroot \
|
| 29 |
+
&& groupadd -r noroot \
|
| 30 |
+
&& useradd -r -g noroot -s /bin/bash -d /home/noroot noroot \
|
| 31 |
+
&& chown -R noroot:noroot /home/noroot ${BUILD_PREFIX} /usr/local/lib
|
| 32 |
+
|
| 33 |
+
USER noroot
|
| 34 |
+
|
| 35 |
+
ENTRYPOINT ["/entrypoint.sh"]
|
docker/build.sh
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
unset KUBECONFIG
|
| 4 |
+
|
| 5 |
+
cd .. && docker build -f docker/Dockerfile.latest \
|
| 6 |
+
-t zhayujie/chatgpt-on-wechat .
|
| 7 |
+
|
| 8 |
+
docker tag zhayujie/chatgpt-on-wechat zhayujie/chatgpt-on-wechat:$(date +%y%m%d)
|
docker/docker-compose.yml
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version: '2.0'
|
| 2 |
+
services:
|
| 3 |
+
chatgpt-on-wechat:
|
| 4 |
+
image: zhayujie/chatgpt-on-wechat
|
| 5 |
+
container_name: chatgpt-on-wechat
|
| 6 |
+
security_opt:
|
| 7 |
+
- seccomp:unconfined
|
| 8 |
+
environment:
|
| 9 |
+
OPEN_AI_API_KEY: 'fk-Z34sxodzWW_c6kziSaKIMtQOSzbIObAiNKHVVAQlElg'
|
| 10 |
+
MODEL: 'gpt-3.5-turbo'
|
| 11 |
+
PROXY: ''
|
| 12 |
+
SINGLE_CHAT_PREFIX: '["bot", "@bot"]'
|
| 13 |
+
SINGLE_CHAT_REPLY_PREFIX: '"[bot] "'
|
| 14 |
+
GROUP_CHAT_PREFIX: '["@bot"]'
|
| 15 |
+
GROUP_NAME_WHITE_LIST: '["ChatGPT测试群", "ChatGPT测试群2"]'
|
| 16 |
+
IMAGE_CREATE_PREFIX: '["画", "看", "找"]'
|
| 17 |
+
CONVERSATION_MAX_TOKENS: 1000
|
| 18 |
+
SPEECH_RECOGNITION: 'False'
|
| 19 |
+
CHARACTER_DESC: '你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。'
|
| 20 |
+
EXPIRES_IN_SECONDS: 3600
|
| 21 |
+
USE_GLOBAL_PLUGIN_CONFIG: 'True'
|
| 22 |
+
USE_LINKAI: 'False'
|
| 23 |
+
LINKAI_API_KEY: ''
|
| 24 |
+
LINKAI_APP_CODE: ''
|
docker/entrypoint.sh
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
set -e
|
| 3 |
+
|
| 4 |
+
# build prefix
|
| 5 |
+
CHATGPT_ON_WECHAT_PREFIX=${CHATGPT_ON_WECHAT_PREFIX:-""}
|
| 6 |
+
# path to config.json
|
| 7 |
+
CHATGPT_ON_WECHAT_CONFIG_PATH=${CHATGPT_ON_WECHAT_CONFIG_PATH:-""}
|
| 8 |
+
# execution command line
|
| 9 |
+
CHATGPT_ON_WECHAT_EXEC=${CHATGPT_ON_WECHAT_EXEC:-""}
|
| 10 |
+
|
| 11 |
+
# use environment variables to pass parameters
|
| 12 |
+
# if you have not defined environment variables, set them below
|
| 13 |
+
# export OPEN_AI_API_KEY=${OPEN_AI_API_KEY:-'YOUR API KEY'}
|
| 14 |
+
# export OPEN_AI_PROXY=${OPEN_AI_PROXY:-""}
|
| 15 |
+
# export SINGLE_CHAT_PREFIX=${SINGLE_CHAT_PREFIX:-'["bot", "@bot"]'}
|
| 16 |
+
# export SINGLE_CHAT_REPLY_PREFIX=${SINGLE_CHAT_REPLY_PREFIX:-'"[bot] "'}
|
| 17 |
+
# export GROUP_CHAT_PREFIX=${GROUP_CHAT_PREFIX:-'["@bot"]'}
|
| 18 |
+
# export GROUP_NAME_WHITE_LIST=${GROUP_NAME_WHITE_LIST:-'["ChatGPT测试群", "ChatGPT测试群2"]'}
|
| 19 |
+
# export IMAGE_CREATE_PREFIX=${IMAGE_CREATE_PREFIX:-'["画", "看", "找"]'}
|
| 20 |
+
# export CONVERSATION_MAX_TOKENS=${CONVERSATION_MAX_TOKENS:-"1000"}
|
| 21 |
+
# export SPEECH_RECOGNITION=${SPEECH_RECOGNITION:-"False"}
|
| 22 |
+
# export CHARACTER_DESC=${CHARACTER_DESC:-"你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。"}
|
| 23 |
+
# export EXPIRES_IN_SECONDS=${EXPIRES_IN_SECONDS:-"3600"}
|
| 24 |
+
|
| 25 |
+
# CHATGPT_ON_WECHAT_PREFIX is empty, use /app
|
| 26 |
+
if [ "$CHATGPT_ON_WECHAT_PREFIX" == "" ] ; then
|
| 27 |
+
CHATGPT_ON_WECHAT_PREFIX=/app
|
| 28 |
+
fi
|
| 29 |
+
|
| 30 |
+
# CHATGPT_ON_WECHAT_CONFIG_PATH is empty, use '/app/config.json'
|
| 31 |
+
if [ "$CHATGPT_ON_WECHAT_CONFIG_PATH" == "" ] ; then
|
| 32 |
+
CHATGPT_ON_WECHAT_CONFIG_PATH=$CHATGPT_ON_WECHAT_PREFIX/config.json
|
| 33 |
+
fi
|
| 34 |
+
|
| 35 |
+
# CHATGPT_ON_WECHAT_EXEC is empty, use ‘python app.py’
|
| 36 |
+
if [ "$CHATGPT_ON_WECHAT_EXEC" == "" ] ; then
|
| 37 |
+
CHATGPT_ON_WECHAT_EXEC="python app.py"
|
| 38 |
+
fi
|
| 39 |
+
|
| 40 |
+
# modify content in config.json
|
| 41 |
+
# if [ "$OPEN_AI_API_KEY" == "YOUR API KEY" ] || [ "$OPEN_AI_API_KEY" == "" ]; then
|
| 42 |
+
# echo -e "\033[31m[Warning] You need to set OPEN_AI_API_KEY before running!\033[0m"
|
| 43 |
+
# fi
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
# go to prefix dir
|
| 47 |
+
cd $CHATGPT_ON_WECHAT_PREFIX
|
| 48 |
+
# excute
|
| 49 |
+
$CHATGPT_ON_WECHAT_EXEC
|
| 50 |
+
|
| 51 |
+
|