MODULO 4.2

๐Ÿ“ Estrutura do Projeto

Organizacao de pastas, arquivos principais e configuracoes do NotebookLMX.

6
Topicos
~35
Minutos
Avanc.
Nivel
Pratico
Tipo
1

๐Ÿ“ Organizacao de pastas

A estrutura segue padroes de projetos Python modernos com separacao clara de responsabilidades.

notebooklmx/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ main.py              # Entry point FastAPI
โ”‚   โ”œโ”€โ”€ config.py            # Configuracoes
โ”‚   โ”œโ”€โ”€ database.py          # SQLite setup
โ”‚   โ”œโ”€โ”€ routers/             # Endpoints
โ”‚   โ”‚   โ”œโ”€โ”€ notebooks.py
โ”‚   โ”‚   โ”œโ”€โ”€ sources.py
โ”‚   โ”‚   โ””โ”€โ”€ chat.py
โ”‚   โ”œโ”€โ”€ services/            # Logica de negocio
โ”‚   โ”‚   โ”œโ”€โ”€ pipeline.py      # Pipeline Universal
โ”‚   โ”‚   โ””โ”€โ”€ persona_utils.py # Governanca Cognitiva
โ”‚   โ”œโ”€โ”€ generators/          # Geradores de artefatos
โ”‚   โ”‚   โ”œโ”€โ”€ docx_gen.py
โ”‚   โ”‚   โ”œโ”€โ”€ audio_gen.py
โ”‚   โ”‚   โ””โ”€โ”€ video_gen.py
โ”‚   โ””โ”€โ”€ models/              # Schemas Pydantic
โ”œโ”€โ”€ static/                  # Frontend
โ”œโ”€โ”€ tests/
โ”œโ”€โ”€ .env.example
โ”œโ”€โ”€ requirements.txt
โ””โ”€โ”€ README.md
2

๐Ÿ“‹ Principais arquivos

main.py

Inicializacao FastAPI, CORS, routers, lifespan events

pipeline.py

Implementacao dos 9 passos do Pipeline Universal

persona_utils.py

Sistema de personas e preferencias

database.py

Conexao SQLite, modelos, queries de auditoria

3

๐Ÿ”ง Configuracoes

Variaveis de ambiente e configuracoes do sistema.

# .env
GEMINI_API_KEY=your_api_key
DATABASE_URL=sqlite:///./notebooklmx.db
LOG_LEVEL=INFO
MAX_TOKENS=8192
DEFAULT_PERSONA=professional
ENABLE_COST_TRACKING=true
STORAGE_PATH=./storage
4

๐Ÿ“Š Dependencias

# requirements.txt
fastapi==0.109.0
uvicorn==0.27.0
google-generativeai==0.3.2
python-dotenv==1.0.0
pydantic==2.5.3
python-multipart==0.0.6
python-docx==1.1.0
gtts==2.5.0
moviepy==1.0.3
aiosqlite==0.19.0
structlog==24.1.0
5

๐Ÿš€ Setup e instalacao

Passos para rodar

# 1. Clone o repositorio
git clone https://github.com/example/notebooklmx.git
cd notebooklmx

# 2. Crie ambiente virtual
python -m venv venv
source venv/bin/activate  # Linux/Mac
# ou: venv\Scripts\activate  # Windows

# 3. Instale dependencias
pip install -r requirements.txt

# 4. Configure variaveis
cp .env.example .env
# Edite .env com sua GEMINI_API_KEY

# 5. Execute
uvicorn app.main:app --reload

# Acesse: http://localhost:8000
6

๐Ÿงช Ambiente de desenvolvimento

Ferramentas Recomendadas

  • โ€ขVSCode + Python extension
  • โ€ขBlack - formatacao
  • โ€ขRuff - linting rapido
  • โ€ขpytest - testes

Hot Reload

# Desenvolvimento com auto-reload
uvicorn app.main:app \
  --reload \
  --reload-dir app \
  --host 0.0.0.0 \
  --port 8000

๐Ÿ“ Resumo do Modulo

โœ“Estrutura - Organizacao clara por responsabilidade
โœ“Configuracao - Variaveis de ambiente para flexibilidade
โœ“Dependencias - Stack minimo e focado
โœ“Setup - Ambiente pronto em minutos