mirror of
https://github.com/aljazceru/enclava.git
synced 2025-12-18 16:04:28 +01:00
clean commit
This commit is contained in:
182
backend/modules/chatbot/examples/customer_support_workflow.json
Normal file
182
backend/modules/chatbot/examples/customer_support_workflow.json
Normal file
@@ -0,0 +1,182 @@
|
||||
{
|
||||
"name": "Customer Support Workflow",
|
||||
"description": "Intelligent customer support workflow with intent classification, knowledge base search, and chatbot response generation",
|
||||
"version": "1.0",
|
||||
"variables": {
|
||||
"support_chatbot_id": "cs-bot-001",
|
||||
"escalation_threshold": 0.3,
|
||||
"max_attempts": 3
|
||||
},
|
||||
"steps": [
|
||||
{
|
||||
"id": "classify_intent",
|
||||
"name": "Classify Customer Intent",
|
||||
"type": "llm_call",
|
||||
"model": "gpt-3.5-turbo",
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "You are an intent classifier for customer support. Classify the customer message into one of these categories: technical_issue, billing_question, feature_request, complaint, general_inquiry. Also provide a confidence score between 0 and 1. Respond with JSON: {\"intent\": \"category\", \"confidence\": 0.95, \"reasoning\": \"explanation\"}"
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": "{{ inputs.customer_message }}"
|
||||
}
|
||||
],
|
||||
"output_variable": "intent_classification"
|
||||
},
|
||||
|
||||
{
|
||||
"id": "search_knowledge_base",
|
||||
"name": "Search Knowledge Base",
|
||||
"type": "workflow_step",
|
||||
"module": "rag",
|
||||
"action": "search",
|
||||
"config": {
|
||||
"query": "{{ inputs.customer_message }}",
|
||||
"collection": "support_documentation",
|
||||
"top_k": 5,
|
||||
"include_metadata": true
|
||||
},
|
||||
"output_variable": "knowledge_results"
|
||||
},
|
||||
|
||||
{
|
||||
"id": "check_confidence",
|
||||
"name": "Check Intent Confidence",
|
||||
"type": "condition",
|
||||
"condition": "JSON.parse(steps.classify_intent.result).confidence > variables.escalation_threshold",
|
||||
"true_steps": [
|
||||
{
|
||||
"id": "generate_chatbot_response",
|
||||
"name": "Generate Chatbot Response",
|
||||
"type": "workflow_step",
|
||||
"module": "chatbot",
|
||||
"action": "workflow_chat_step",
|
||||
"config": {
|
||||
"message": "{{ inputs.customer_message }}",
|
||||
"chatbot_id": "{{ variables.support_chatbot_id }}",
|
||||
"use_rag": true,
|
||||
"context": {
|
||||
"intent": "{{ steps.classify_intent.result }}",
|
||||
"knowledge_base_results": "{{ steps.search_knowledge_base.result }}",
|
||||
"customer_history": "{{ inputs.customer_history }}",
|
||||
"additional_instructions": "Be empathetic and professional. If you cannot fully resolve the issue, offer to escalate to a human agent."
|
||||
}
|
||||
},
|
||||
"output_variable": "chatbot_response"
|
||||
},
|
||||
|
||||
{
|
||||
"id": "analyze_response_quality",
|
||||
"name": "Analyze Response Quality",
|
||||
"type": "llm_call",
|
||||
"model": "gpt-3.5-turbo",
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "Analyze if this customer support response adequately addresses the customer's question. Consider completeness, accuracy, and helpfulness. Respond with JSON: {\"quality_score\": 0.85, \"is_adequate\": true, \"requires_escalation\": false, \"reasoning\": \"explanation\"}"
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": "Customer Question: {{ inputs.customer_message }}\\n\\nChatbot Response: {{ steps.generate_chatbot_response.result.response }}\\n\\nKnowledge Base Context: {{ steps.search_knowledge_base.result }}"
|
||||
}
|
||||
],
|
||||
"output_variable": "response_quality"
|
||||
},
|
||||
|
||||
{
|
||||
"id": "final_response_decision",
|
||||
"name": "Final Response Decision",
|
||||
"type": "condition",
|
||||
"condition": "JSON.parse(steps.analyze_response_quality.result).is_adequate === true",
|
||||
"true_steps": [
|
||||
{
|
||||
"id": "send_chatbot_response",
|
||||
"name": "Send Chatbot Response",
|
||||
"type": "output",
|
||||
"config": {
|
||||
"response_type": "chatbot_response",
|
||||
"message": "{{ steps.generate_chatbot_response.result.response }}",
|
||||
"sources": "{{ steps.generate_chatbot_response.result.sources }}",
|
||||
"confidence": "{{ JSON.parse(steps.classify_intent.result).confidence }}",
|
||||
"quality_score": "{{ JSON.parse(steps.analyze_response_quality.result).quality_score }}"
|
||||
}
|
||||
}
|
||||
],
|
||||
"false_steps": [
|
||||
{
|
||||
"id": "escalate_to_human",
|
||||
"name": "Escalate to Human Agent",
|
||||
"type": "output",
|
||||
"config": {
|
||||
"response_type": "human_escalation",
|
||||
"message": "I'd like to connect you with one of our human support agents who can better assist with your specific situation. Please hold on while I transfer you.",
|
||||
"escalation_reason": "Response quality below threshold",
|
||||
"intent": "{{ steps.classify_intent.result }}",
|
||||
"attempted_response": "{{ steps.generate_chatbot_response.result.response }}",
|
||||
"priority": "normal"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"false_steps": [
|
||||
{
|
||||
"id": "low_confidence_escalation",
|
||||
"name": "Low Confidence Escalation",
|
||||
"type": "output",
|
||||
"config": {
|
||||
"response_type": "human_escalation",
|
||||
"message": "I want to make sure you get the best possible help. Let me connect you with one of our human support agents.",
|
||||
"escalation_reason": "Low intent classification confidence",
|
||||
"intent": "{{ steps.classify_intent.result }}",
|
||||
"priority": "high"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"id": "log_interaction",
|
||||
"name": "Log Customer Interaction",
|
||||
"type": "workflow_step",
|
||||
"module": "analytics",
|
||||
"action": "log_event",
|
||||
"config": {
|
||||
"event_type": "customer_support_interaction",
|
||||
"data": {
|
||||
"customer_message": "{{ inputs.customer_message }}",
|
||||
"intent_classification": "{{ steps.classify_intent.result }}",
|
||||
"response_generated": "{{ steps.generate_chatbot_response.result.response }}",
|
||||
"knowledge_base_used": "{{ steps.search_knowledge_base.result }}",
|
||||
"escalated": "{{ outputs.response_type === 'human_escalation' }}",
|
||||
"workflow_execution_time": "{{ execution_time }}",
|
||||
"timestamp": "{{ current_timestamp }}"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
"outputs": {
|
||||
"response_type": "string",
|
||||
"message": "string",
|
||||
"sources": "array",
|
||||
"escalation_reason": "string",
|
||||
"confidence": "number",
|
||||
"quality_score": "number"
|
||||
},
|
||||
|
||||
"error_handling": {
|
||||
"retry_failed_steps": true,
|
||||
"max_retries": 2,
|
||||
"fallback_response": "I apologize, but I'm experiencing technical difficulties. Please contact our support team directly for assistance."
|
||||
},
|
||||
|
||||
"metadata": {
|
||||
"created_by": "support_team",
|
||||
"use_case": "customer_support_automation",
|
||||
"tags": ["customer_support", "chatbot", "rag", "escalation"],
|
||||
"estimated_execution_time": "5-15 seconds"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user