Skip to content

Capítulo 5 — Tests, empaquetado y el ROADMAP

Commits: d24b4bc (LICENSE), 21cc6bf (ROADMAP), 56ac002 (Colab), 8da5e72 y f04af3b (ajustes)

¿Qué se construyó?

Después del sprint inicial de código, Killian dedicó unos días a la infraestructura del proyecto:

  1. Licencia MIT — el proyecto es open source
  2. ROADMAP.md — visión a futuro documentada públicamente
  3. Notebook de Google Colab — para que la gente lo pruebe sin instalar nada
  4. Ajustes menoresMAX_CHUNKS = None (sin límite), versiones de paquete

El ROADMAP como documento vivo

markdown
# 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 images

Lo 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

python
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 results

El 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

python
# 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.md

Lecció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

Libro generado por El Profe 🧑‍🏫