Debugging Guide for LangChain Chainlit Workshop
Este archivo documenta los errores comunes encontrados durante el desarrollo del proyecto, junto con los comandos y pasos utilizados para solucionarlos. Incluye problemas relacionados con dependencias, módulos, entorno virtual, puertos y herramientas.
Errores y Soluciones
1. Error: ImportError: cannot import name 'ToolMessage' from 'langchain_core.tools'
Descripción: El módulo langchain_core.tools no contiene la clase ToolMessage. Esto puede deberse a un cambio en la API de langchain_core o a una versión incompatible.
Solución: * Actualizar langchain-core: pip install --upgrade langchain-core
- Eliminar la importación si no es necesaria: En el archivo
app.py, elimina o comenta la línea: from langchain_core.tools import ToolMessage
- Revisar la documentación oficial de LangChain: Verifica si
ToolMessage ha sido renombrado o reemplazado.
2. Error: ImportError: cannot import name 'TOOLS' from 'tools'
Descripción: El archivo tools.py no contiene la definición de TOOLS o no está siendo importado correctamente.
Solución: * Verificar el archivo tools.py: Asegúrate de que TOOLS esté definido correctamente: TOOLS = [get_weather]
- Probar la importación directamente: Ejecuta el siguiente comando en el intérprete de Python para verificar que
TOOLS se importe correctamente: python -c "from tools import TOOLS; print(TOOLS)"
- Eliminar caché de Python: Si el problema persiste, elimina los archivos
.pyc y las carpetas __pycache__: find . -name "pycache" -exec rm -r {} +
3. Error: Permission denied al intentar crear o modificar archivos
Descripción: El script no tiene permisos para acceder o modificar ciertos archivos o directorios, como .bash_profile, .zshrc, o .config.
Solución: * Verificar permisos: ls -l /ruta/del/archivo
- Cambiar permisos:
chmod u+w /ruta/del/archivo
- Cambiar propietario (si es necesario):
sudo chown $(whoami) /ruta/del/archivo
4. Error: Puerto 8000 ocupado
Descripción: El puerto 8000 está siendo utilizado por otro proceso, lo que impide que la aplicación se inicie.
Solución: * Identificar el proceso que usa el puerto: lsof -i :8000
- Matar el proceso:
kill -9 <PID>
- Verificar que el puerto esté libre:
lsof -i :8000
- Solución Rápida:
kill -9 $(lsof -t -i:8000)
5. Error: Variables de entorno no configuradas (WEATHER_API_KEY, GITHUB_TOKEN)
Descripción: Las variables de entorno necesarias para la aplicación no están configuradas.
Solución: * Agregar las variables al archivo .env: env WEATHER_API_KEY=tu_api_key GITHUB_TOKEN=tu_github_token
- Cargar las variables en el entorno: Asegúrate de que
load_dotenv() esté presente en el código:
from dotenv import load_dotenv
load_dotenv()
6. Error: ModuleNotFoundError al instalar dependencias
Descripción: Faltan dependencias necesarias para ejecutar el proyecto.
Solución: * Instalar dependencias desde requirements.txt: pip install -r requirements.txt
- Instalar dependencias específicas:
pip install chainlit langchain langchain-core python-dotenv httpx
- Reinstalar dependencias (si hay conflictos):
pip install --force-reinstall chainlit langchain langchain-core python-dotenv httpx
7. Error: Entorno virtual no activado
Descripción: El entorno virtual no está activado, lo que puede causar problemas con las dependencias.
Solución: * Activar el entorno virtual: source .venv/bin/activate
- Crear un nuevo entorno virtual (si es necesario):
python3 -m venv .venv
source .venv/bin/activate
8. Error: chainlit no detecta callbacks (on_chat_start, on_message)
Descripción: Chainlit requiere al menos un callback configurado (on_chat_start, on_message, o on_audio_chunk).
Solución: * Agregar un callback básico: python @cl.on_chat_start async def start(): await cl.Message(content="Chat started!").send()
- Verificar que el archivo correcto se esté ejecutando:
chainlit run app.py
Comandos Clave para Debugging
| Problema |
Comando |
Verificar versión de langchain-core |
pip show langchain-core |
| Actualizar dependencias |
pip install --upgrade langchain-core |
Verificar importación de TOOLS |
python -c "from tools import TOOLS; print(TOOLS)" |
| Eliminar caché de Python |
find . -name "pycache" -exec rm -r {} + |
| Verificar permisos |
ls -l /ruta/del/archivo |
| Cambiar permisos |
chmod u+w /ruta/del/archivo |
| Liberar puerto 8000 |
lsof -i :8000 y kill -9 <PID> |
| Activar entorno virtual |
source .venv/bin/activate |
| Instalar dependencias |
pip install -r requirements.txt |
Resumen Final
Este proyecto requiere una configuración adecuada del entorno virtual, dependencias actualizadas y variables de entorno configuradas. Los errores más comunes incluyen problemas con las dependencias (langchain-core), permisos, y puertos ocupados. Asegúrate de seguir los pasos de solución y utilizar los comandos clave para depurar problemas rápidamente.
Debugging Guide for LangChain Chainlit Workshop
Este archivo documenta los errores comunes encontrados durante el desarrollo del proyecto, junto con los comandos y pasos utilizados para solucionarlos. Incluye problemas relacionados con dependencias, módulos, entorno virtual, puertos y herramientas.
Errores y Soluciones
1. Error:
ImportError: cannot import name 'ToolMessage' from 'langchain_core.tools'Descripción: El módulo
langchain_core.toolsno contiene la claseToolMessage. Esto puede deberse a un cambio en la API delangchain_coreo a una versión incompatible.Solución: * Actualizar langchain-core:
pip install --upgrade langchain-coreapp.py, elimina o comenta la línea:from langchain_core.tools import ToolMessageToolMessageha sido renombrado o reemplazado.2. Error:
ImportError: cannot import name 'TOOLS' from 'tools'Descripción: El archivo
tools.pyno contiene la definición deTOOLSo no está siendo importado correctamente.Solución: * Verificar el archivo tools.py: Asegúrate de que
TOOLSesté definido correctamente:TOOLS = [get_weather]TOOLSse importe correctamente:python -c "from tools import TOOLS; print(TOOLS)".pycy las carpetas__pycache__:find . -name "pycache" -exec rm -r {} +3. Error:
Permission deniedal intentar crear o modificar archivosDescripción: El script no tiene permisos para acceder o modificar ciertos archivos o directorios, como
.bash_profile,.zshrc, o.config.Solución: * Verificar permisos:
ls -l /ruta/del/archivochmod u+w /ruta/del/archivosudo chown $(whoami) /ruta/del/archivo4. Error: Puerto 8000 ocupado
Descripción: El puerto 8000 está siendo utilizado por otro proceso, lo que impide que la aplicación se inicie.
Solución: * Identificar el proceso que usa el puerto:
lsof -i :8000kill -9 <PID>lsof -i :8000kill -9 $(lsof -t -i:8000)5. Error: Variables de entorno no configuradas (
WEATHER_API_KEY,GITHUB_TOKEN)Descripción: Las variables de entorno necesarias para la aplicación no están configuradas.
Solución: * Agregar las variables al archivo .env:
env WEATHER_API_KEY=tu_api_key GITHUB_TOKEN=tu_github_tokenload_dotenv()esté presente en el código:6. Error:
ModuleNotFoundErroral instalar dependenciasDescripción: Faltan dependencias necesarias para ejecutar el proyecto.
Solución: * Instalar dependencias desde requirements.txt:
pip install -r requirements.txtpip install chainlit langchain langchain-core python-dotenv httpxpip install --force-reinstall chainlit langchain langchain-core python-dotenv httpx7. Error: Entorno virtual no activado
Descripción: El entorno virtual no está activado, lo que puede causar problemas con las dependencias.
Solución: * Activar el entorno virtual:
source .venv/bin/activatepython3 -m venv .venvsource .venv/bin/activate8. Error:
chainlitno detecta callbacks (on_chat_start,on_message)Descripción: Chainlit requiere al menos un callback configurado (
on_chat_start,on_message, oon_audio_chunk).Solución: * Agregar un callback básico:
python @cl.on_chat_start async def start(): await cl.Message(content="Chat started!").send()chainlit run app.pyComandos Clave para Debugging
langchain-corepip show langchain-corepip install --upgrade langchain-coreTOOLSpython -c "from tools import TOOLS; print(TOOLS)"find . -name "pycache" -exec rm -r {} +ls -l /ruta/del/archivochmod u+w /ruta/del/archivolsof -i :8000ykill -9 <PID>source .venv/bin/activatepip install -r requirements.txtResumen Final
Este proyecto requiere una configuración adecuada del entorno virtual, dependencias actualizadas y variables de entorno configuradas. Los errores más comunes incluyen problemas con las dependencias (
langchain-core), permisos, y puertos ocupados. Asegúrate de seguir los pasos de solución y utilizar los comandos clave para depurar problemas rápidamente.