- Add VISION_MODEL and VISION_PROVIDER env options with openrouter default and provider auto-detection from the model id - Add /veriavision, /configiavision and /about commands - Support natural-language editing of files inside workspace/ and a /baixar command to download them - Replace config-based timezone with system-local time detection - Add module version/author/license metadata - Document development conventions in new RULES.md and update README.md/DEPLOY.md with the new commands and env vars
5.8 KiB
PsAgentAI - Deploy em Servidor
Deploy como serviço systemd em Debian/Ubuntu para funcionar 24/7 em VPS.
Pré-requisitos no servidor
sudo apt update
sudo apt install -y python3 python3-venv python3-pip git ffmpeg
Habilite o journal se quiser logs persistentes (opcional):
sudo apt install -y systemd-journal-remote
1) Copie o projeto para o servidor
Use git ou scp/rsync. Exemplo com git:
cd /opt
sudo git clone <URL_DO_REPOSITORIO> psagentai
sudo chown -R $USER:$USER /opt/psagentai
cd /opt/psagentai/app
Ajuste o caminho no serviço systemd para o diretório real:
nano psagentai.service
# altere /home/marco/PsAgentAI/app para /opt/psagentai/app
O serviço usa
User=marcopor padrão. Crie o usuário se não existir:sudo useradd -m -s /bin/bash marco || true sudo usermod -aG sudo marcoOu edite
User=no.servicepara o usuário existente do seu VPS.
2) Configure o .env
cp .env.example .env # se existir exemplo
nano .env
Preencha obrigatoriamente:
TELEGRAM_BOT_TOKENTELEGRAM_CHAT_IDAI_PROVIDER(openrouter,stepfun,qwencloudoullamacpp)DEFAULT_MODEL- pelo menos a chave de IA correspondente ao provider escolhido
Ajuste opcionalmente:
MIN_INTERVAL_MINUTES/MAX_INTERVAL_MINUTESMIN_MESSAGE_LINES
Importante: no Telegram, envie
/startuma vez para o bot antes de ligar o serviço, caso contrário ele não conseguirá enviar mensagens iniciantes.
3) Instale as dependências
sudo apt install -y ffmpeg
```bash
chmod +x iniciar.sh
./iniciar.sh
Esse script cria o venv, instala dependências e valida as variáveis do .env.
Se o comando acima não instalar ffmpeg na versão esperada, use também:
sudo apt install -y ffmpeg
O reconhecimento de voz usa
SpeechRecognition+pydub+ffmpeg.
4) Instale o serviço systemd
# caminho absoluto no seu servidor
sudo nano /etc/systemd/system/psagentai.service
Conteúdo mínimo:
[Unit]
Description=PsAgentAI
After=network.target
[Service]
Type=simple
User=marco
WorkingDirectory=/opt/psagentai/app
Environment="PATH=/opt/psagentai/app/venv/bin:/usr/local/bin:/usr/bin:/bin"
ExecStart=/opt/psagentai/app/venv/bin/python3 /opt/psagentai/app/psagentai_agent.py
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Ative e inicie:
sudo systemctl daemon-reload
sudo systemctl enable psagentai
sudo systemctl start psagentai
5) Comandos úteis
# status
sudo systemctl status psagentai
# logs em tempo real
sudo journalctl -u psagentai -f
# reiniciar após atualização
sudo systemctl restart psagentai
# parar
sudo systemctl stop psagentai
6) Atualizações futuras
cd /opt/psagentai/app
git pull
./iniciar.sh
sudo systemctl restart psagentai
7) Múltiplos usuários / VPSs
Cada instância do sistema é independente por chat ID do Telegram.
Para cada novo usuário/VPS:
- Crie o bot via @BotFather (
/newbot) e pegue o token. - Copie o projeto em um diretório separado, por exemplo
/opt/psagentai-user2. - Crie um
.envpróprio comTELEGRAM_BOT_TOKEN,TELEGRAM_CHAT_IDe suas chaves de IA. - Instale dependências com
./iniciar.sh. - Crie um serviço systemd separado, ex:
psagentai-user2.service, apontando para esse diretório. - Habilite e inicie.
Nomes recomendados para evitar conflito:
/opt/psagentai-user1/,/opt/psagentai-user2/psagentai-user1.service,psagentai-user2.service
8) Variáveis do .env
| Variável | Obrigatória | Descrição |
|---|---|---|
AI_PROVIDER |
não | Provider preferencial: openrouter, stepfun, qwencloud ou llamacpp |
TELEGRAM_BOT_TOKEN |
sim | Token do bot do Telegram |
TELEGRAM_CHAT_ID |
sim | Chat ID do usuário |
DEFAULT_MODEL |
sim | Modelo de IA padrão |
OPENROUTER_API_KEY |
1 das chaves | Chave OpenRouter |
STEPFUN_API_KEY |
1 das chaves | Chave StepFun |
QWENCLOUD_API_KEY |
1 das chaves | Chave QwenCloud |
MIN_INTERVAL_MINUTES |
não | Intervalo mínimo para mensagens proativas |
MAX_INTERVAL_MINUTES |
não | Intervalo máximo para mensagens proativas |
MIN_MESSAGE_LINES |
não | Mínimo de linhas por mensagem do agente |
AUTO_ENRICH_EVERY |
não | Enriquece perfil a cada N mensagens |
AUTO_IMPROVE_EVERY |
não | Melhoria automática a cada N mensagens |
UPLOAD_CONTEXT_MAX_CHARS |
não | Limite de caracteres do upload enviado para a IA (0 = sem limite) |
VISION_MODEL |
não | Modelo de IA para análise de imagens |
VISION_PROVIDER |
não | Provider do modelo de visão (openrouter, stepfun, qwencloud) |
Comandos úteis via Telegram
/veria— mostra o provider e o modelo de IA atuais/configia— configura interativamente o provider e o modelo de IA/veriavision— mostra o provider e o modelo de visão atuais/configiavision— configura interativamente o modelo de visão/about— exibe informações do sistema, versão, autor e licença
9) Backups importantes
Faça backup regular dos arquivos de dados dentro de /app:
user_profile.jsonagent_profile.jsonsystem_improvements.jsonuploads_metadata.json- pasta
contexts/ - pasta
workspace/
Exemplo simples de backup diário:
tar czf /root/backups/psagentai-$(date +%F).tar.gz -C /opt/psagentai/app user_profile.json agent_profile.json system_improvements.json uploads_metadata.json contexts workspace
10) Segurança
- Nunca comite o
.envno repositório. - Restrinja permissões:
chmod 600 .env. - Use um usuário exclusivo para cada instância do serviço.
- Para maior isolamento, execute cada instância em um container Docker separado ou em VMs distintas.