diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e19d0dd --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# 使用官方的 Python 基础镜像 +# 推荐使用特定版本,例如 python:3.9-slim-buster,更小更安全 +FROM python:3.12-bookworm + +# 设置工作目录,后续所有命令都将在此目录下执行 +WORKDIR /app + +# 将 requirements.txt 复制到工作目录,并安装 Python 依赖 +# 这一步单独进行,利用 Docker 缓存机制,如果依赖不变,则不需要重新安装 +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +# 将所有应用代码复制到容器中 +COPY . . + +# 暴露 Flask 应用监听的端口 +# 注意:EXPOSE 只是声明端口,不会实际发布端口,需要在运行容器时进行端口映射 +EXPOSE 5000 + +# 定义容器启动时执行的命令 +# 这里使用 Gunicorn 作为生产级的 WSGI 服务器,而不是 Flask 内置的开发服务器 +# 你需要先在 requirements.txt 中添加 gunicorn +# CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "app:app"] +# 如果只是测试或简单应用,也可以直接用 Flask 开发服务器 +CMD ["python", "main.py"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..4ed80a8 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,22 @@ +services: + web: + build: ./ # 指定 Dockerfile 的构建上下文路径 + ports: + - "181:5000" # 端口映射:主机端口:容器端口 + volumes: + - ./:/app # 挂载本地代码到容器,方便开发时修改代码立即生效 + environment: # 环境变量,例如 Flask 的开发模式 + FLASK_ENV: development + # depends_on: # 如果有其他服务,例如数据库,可以添加依赖 + # - db + # db: + # image: postgres:13-alpine + # environment: + # POSTGRES_DB: mydatabase + # POSTGRES_USER: user + # POSTGRES_PASSWORD: password + # volumes: + # - db_data:/var/lib/postgresql/data + +# volumes: # 如果有持久化数据需求,例如数据库数据 +# db_data: \ No newline at end of file diff --git a/main.py b/main.py index e0483a1..25ce6de 100644 --- a/main.py +++ b/main.py @@ -556,6 +556,8 @@ def chat_completions(): # # 根据剩余缓冲区大小计算延迟 # delay = calculate_delay(len(output_buffer)) # time.sleep(delay) + if current_answer == "\n\n": + current_answer = "" yield send_char(current_answer, message_id) # 立即继续处理下一个请求