File size: 4,432 Bytes
60c2f18 9201b00 594536a eae7567 2839144 eae7567 2839144 58cec34 2839144 58cec34 594536a f3cfd91 2839144 58cec34 60c2f18 87337b1 c8259c0 87337b1 c8259c0 87337b1 c8259c0 9f18430 86f3bf2 3c7d3b0 9f18430 60c2f18 9f18430 8c8541b f3cfd91 9710cde 9f18430 594536a 86f3bf2 9710cde 57b5794 9f18430 d377d95 86f3bf2 9f18430 f3cfd91 594536a 9710cde 44a0185 9710cde 44a0185 9710cde 44a0185 9710cde bd61329 9710cde 3c7d3b0 9710cde 9f18430 594536a db0df50 60c2f18 3da93f6 9f18430 |
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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
FROM ubuntu:22.04
# Принудительное обновление для HuggingFace, чтобы использовать правильную версию Dockerfile
# Установка необходимых пакетов
RUN apt-get clean && apt-get update && apt-get install -y --no-install-recommends \
libasound2 \
libgstreamer1.0-dev \
libunwind-dev \
libc++1 \
libssl-dev \
python3 \
python3-venv \
python3-pip \
python3-dev \
curl \
wget \
unzip \
git \
build-essential \
jq \
vim \
ca-certificates \
&& apt-get clean && rm -rf /var/lib/apt/lists/* && rm -rf /tmp/*
# Установка Go 1.21
RUN wget https://golang.org/dl/go1.21.0.linux-amd64.tar.gz && \
tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz && \
rm go1.21.0.linux-amd64.tar.gz
ENV PATH=$PATH:/usr/local/go/bin
ENV GOPATH=/go
ENV PATH=$PATH:$GOPATH/bin
# Создаем каталог для кэша Go и устанавливаем правильные разрешения
RUN mkdir -p /go && chmod 777 /go
# Установка Node.js и pnpm
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install -y nodejs && \
npm install -g pnpm
# Устанавливаем рабочую директорию
WORKDIR /app
# Клонируем репозиторий TEN-Agent
RUN git clone --depth 1 https://github.com/TEN-framework/TEN-Agent.git /app && \
echo "Доступные ветки и теги:" && \
git branch -a && \
git tag -l
# Устанавливаем task для сборки
RUN go install github.com/go-task/task/v3/cmd/task@latest
# Создаем необходимые директории и устанавливаем права
RUN mkdir -p /app/server/bin && \
mkdir -p /app/agents && \
mkdir -p /tmp/ten_agent && \
mkdir -p /app/.pnpm-store
# Копируем .env файл
COPY .env /app/.env
# Компилируем сервер
RUN cd /app/server && \
go mod tidy && \
go mod download && \
go build -o bin/api main.go && \
chmod +x bin/api
# Установка зависимостей для Playground UI
ENV PNPM_HOME="/app/.pnpm-store"
ENV PATH="$PNPM_HOME:$PATH"
RUN cd /app/playground && \
pnpm install
# Подготавливаем пример агента для работы Select Graph
RUN cd /app && \
mkdir -p agents/examples && \
mkdir -p agents/examples/default && \
mkdir -p agents/examples/demo && \
mkdir -p agents/examples/experimental
# Копируем примеры из репозитория
RUN cd /app && \
cp -r agents/examples/default agents/ && \
cp -r agents/examples/demo agents/ && \
cp -r agents/examples/experimental agents/
# Создаем базовый manifest.json
RUN echo '{\n\
"name": "default",\n\
"agents": [\n\
{\n\
"name": "voice_agent",\n\
"description": "A simple voice agent"\n\
},\n\
{\n\
"name": "chat_agent",\n\
"description": "A text chat agent"\n\
}\n\
]\n\
}' > /app/agents/manifest.json
# Создаем базовый property.json
RUN echo '{\n\
"name": "TEN Agent Example",\n\
"version": "0.0.1",\n\
"extensions": ["openai_chatgpt"],\n\
"description": "A basic voice agent with OpenAI",\n\
"graphs": [\n\
{\n\
"name": "Voice Agent",\n\
"description": "Basic voice agent with OpenAI",\n\
"file": "voice_agent.json"\n\
},\n\
{\n\
"name": "Chat Agent",\n\
"description": "Simple chat agent",\n\
"file": "chat_agent.json"\n\
}\n\
]\n\
}' > /app/agents/property.json
# Создаем простые примеры графов
RUN echo '{\n\
"nodes": [],\n\
"edges": [],\n\
"groups": [],\n\
"templates": [],\n\
"root": null\n\
}' > /app/agents/voice_agent.json
RUN echo '{\n\
"nodes": [],\n\
"edges": [],\n\
"groups": [],\n\
"templates": [],\n\
"root": null\n\
}' > /app/agents/chat_agent.json
# Устанавливаем правильные права доступа для всех файлов
RUN chmod -R 777 /app
# Настраиваем стартовый скрипт
COPY app.py /app/app.py
RUN chmod +x /app/app.py
# Открываем порты
EXPOSE 7860 8080 3000
# Запускаем API сервер и Playground в dev-режиме
ENTRYPOINT ["python3", "/app/app.py"]
|