Capítulo 5 — Tests, empaquetado y el ROADMAP
Commits:
d24b4bc(LICENSE),21cc6bf(ROADMAP),56ac002(Colab),8da5e72yf04af3b(ajustes)
¿Qué se construyó?
Después del sprint inicial de código, Killian dedicó unos días a la infraestructura del proyecto:
- Licencia MIT — el proyecto es open source
- ROADMAP.md — visión a futuro documentada públicamente
- Notebook de Google Colab — para que la gente lo pruebe sin instalar nada
- Ajustes menores —
MAX_CHUNKS = None(sin límite), versiones de paquete
El ROADMAP como documento vivo
# Roadmap
- [ ] Handle file deletions
- [ ] Allow you to ignore certain files or paths
- [ ] Make it work with just one file, like pointing to a single PDF.
- [ ] Put an `_.aifs` in each subdirectory
- [ ] Support multimodal — transcribe videos and audio, describe imagesLo interesante del roadmap es que cada ítem describe un problema real que el autor ya identificó al usar la herramienta. No es especulación — es una lista de "esto me molestó mientras lo usaba."
- Deletions: si borras un archivo, el índice todavía lo recuerda
- Ignore paths:
node_modules/o.git/no deberían indexarse - Single file: a veces quieres buscar en un PDF específico, no un directorio
- Sub-indexes: directorios grandes deberían tener su propio índice
Nota: el ítem de multimodal es ambicioso — transcribir audio/video, describir imágenes. Todavía no implementado en el estado final del proyecto.
Los tests reales
def test_search_this():
os.environ['AIFS_MINIMAL_PYTHON_INDEXING'] = 'false'
current_dir_path = os.path.dirname(os.path.realpath(__file__))
query = "test search"
results = search(query, path=current_dir_path)
assert results
def test_search_desktop():
os.environ['AIFS_MINIMAL_PYTHON_INDEXING'] = 'false'
desktop_path = os.path.expanduser("~/Desktop")
query = "forest gump"
results = search(query, path=desktop_path)
assert resultsEl test_search_desktop() busca "forest gump" en el escritorio. Es un test de integración real — si tienes algún archivo con contenido relacionado a Forrest Gump en tu escritorio, debería encontrarlo.
Es un test un poco personal. Killian probablemente tenía algo de Forrest Gump en su escritorio 😄
MAX_CHUNKS = None
# Antes:
MAX_CHUNKS = 300
# Después:
MAX_CHUNKS = None # More than this, and we'll just embed the filename. None to embed any # of chunks.Quitar el límite implica: "confío en que el usuario sabrá qué directorios indexar". Es una decisión de UX — menos restricciones ocultas, más control al usuario.
La estructura del paquete
aifs/
├── __init__.py # Expone `search` públicamente
├── search.py # Toda la lógica
tests/
├── __init__.py
├── test_aifs.py
pyproject.toml # Configuración Poetry
poetry.lock # Dependencias fijadas
ROADMAP.md
LICENSE # MIT
README.mdLección del capítulo
Un ROADMAP honesto vale más que mil promesas. Documenta lo que no funciona todavía, y la comunidad sabrá dónde ayudar.
Siguiente: Cap 06 — Manejo de cambios incrementales