# FROM yidadaa/chatgpt-next-web:v2.12.3 #FROM yidadaa/chatgpt-next-web #ENV CUSTOM_MODELS=-all,+Creative-g4t,+Balanced-g4t,+Precise-g4t,+Creative,+Balanced,+Precise,+Creative-g4t-offline,+Balanced-g4t-offline,+Precise-g4t-offline,+Creative-offline,+Balanced-offline,+Precise-offline # 基于官方 Python 3.10 基础镜像(兼容 CoPaw 且轻量) FROM python:3.10-slim # 设置维护者信息(Hugging Face 规范) LABEL maintainer="your-name " LABEL org.opencontainers.image.source="https://github.com/agentscope-ai/CoPaw" LABEL org.opencontainers.image.description="CoPaw - 阿里通义开源个人AI智能体工作台,适配Hugging Face环境" LABEL org.opencontainers.image.licenses="Apache-2.0" ENV COPAW_DEFAULT_LLM_PROVIDER=openai ENV COPAW_DEFAULT_LLM_MODEL=qwen2.5-1.5b ENV COPAW_DEFAULT_LLM_BASE_URL=https://nagose-qw4b.hf.space/v1 ENV COPAW_DEFAULT_LLM_API_KEY=dummy # 设置环境变量(关键:指定端口、禁用缓存、中文编码、跳过交互式确认) ENV PYTHONUNBUFFERED=1 \ PORT=7860 \ HOST=0.0.0.0 \ LANG=C.UTF-8 \ COPAW_WORKING_DIR=/app/working \ COPAW_SECRETS_DIR=/app/working.secret \ # 核心:跳过安全协议交互式确认 COPAW_ACCEPT_SECURITY_NOTICE=yes \ # 配置文件路径(0.0.6版本的默认路径) COPAW_CONFIG_PATH=/app/working/config.json # 安装系统依赖(解决CoPaw运行依赖,包含jq工具用于修改JSON配置) RUN apt-get update && apt-get install -y --no-install-recommends \ gcc \ g++ \ curl \ jq \ && rm -rf /var/lib/apt/lists/* # 安装 CoPaw(PyPI 可用的最新稳定版) RUN pip install --no-cache-dir copaw==0.1.0b3 uvicorn fastapi # 创建数据目录并设置权限 RUN mkdir -p ${COPAW_WORKING_DIR} ${COPAW_SECRETS_DIR} \ && chmod -R 777 ${COPAW_WORKING_DIR} ${COPAW_SECRETS_DIR} RUN pip install 'copaw[mlx]' mlx mlx-lm RUN pip install 'copaw[ollama]' #RUN pip install 'copaw[llamacpp]' RUN pip install --upgrade copaw # 暴露 7860 端口(Hugging Face 常用端口) EXPOSE 7860 # 自动确认安全协议,非交互式初始化(0.0.6版本仅生成基础配置) RUN echo "yes" | copaw init --defaults # 1. 添加自定义模型接口(单行jq命令,避免解析错误) RUN jq '.models.myapi = {"provider":"openai","base_url":"https://msapi.joko.qzz.io/v1","api_key":"none","model_name":"gpt-3.5-turbo"}' ${COPAW_CONFIG_PATH} > ${COPAW_CONFIG_PATH}.tmp && mv ${COPAW_CONFIG_PATH}.tmp ${COPAW_CONFIG_PATH} # 2. 设置默认模型 RUN jq '.model.default = "myapi"' ${COPAW_CONFIG_PATH} > ${COPAW_CONFIG_PATH}.tmp && mv ${COPAW_CONFIG_PATH}.tmp ${COPAW_CONFIG_PATH} # 终极修复:0.0.6版本正确的启动方式(直接运行copaw主程序 + 端口环境变量) # 放弃uvicorn手动启动,改用原生方式 + 环境变量指定端口 CMD ["sh", "-c", "cd /app/working && copaw app --host 0.0.0.0 --port $PORT"]