Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
9eb3ef5
refactor: migrate agent creation to LangChain's create_agent function
vrtornisiello Mar 10, 2026
3b5d7ab
chore: update tests for streaming module
vrtornisiello Mar 10, 2026
5f62563
docs: update .env example file
vrtornisiello Mar 10, 2026
8bbd106
Merge pull request #21 from basedosdados/refactor/migrate-langchain-v1
vrtornisiello Mar 10, 2026
b7afe08
fix: remove recursion limit config
vrtornisiello Mar 10, 2026
f99aa94
Merge pull request #23 from basedosdados/fix/remove-recursion-limit
vrtornisiello Mar 10, 2026
53ef33e
fix: delete threads through the checkpointer
vrtornisiello Mar 10, 2026
3ca26e3
fix: chatbot router tests
vrtornisiello Mar 10, 2026
d45c791
Merge pull request #24 from basedosdados/fix/delete-thread
vrtornisiello Mar 10, 2026
319d17b
fix: add user id metadata to llm calls
vrtornisiello Mar 11, 2026
f36a9bf
Merge pull request #25 from basedosdados/fix/add-user-id-metadata
vrtornisiello Mar 11, 2026
ab72429
chore: remove token verification elapsed time log
vrtornisiello Mar 5, 2026
1a721e5
chore: improve API error messages
vrtornisiello Mar 5, 2026
ab789b7
chore: update tests and fixtures
vrtornisiello Mar 5, 2026
dc68fcf
Merge pull request #26 from basedosdados/chore/remove-token-verificat…
vrtornisiello Mar 11, 2026
af4051c
chore: add external network to compose override
vrtornisiello Mar 12, 2026
3d410f4
chore: add make targets for starting and stopping services
vrtornisiello Mar 12, 2026
3d0c8a1
docs: update README.md
vrtornisiello Mar 12, 2026
08a04dd
docs: update README.md
vrtornisiello Mar 12, 2026
989eb59
docs: update README.md
vrtornisiello Mar 12, 2026
fb43a7b
docs: update README.md
vrtornisiello Mar 12, 2026
b2ac0a8
Merge pull request #27 from basedosdados/chore/add-make-commands
vrtornisiello Mar 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ GOOGLE_SERVICE_ACCOUNT=/app/credentials/chatbot-sa.json
# ============================================================
MODEL_URI=google_genai:gemini-2.5-flash
MODEL_TEMPERATURE=0.2
MAX_TOKENS=524288

# ============================================================
# == LangSmith settings ==
Expand Down
10 changes: 10 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.PHONY: up up-dev down

up: # Start all services (with website api network)
docker compose up --build --watch

up-dev: # Start in dev mode (no website api network)
docker compose -f compose.yaml up --build --watch

down: # Stop all services
docker compose down
35 changes: 20 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,13 @@ cp .env.example .env
> [!IMPORTANT]
> Você precisará de uma conta de serviço com acesso ao BigQuery e à VertexAI, chamada `chatbot-sa.json` e armazenada em `${HOME}/.basedosdados/credentials`.

### 2. Modo de desenvolvimento independente
Por padrão, a API do chatbot exige um token JWT válido emitido pela API do website. Para desenvolvimento local sem depender da API do website, habilite o modo de autenticação de desenvolvedor no arquivo `.env`:
### 2. Modo de Autenticação de Desenvolvedor
Por padrão, a API do chatbot depende da API do website para autenticação e autorização de usuários. Para desenvolvimento local sem depender da API do website, habilite o modo de autenticação de desenvolvedor no arquivo `.env`:
```bash
AUTH_DEV_MODE=true
AUTH_DEV_USER_ID=uuid
```

> [!NOTE]
> O modo de autenticação de desenvolvedor só funciona quando `ENVIRONMENT=development`.
>
Expand All @@ -61,24 +62,20 @@ AUTH_DEV_USER_ID=uuid
> O modo de autenticação de desenvolvedor ignora a validação do token JWT e retorna o ID definido por `AUTH_DEV_USER_ID` para todas as requisições. **Nunca habilite em produção.**

### 3. Executando a API
**Com o [Compose Watch](https://docs.docker.com/compose/how-tos/file-watch/) (recomendado):**
Os comandos abaixo executam a API do chatbot sem dependências externas. O modo de autenticação de desenvolvedor deve estar ativado para ignorar a autenticação e autorização de usuários.

**Com o [Make](https://www.gnu.org/software/make/):**
```bash
docker compose up --watch
make up-dev
```

**Manualmente com o uv:**
**Com o [Compose Watch](https://docs.docker.com/compose/how-tos/file-watch/):**
```bash
uv run alembic upgrade head
uv run fastapi dev --host 0.0.0.0 app/main.py
docker compose -f compose.yaml up --build --watch
```
> [!NOTE]
> Caso opte por executar a API manualmente, você precisará configurar uma instância do PostgreSQL ou executar o serviço `database` do compose file com `docker compose up database`.
> Em ambos os casos,<br>ajuste as variáveis `DB_*` no `.env` conforme necessário para conectar-se ao banco.
>
> Além disso, aponte a variável `GOOGLE_SERVICE_ACCOUNT` para o caminho local da conta de serviço.

## Executando a Aplicação Completa (Full Stack)
Para testar a integração completa com o frontend e a API do website, siga as instruções abaixo.
Para executar a integração completa com o frontend e a API do website, siga as instruções abaixo.

### 1. Configuração da API do website
Clone o repositório do [backend](https://github.com/basedosdados/backend):
Expand Down Expand Up @@ -110,9 +107,14 @@ JWT_SECRET_KEY=jwt-secret-key
> | `JWT_ALGORITHM` | `DJANGO_JWT_ALGORITHM` |
> | `JWT_SECRET_KEY` | `DJANGO_SECRET_KEY` |

Execute a API do chatbot:
Execute a API do chatbot com o Make:
```bash
docker compose up --watch
make up
```

Ou com o Compose Watch:
```bash
docker compose up --build --watch
```

### 3. Configuração do frontend
Expand All @@ -123,3 +125,6 @@ cd chatbot-frontend
```

Configure e execute de acordo com as [instruções do repositório](https://github.com/basedosdados/chatbot-frontend?tab=readme-ov-file#interface-do-chatbot-da-bd-feita-com-streamlit).

> [!TIP]
> Você também pode executar a aplicação full stack com o modo de autenticação de desenvolvedor ativo. Isso pode ser útil caso você deseje apontar a variável `BASEDOSDADOS_BASE_URL` para a api do website de produção. Porém, a autenticação e autorização de requisições à API do chatbot serão ignoradas nesse caso.
3 changes: 0 additions & 3 deletions app/agent/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
from .react_agent import ReActAgent

__all__ = ["ReActAgent"]
29 changes: 0 additions & 29 deletions app/agent/hooks.py

This file was deleted.

Loading
Loading