Розробка автономних телефонних агентів на Bland AI Bland AI - платформа для створення телефонних голосових агентів, які ведуть повноцінні двосторонні розмови за заданим сценарієм. На відміну від класичних IVR-систем із жорстким деревом меню, агент на Bland AI розуміє вільне мовлення, обробляє нестандартні відповіді та інтегрується з бізнес-системами через вебхукі в реальному часі. ### Архітектура та можливості Bland AI Платформа працює за моделлю: вхідний/вихідний дзвінок → Speech-to-Text → LLM для генерації відповіді → Text-to-Speech → озвучування. Весь цикл займає 300-700ms, що забезпечує природний темп розмови без помітних пауз. Ключові компоненти: - Pathways — граф діалогу з умовними переходами (розгалуження за відповідями користувача); ескалації```python
import requests import json
class BlandAIAgent: """Управление агентами через Bland AI API"""
def __init__(self, api_key: str):
self.api_key = api_key
self.base_url = "https://api.bland.ai"
self.headers = {
"Authorization": api_key,
"Content-Type": "application/json"
}
def create_phone_call(self, phone_number: str,
task: str,
pathway_id: str = None,
voice: str = "maya",
max_duration: int = 12) -> dict:
"""
Инициирование исходящего звонка.
task: инструкция для агента (prompt)
pathway_id: ID предварительно настроенного графа диалога
"""
payload = {
"phone_number": phone_number,
"voice": voice,
"max_duration": max_duration,
"task": task,
"language": "ru",
"reduce_latency": True,
"interruption_threshold": 100, # ms, насколько ждём паузы
}
if pathway_id:
payload["pathway_id"] = pathway_id
response = requests.post(
f"{self.base_url}/v1/calls",
json=payload,
headers=self.headers
)
return response.json()
def create_pathway(self, name: str, nodes: list[dict],
edges: list[dict]) -> dict:
"""
Создание графа диалога (Pathway).
nodes: узлы разговора (вопросы, ответы, действия)
edges: переходы между узлами по условиям
"""
payload = {
"name": name,
"nodes": nodes,
"edges": edges
}
response = requests.post(
f"{self.base_url}/v1/pathway",
json=payload,
headers=self.headers
)
return response.json()
def analyze_call(self, call_id: str,
questions: list[dict]) -> dict:
"""
Post-call анализ: извлечение структурированных данных из разговора.
questions: [{"question": "...", "type": "boolean|text|date"}]
"""
payload = {"questions": questions}
response = requests.post(
f"{self.base_url}/v1/calls/{call_id}/analyze",
json=payload,
headers=self.headers
)
return response.json()
def get_call_transcript(self, call_id: str) -> dict:
"""Транскрипт и метаданные завершённого звонка"""
response = requests.get(
f"{self.base_url}/v1/calls/{call_id}",
headers=self.headers
)
return response.json()
| Розпізнавання російської | гарний (Whisper-based) | | Одночасних дзвінків до 1000+ (enterprise) | | Вартість | ~$0.09/хв | | CSAT vs живий оператор 75-85% | **Обмеження:** складні емоційні розмови (скарги, конфлікти) вимагають ескалації на людину. Агент не розпізнає сарказм та культурні нюанси з надійністю живого співробітника. Для чутливих тематик (охорона здоров'я, юридичні питання) необхідне додаткове налаштування обмежень. Типовий термін розгортання простого агента для підтвердження записів - 1-2 тижні. Складний кваліфікаційний агент з інтеграцією CRM та обробкою заперечень – 4-6 тижнів.







