File size: 2,931 Bytes
4696bb6
8746713
c0c0513
8746713
 
 
 
 
 
 
 
 
 
 
ef427dd
 
 
 
 
6373845
8746713
 
 
 
 
6373845
 
 
 
 
8746713
e5c5a62
8746713
 
 
 
e5c5a62
8746713
 
6373845
94d08b8
8746713
 
 
 
 
f4f47ef
a8f688e
8aac85c
d190c15
 
f4f47ef
8746713
 
 
028b576
2fa3b15
8746713
4518743
68f5698
 
 
 
8746713
028b576
 
6b10267
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# 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 <your-email@example.com>"
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"]