Actualmente el agente se ejecuta mediante un comando de ejecución de python en la terminal, en interaciones futuras se evaluará la inclusión de una mejor UI. Por otro lado hay una ejecución que se hace aparte del flujo principal, la cual lleva a cabo el proceso de ingesta de información, es el paso previo que prepara la información que el agente consume. A continuación se explica la ejecución de los componentes principales del proyecto.
- Python 3.13+ instalado.
- Dependencias listadas en
requirements.txto gestionadas víapyproject.toml.
- Crear y activar entorno virtual (Windows PowerShell):
python -m venv .venv
.\.venv\Scripts\Activate.ps1En CMD:
python -m venv .venv
.\.venv\Scripts\activate- Instalar dependencias:
pip install -r requirements.txtO instalar el paquete local en editable mode (opcional):
pip install -e .- Ejecutar solo la fase de ingestión (limpieza y persistencia
clean_documents.jsonl):
python src/ingestion/run.pyEsto normalmente deberá ejecutarse una sola vez, que es cuando se agregaron inicialmente las fuentes o en su defecto se puede volver a ejecutar si se agrega una fuente nueva. Se espera formato PDF para las fuentes.
Nota: los directorios de entrada (data/raw/) y persistencia de Chroma están configurados en src/config/settings.py.
- Construir e iniciar el agente desde
src/main.py:
python src/main.py- Uso:
- Escribe una pregunta y presiona Enter.
- Escribe
exitosalirpara terminar la sesión. - El agente imprime la respuesta y la lista de fuentes (si las hay).
Ejemplo de interacción:
Causalito listo. Escribe tu pregunta o 'exit' para salir.
>> ¿Qué es inferencia causal bayesiana?
[Respuesta]
...texto generado...
Fuentes: ['paper1.pdf', 'book_chapter.pdf']
- Si Chroma no encuentra el directorio de persistencia, confirma
CHROMA_PERSIST_DIRensrc/config/settings.pyy permisos de escritura. - Si faltan dependencias, instala desde
requirements.txto revisapyproject.toml. - Para problemas de rendimiento con embeddings, considera usar una máquina con más memoria o reducir el
batchde indexación eningestion.run.index_documents(). - Si el agente responde "No hay suficiente información...", indexa más documentos o ajusta los parámetros del
Retriever(k,min_score).