From 869d8053f84232c2a17a69a48023612f62a25e97 Mon Sep 17 00:00:00 2001 From: "william.dias" Date: Fri, 23 Jan 2026 13:27:27 -0300 Subject: [PATCH] refactor: Update server port configuration to use environment variable for flexibility --- README.md | 27 +++++++++++++-------------- docs/proposta-arquitetura-agno.md | 4 +++- src/sql_optimizer_team/team_app.py | 3 ++- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index cfbeb3d..6b16871 100644 --- a/README.md +++ b/README.md @@ -26,29 +26,28 @@ src/ 1) Crie o ambiente e instale dependências: - `pip install -r requirements.txt` 2) Configure variáveis de ambiente (exemplo em `sample.env` ou `.env`). -3) Execute o servidor: - - `./scripts/start.sh` +3) Execute o servidor (UI + backend): + - `./scripts/start.sh` Acesse: -- `http://localhost:8204/docs` (Swagger UI) -- `http://localhost:8204` (informações básicas da API) +- `http://localhost:7777/docs` (Swagger UI) +- `http://localhost:7777` (informações básicas da API) ## UI local (Agent UI) -Use o **Agent UI** (agno-agi/agent-ui) como front local: +Use o **Agent UI** (agno-agi/agent-ui) como front local. -1) Instale com o script oficial: +- O `./scripts/start.sh` já faz tudo automaticamente: clona o Agent UI em `../agent-ui`, instala dependências e inicia a UI. +- Abra `http://localhost:3000` (o endpoint padrão já é `http://localhost:7777`). +- Para trocar a porta do backend, use `SQL_OPT_TEAM_PORT` e ajuste o endpoint na UI. -- `npx create-agent-ui@latest` +Manual (se quiser rodar a UI separadamente): -1) Inicie a UI: +1) `npx create-agent-ui@latest` +2) `pnpm dev` -- `pnpm dev` - -1) Abra `http://localhost:3000` e ajuste o endpoint para `http://localhost:8204`. - -Opcional: se o AgentOS usar autenticação, configure `OS_SECURITY_KEY` conforme o README do Agent UI. +Opcional: se o AgentOS usar autenticação, configure `NEXT_PUBLIC_OS_SECURITY_KEY` na UI (conforme README do Agent UI). ## Fluxo do time @@ -77,5 +76,5 @@ Opcional: se o AgentOS usar autenticação, configure `OS_SECURITY_KEY` conforme ## Observações -- Use o provedor configurado em `.env` (ex.: Ollama local, OpenAI, Gemini, Groq, etc.). +- Use o provedor configurado em `.env` (ex.: OpenAI, Gemini, Groq, Mistral ou Ollama local). - O time é colaborativo e mantém histórico em SQLite (configurável via env). diff --git a/docs/proposta-arquitetura-agno.md b/docs/proposta-arquitetura-agno.md index a98270b..306886f 100644 --- a/docs/proposta-arquitetura-agno.md +++ b/docs/proposta-arquitetura-agno.md @@ -99,6 +99,7 @@ Detalhamento das vantagens (foco executivo): ## 6) Arquitetura proposta (Agno-first) - **Orquestração Agno**: times e agentes especializados, com histórico e memória controlada. +- **Interface local**: Agent UI (agno-agi/agent-ui) consumindo o AgentOS local. - **Core de negócio exposto como ferramentas**: casos de uso (ex: otimizar, explicar, comparar) invocados via tools. - **Módulos únicos sob sql_optimizer_team**: todos os componentes centralizados no mesmo namespace. - **Integrações corporativas**: bancos, repositórios de conhecimento, logs e custos. @@ -163,7 +164,8 @@ Status no POC: ## 10) Stack definitiva (100% Agno) - **Agno** como framework único para orquestração, memória e tools. -- **AgentOS** como runtime padrão para exposição de APIs e execução do time. +- **AgentOS** como runtime padrão para exposição de APIs e execução do time (porta padrão `7777`, configurável via `SQL_OPT_TEAM_PORT`). +- **Agent UI** como interface local (porta padrão `3000`). - **Observabilidade** acoplada desde o início (OpenTelemetry + Langfuse/Phoenix). - **Escala com controle**: custos e resultados visíveis para a diretoria em dashboards executivos. diff --git a/src/sql_optimizer_team/team_app.py b/src/sql_optimizer_team/team_app.py index 94c9ece..4f1e2df 100644 --- a/src/sql_optimizer_team/team_app.py +++ b/src/sql_optimizer_team/team_app.py @@ -91,4 +91,5 @@ app = agent_os.get_app() if __name__ == "__main__": - agent_os.serve("sql_optimizer_team.team_app:app", port=8204, reload=True) + _port = int(os.getenv("SQL_OPT_TEAM_PORT", "7777")) + agent_os.serve("sql_optimizer_team.team_app:app", port=_port, reload=True)