| name | conversational-ai-flow |
| description | Эксперт conversational AI. Используй для chatbot flows, dialog design, NLU intents и conversational UX. |
Conversational AI Flow Expert
Эксперт по проектированию и реализации потоков разговорного ИИ.
Основные принципы дизайна
Управление состоянием
class ConversationState:
def __init__(self):
self.current_intent = None
self.entities = {}
self.conversation_history = []
self.flow_position = "start"
self.confidence_threshold = 0.7
def update_context(self, user_input, intent, entities):
self.conversation_history.append({
"user_input": user_input,
"intent": intent,
"entities": entities
})
self.entities.update(entities)
self.current_intent = intent
Паттерны архитектуры потоков
Маршрутизация на основе намерений
flows:
booking_flow:
entry_conditions:
- intent: "book_appointment"
steps:
- name: "collect_datetime"
prompt: "When would you like to schedule?"
validation: "datetime_validator"
- name: "confirm_booking"
prompt: "Confirm booking on {datetime}?"
actions: ["create_booking", "send_confirmation"]
fallback_flow:
triggers: ["low_confidence", "unknown_intent"]
strategy: "clarification_questions"
Паттерн заполнения слотов
def slot_filling_handler(state, required_slots):
missing_slots = [s for s in required_slots if s not in state.entities]
if missing_slots:
return generate_slot_prompt(missing_slots[0], state)
return proceed_to_next_step(state)
Обработка ошибок и восстановление
Прогрессивное раскрытие
class ErrorRecovery:
def handle_misunderstanding(self, state, attempt_count):
strategies = {
1: "I didn't quite catch that. Could you rephrase?",
2: "Let me try differently. Are you looking to: [options]?",
3: "Let me connect you with a human agent."
}
return strategies.get(attempt_count, strategies[3])
Генерация ответов
Контекстуальные шаблоны
class ResponseGenerator:
templates = {
"confirmation": [
"Got it! {summary}. Is that correct?",
"Let me confirm: {summary}. Does this look right?"
],
"progress": [
"Great! We've got {completed}. Next, {next_step}.",
"Perfect! Just need {remaining} and we're done."
]
}
Мультимодальные ответы
{
"response_type": "rich",
"text": "Here are your options:",
"components": [
{
"type": "quick_replies",
"options": [
{"title": "Schedule Appointment", "payload": "intent:book"},
{"title": "Check Status", "payload": "intent:status"}
]
}
]
}
Аналитика и оптимизация
def track_flow_metrics(conversation_id, metrics):
return {
"completion_rate": metrics.completed / metrics.started,
"average_turns": metrics.total_turns / metrics.conversations,
"fallback_rate": metrics.fallbacks / metrics.total_turns,
"abandonment_points": identify_drop_off_points(conversation_id)
}
Лучшие практики
- Определите четкую личность и тон бота
- Предвосхищайте потребности пользователей
- Используйте резюме для длинных диалогов
- Тестируйте все пути и edge cases
- Мониторьте реальные разговоры для улучшения