XploreAI
Biblioteca Python e cookbook para experimentos em engenharia de AI
Estrutura do repositório
src/xploreai/ → biblioteca (publicável no PyPI)
cookbook/ → scripts e notebooks de receitas locais (ex.: langchain/)
references/ → material de estudo externo (somente leitura)
Módulos da biblioteca (src/xploreai/)
Pacotes por domínio; cada módulo segue o prefixo xai_ (Xplore AI).
| Pacote | Arquivo | Responsabilidade |
|---|---|---|
environment |
xai_localhost.py |
Estrutura de pastas para runs locais |
log |
xai_log.py |
Logging estruturado e perfil de ambiente em execuções |
utils |
xai_environment.py |
Localizar a raiz do projeto (pyproject.toml) |
utils |
xai_memory.py |
Conversão e utilitários de memória (unidades binárias) |
Configuração do ambiente
Este projeto usa uv para ambientes e dependências.
Não use requirements.txt na raiz nem pip install — tudo fica em pyproject.toml + uv.lock.
1. Instalar uv
curl -LsSf https://astral.sh/uv/install.sh | sh
2. Inicializar ambiente do projeto
Na raiz do repositório (onde está o pyproject.toml):
uv sync --all-groups
O uv sync cria .venv/, instala dependências fixadas em uv.lock e registra xploreai em modo editável a partir de src/xploreai/.
Para criar um projeto Python novo com uv (fora deste repo):
uv init --python 3.12
uv add pandas # exemplo: adiciona dependencia e atualiza pyproject.toml + uv.lock
uv sync
3. Notebooks sem output no Git (nbstripout)
Este repo nao usa o pacote pre-commit para notebooks. A limpeza e feita pelo filtro Git do nbstripout (ja dependencia em pyproject.toml).
Uma vez por clone (depois de uv sync), na raiz do repo:
uv run nbstripout --install --attributes .gitattributes
Isso registra o filtro em .git/config e versiona regras em .gitattributes (*.ipynb filter=nbstripout). No git add, outputs sao removidos do que entra no indice; no working tree voce pode continuar executando o notebook normalmente.
Conferir se esta ativo:
uv run nbstripout --is-installed
uv run nbstripout --status
Se recriar o .venv ou mudar o caminho do Python, reinstale o filtro:
uv run nbstripout --install --attributes .gitattributes --force
Limpar notebooks ja versionados (one-shot), se necessario:
uv run nbstripout $(git ls-files '*.ipynb')
Validar CI/local sem alterar arquivos:
uv run nbstripout --verify $(git ls-files '*.ipynb')
4. Execução
Validação do setup:
uv run xploreai
Testes:
uv run pytest
Exemplo de cookbook:
uv run python cookbook/01_langchain/prompt_template.py
Versionamento semântico (Commitizen)
Commits seguem Conventional Commits via Commitizen. A versão do pacote vive em pyproject.toml ([project].version); o cz bump atualiza essa versão, o CHANGELOG.md e cria a tag Git vX.Y.Z.
Commits e push
git add .
uv run cz commit
git push # sem publicação de nova versão
| Tipo | Quando usar | Bump |
|---|---|---|
feat |
Nova funcionalidade | minor |
fix |
Correção de bug | patch |
docs |
Documentação | — |
refactor |
Refatoração | patch |
test |
Testes | — |
chore |
Manutenção | — |
Release e publicação
uv run cz bump # bump de versão + CHANGELOG + tag
uv build # gera dist/*.whl
uv run --with xploreai --no-project -- python -c "import xploreai" # testar artefato
uv run --env-file .env --no-project -- uv publish # PyPI (token em UV_PUBLISH_TOKEN)
git push && git push --tags
Metadata
Release files for xploreai 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| xploreai-0.2.0.tar.gz | 6.2 kB | Without provenance | Details for xploreai-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| xploreai-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for xploreai-0.2.0-py3-none-any.whl |
Total release size: 14.4 kB
Release files / xploreai-0.2.0.tar.gz
| Download URL | xploreai-0.2.0.tar.gz |
|---|---|
| Size | 6.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1a72ff0efb34a1f15838f3ae4d9dfff195b688e44fd4f0158611ba72fe901523
|
|
BLAKE2b-256 checksum How to use checksums |
2d8361a45388feec88ba5cd40fd0aa8ba5d8089451ad43df9186b4d94264a0ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / xploreai-0.2.0-py3-none-any.whl
| Download URL | xploreai-0.2.0-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
26b4d8be45a7ffc9b049177d489d9227454cfc9adb77d49bf8b336d9073ed3b5
|
|
BLAKE2b-256 checksum How to use checksums |
971307897b908ab7505c76175af48022678b23721b6865ee1b4e8079a5b99d1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for xploreai 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.