Assistente de pesquisa que integra Google Drive, buscas acadêmicas e IA Gemini.
Project description
Bibliotecário Pedro Cão
Assistente de pesquisa que integra sua biblioteca do Google Drive com buscas acadêmicas e IA Gemini.
Requisitos
- Python 3.10+
- Conta Google para OAuth (Drive)
- Chaves de API: WorldCat (opcional), Gemini
Configuração
- Copie
.env.examplepara.enve preencha:GOOGLE_DRIVE_FOLDER_IDWORLDCAT_API_KEY(opcional)GEMINI_API_KEYGEMINI_MODEL(opcional, padrão: gemini-2.5-flash)LOG_LEVEL(opcional, padrão: INFO)LOG_JSON(opcional, padrão: false)
- Coloque
credentials.json(OAuth do Google) na raiz do projeto OU no caminho seguro por plataforma:- Windows:
%APPDATA%\PedroCao\credentials.json - macOS:
~/Library/Application Support/PedroCao/credentials.json - Linux:
~/.config/pedrocao/credentials.json
- Windows:
- Primeiro run criará
token.json. Por padrão será salvo no caminho seguro por plataforma (acima). Setoken.jsonexistir na raiz, será usado.
Execução (Windows)
Use o executável de conveniência:
Executar_Pedro_Cao.bat
Ou manualmente:
python -m venv .venv
.venv\\Scripts\\activate
python -m pip install -r requirements.txt
python main.py
No script .bat, se requirements.lock existir, será usado como constraints automaticamente.
Opções de menu úteis
- 5: Ver Configuração de Rede (timeout/retries/backoff atuais)
- 6: Verificar/Mover Credenciais para local seguro (ajuda a tirar
credentials.json/token.jsonda raiz)
Modo não-interativo (CLI)
python main.py --drive-search "minha busca"
python main.py --worldcat "história de portugal"
python main.py --ask "Quem foi Camilo Castelo Branco?"
python main.py --solve "Explique o conceito de metadados"
python main.py --debug-config
python main.py --move-credentials
MCP Server (Model Context Protocol)
Este projeto inclui um servidor MCP via stdio para expor as ferramentas do Bibliotecário.
Executar o servidor MCP
python mcp_server.py
Ou usando o entrypoint:
pedro-cao-mcp
Ferramentas MCP disponíveis
search_drive(query, limit)search_worldcat(query)search_web(query)search_academic(query)ask_pedro_cao(question, context)debug_config()credentials_status()
Cliente MCP (Claude Desktop)
Existe um exemplo de configuração para Claude Desktop em mcp/claude_desktop_config.json. Atualize os caminhos do Python e do arquivo do servidor MCP conforme sua máquina e copie o conteúdo para o arquivo de configuração do cliente.
Organização de arquivos misturados
Se você adicionou pastas/arquivos de outro projeto por engano, use o script de organização para mover itens não essenciais para misc/:
./organize.ps1
Ele lista o que não pertence ao núcleo do projeto e pergunta se deseja mover.
Segurança
- NUNCA faça commit de
.env,credentials.jsonoutoken.json. - Rode o
test_gemini.pysem imprimir a chave. - Em caso de vazamento, ROTACIONE as credenciais:
- Regenerar
client_secrete revogarrefresh_tokenno Google Cloud Console. - Gerar nova
GEMINI_API_KEY.
- Regenerar
- Veja o guia detalhado em SECURITY_ROTATION.md.
Dependências
Veja requirements.txt (versões fixadas). Para garantir sub-dependências no deploy, use o constraints:
pip install -r requirements.txt -c requirements.lock
Observações
- Escopos de Drive são somente leitura.
- Chamadas HTTP têm
timeout=10para evitar travamentos. - Veja a descrição detalhada em ARCHITECTURE.md.
Cache e Rate Limiting (opcional)
Configure no .env:
CACHE_TTL_SECONDS=3600
RATE_LIMIT_SECONDS=0
Contribuição
Veja as diretrizes em CONTRIBUTING.md e o Plano de Implementação para tarefas e prioridades.
Dev Quickstart
# Windows PowerShell
./dev.ps1 -Install -Test
# Manual
python -m venv .venv
.venv\\Scripts\\activate
pip install -r requirements.txt -c requirements.lock
pip install -r requirements-dev.txt
pytest -q
Distribuição (build e publicação)
- Instale dependências de build:
pip install -r requirements-dev.txt
- Gere os artefatos:
python -m build
- Verifique os pacotes:
twine check dist/*
- Publicação (se aplicável):
twine upload dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bibliotecario_pedro_cao-0.1.0.tar.gz.
File metadata
- Download URL: bibliotecario_pedro_cao-0.1.0.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03a8166cdd80ccdbfdd85d22481181a6d668aa48f79d0372539ae807d88b8b55
|
|
| MD5 |
0ef414787f2a173fa10851077a081603
|
|
| BLAKE2b-256 |
77369cc5e230eb75b13536c80607db7ba0e9dd5e5c473637be321ed6a89c3a64
|
File details
Details for the file bibliotecario_pedro_cao-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bibliotecario_pedro_cao-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
706c18ea787d4e68177e77b6c6042699b02b84d87ca368b793de7f6bce68f7d6
|
|
| MD5 |
ef128878b0bbb6815edba0e0943dab5d
|
|
| BLAKE2b-256 |
b83d78f6e7026a419ace9f14211cd2aa359629b5217d4611bf4b41ecff713b50
|