Ejercicio realizado por la consultora DSInteg basado en el tutorial oficial de LangGraph Build a Customer Support Bot.
- Chatbot inteligente con capacidades de soporte al cliente
- Herramientas integradas para búsqueda de información, verificación de pedidos y creación de tickets
- Flujo de conversación avanzado con gestión de estado
- Resumen automático de conversaciones
- Manejo de errores robusto
flowchart TD
User["Usuario"] --> |"Mensaje"| Agent["Nodo Agent (LLM)"]
Agent --> |"Decisión"| Tools["Nodo Tools (Herramientas)"]
Tools --> |"Resultado"| Agent
Agent --> |"¿Terminar?"| Summary["Nodo Summary (Resumen)"]
Summary --> |"Fin"| End["END"]
Agent --> |"Fin"| End
- Clonar el repositorio:
git clone https://github.com/DSInteg/example-customer-support-bot
cd test-bot
- Crear y activar entorno virtual:
# Crear entorno virtual
python3 -m venv venv
# Activar entorno virtual
source venv/bin/activate
- Instalar dependencias:
pip install -r requirements.txt
- Configurar variables de entorno:
Crear un archivo
.env
en la raíz del proyecto:
OPENAI_API_KEY=tu_api_key_de_openai_aqui
- Verificar instalación:
python test_customer_bot.py
python customer_support_bot.py
python advanced_customer_support.py
python simple_customer_support.py
python modern_customer_support.py
👤 You: What is your return policy?
🤖 Assistant: Our return policy allows returns within 30 days of purchase with original receipt. Items must be in original condition.
👤 You: Can you check the status of my order? The order number is 123456789
🤖 Assistant: Order 123456789: Your order is being processed and will ship within 2-3 business days.
👤 You: How long does shipping take?
🤖 Assistant: Standard shipping takes 3-5 business days. Express shipping (1-2 days) is available for $15.99. Free shipping on orders over $50.
👤 You: I have a complex issue with my account that I can't resolve
🤖 Assistant: I'll create a support ticket for you. What's your email address and can you describe the issue?
- StateGraph: Define el flujo de la conversación
- Tools: Herramientas para interactuar con sistemas externos
- LLM: Modelo de lenguaje para generar respuestas
- ToolExecutor: Ejecuta las herramientas cuando es necesario
Usuario → LLM → Decisión → Herramientas → LLM → Respuesta
- search_knowledge_base: Busca información en la base de conocimientos
- check_order_status: Verifica el estado de un pedido
- create_support_ticket: Crea tickets de soporte
- get_customer_info: Obtiene información del cliente
@tool
def nueva_herramienta(parametro: str) -> str:
"""Descripción de la nueva herramienta."""
# Implementación de la herramienta
return "Resultado de la herramienta"
Edita el diccionario knowledge_base
en la función search_knowledge_base
:
knowledge_base = {
"nuevo_tema": "Información sobre el nuevo tema",
# ... más entradas
}
Modifica la inicialización del LLM:
llm = ChatOpenAI(
model="gpt-4", # Cambiar modelo
temperature=0.1, # Ajustar temperatura
api_key=os.getenv("OPENAI_API_KEY")
)
Característica | Básica | Avanzada |
---|---|---|
Gestión de estado | Simple | Compleja |
Herramientas | 3 | 4 |
Resumen de conversación | No | Sí |
Manejo de errores | Básico | Avanzado |
Interfaz de usuario | Simple | Mejorada |
- Preguntas básicas de política
- Verificación de pedidos válidos e inválidos
- Creación de tickets de soporte
- Finalización de conversación
- Manejo de errores
# Ejemplo de conversación de prueba
python -c "
from advanced_customer_support import app
from langchain_core.messages import HumanMessage
state = {'messages': [HumanMessage(content='What is your return policy?')]}
result = app.invoke(state)
print(result['messages'][-1].content)
"
❌ Error: OPENAI_API_KEY environment variable not set.
Solución: Crear archivo .env
con tu API key de OpenAI.
ModuleNotFoundError: No module named 'langgraph'
Solución: Instalar dependencias con pip install -r requirements.txt
.
ImportError: cannot import name 'ToolExecutor' from 'langgraph.prebuilt'
Solución:
- Ejecutar script de configuración:
bash setup_environment.sh
- O manualmente:
# Asegúrate de estar en el entorno virtual source venv/bin/activate # Limpiar paquetes conflictivos pip uninstall -y langgraph langchain langchain-openai langchain-community langchain-core langchain-text-splitters langgraph-prebuilt pip cache purge pip install -r requirements.txt python test_imports.py
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed.
Solución: Usar el script de instalación completo: bash install_dependencies.sh
No module named 'langchain-core'
No module named 'langchain-openai'
Solución: Ejecutar el script de instalación: bash install_dependencies.sh
Graph must have an entrypoint: add at least one edge from START to another node
Solución: Ya corregido en la versión simplificada. Usar: python simple_customer_support.py
openai.BadRequestError: The model `gpt-3.5-turbo` does not exist
Solución: Verificar que el modelo especificado esté disponible en tu cuenta de OpenAI.
- Integración con base de datos real
- Autenticación de usuarios
- Historial de conversaciones
- Análisis de sentimientos
- Integración con CRM
- Soporte multiidioma
- Interfaz web
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE
para más detalles.
Las contribuciones son bienvenidas. Por favor, abre un issue o pull request para sugerir mejoras.
Para soporte técnico o preguntas sobre el proyecto, contacta:
- Email: academy@dsinteg.com
- Issues: GitHub Issues
Nota: Este proyecto es una implementación educativa realizada por DSInteg, basada en el tutorial oficial de LangGraph. Para uso en producción, considera implementar medidas de seguridad adicionales y conectores a sistemas reales.