Closed minquejoe closed 1 year ago
补充:
# FROM python:slim or python:alpine 以精简镜像,但需要额外下载依赖
FROM python:3.11.2
# for tiktoken
COPY tiktoken-0.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl /temp/tiktoken-0.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
RUN pip install /temp/tiktoken-0.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
# 使用清华源以提高下载速度
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
ENV LANG="C.UTF-8" \
TZ="Asia/Shanghai" \
REPO_URL="https://ghproxy.com/https://github.com/circlestarzero/EX-chatGPT.git" \
WORKDIR="/app" \
AUTO_UPDATE="true"
WORKDIR ${WORKDIR}
RUN git clone -b main ${REPO_URL} ${WORKDIR} --depth=1 --recurse-submodule \
&& chmod +x ${WORKDIR}/chatGPTEx/entrypoint.sh \
&& sed -i 's/app.run(host="127\.0\.0\.1",port=1234)/#app.run(host="127\.0\.0\.1",port=1234)/g; s/# app.run(host="0\.0\.0\.0", port = 5000)/app.run(host="0\.0\.0\.0", port = 5000)/g' ${WORKDIR}/chatGPTEx/main.py \
&& sed -i "s#program_dir+'/apikey.ini'#'/config/apikey.ini'#g" /app/chatGPTEx/main.py \
&& sed -i "s#program_dir+'/apikey.ini'#'/config/apikey.ini'#g" /app/chatGPTEx/search.py \
&& sed -i "s#os\.path\.join(program_dir, 'apikey.ini')#'/config/apikey.ini'#g" /app/chatGPTEx/search.py \
&& mkdir /config
EXPOSE 5000
VOLUME ["/config"]
ENTRYPOINT ["/app/chatGPTEx/entrypoint.sh"]
docker-compose.yml如下:
version: '3'
services:
exchatgpt:
build:
context: .
dockerfile: Dockerfile
image: exchatgpt
volumes:
- /home/orangepi/EXchatGPT/config:/config # 冒号左边请修改为你想保存配置的路径
container_name: exchatgpt
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "1024m"
max-file: "3"
ports:
- "5000:5000"
# TODO: 添加环境变量以直接启动
environment:
- "GOOGLE_API_KEY0=XXX"
- "SEARCH_ENGINE_ID0=XXX"
- "key0=XXX"
- "WOLFRAMALPHA_APP_ID0=XXX"
- "API_PROXY=https://api.openai.com/v1/chat/completions"
- "AZURE_SUBSCRIPTIONKEY="
- "AZURE_REGION="
- "AUTO_UPDATE=true"
代理问题,不一定非大陆和香港地区的代理就必然可行。
Debugging middleware caught exception in streamed response at a point where response headers were already sent.
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 670, in urlopen
File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 381, in _make_request
File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 978, in _validate_conn
File "/usr/local/lib/python3.11/site-packages/urllib3/connection.py", line 362, in connect
File "/usr/local/lib/python3.11/site-packages/urllib3/util/ssl_.py", line 386, in ssl_wrap_socket
File "/usr/local/lib/python3.11/ssl.py", line 517, in wrap_socket
File "/usr/local/lib/python3.11/ssl.py", line 1075, in _create
File "/usr/local/lib/python3.11/ssl.py", line 1346, in do_handshake
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:992)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/requests/adapters.py", line 439, in send
File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 726, in urlopen
File "/usr/local/lib/python3.11/site-packages/urllib3/util/retry.py", line 446, in increment
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/chat/completions (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:992)')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/chatGPTEx/search.py", line 93, in web
File "/app/chatGPTEx/search.py", line 153, in directQuery
File "/app/chatGPTEx/optimizeOpenAI.py", line 206, in ask
File "/app/chatGPTEx/optimizeOpenAI.py", line 160, in ask_stream
File "/usr/local/lib/python3.11/site-packages/requests/sessions.py", line 590, in post
File "/usr/local/lib/python3.11/site-packages/requests/sessions.py", line 542, in request
File "/usr/local/lib/python3.11/site-packages/requests/sessions.py", line 655, in send
File "/usr/local/lib/python3.11/site-packages/requests/adapters.py", line 514, in send
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/chat/completions (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:992)')))
192.168.1.109 - - [18/Mar/2023 18:30:45] "GET /api/query?mode=web&uuid=default&prompt=&msg=hi HTTP/1.1" 200 -