Передача дел от ИИ к человеку — ключевой компонент автоматизации обслуживания клиентов. Она обеспечивает плавный переход от ИИ к квалифицированному специалисту, когда ИИ достигает своих пределов. В этом руководстве мы реализуем систему передачи дел от ИИ к человеку для страхового агента на базе Parlant.
Установка зависимостей
Убедитесь, что у вас есть действующий ключ API OpenAI. После того как вы сгенерируете его на панели управления OpenAI, создайте файл .env в корневом каталоге вашего проекта и надёжно сохраните ключ следующим образом:
«`
OPENAIAPIKEY=yourapikey_here
«`
Это обеспечивает безопасность ваших учётных данных и предотвращает их жёсткое кодирование в кодовой базе.
«`
pip install parlant dotenv streamlit
«`
Агент страховой компании (agent.py)
Мы начнём с создания скрипта агента, который определяет поведение ИИ, пути взаимодействия в разговоре, глоссарий и механизм передачи дел человеку. Это сформирует основную логику, которая будет управлять нашим страховым помощником в Parlant.
«`
import asyncio
import os
from datetime import datetime
from dotenv import load_dotenv
import parlant.sdk as p
load_dotenv()
«`
Определение инструментов агента
«`
@p.tool
async def getopenclaims(context: p.ToolContext) -> p.ToolResult:
return p.ToolResult(data=[«Claim #123 — Pending», «Claim #456 — Approved»])
@p.tool
async def fileclaim(context: p.ToolContext, claimdetails: str) -> p.ToolResult:
return p.ToolResult(data=f»New claim filed: {claim_details}»)
@p.tool
async def getpolicydetails(context: p.ToolContext) -> p.ToolResult:
return p.ToolResult(data={
«policy_number»: «POL-7788»,
«coverage»: «Covers accidental damage and theft up to $50,000»
})
«`
Инициирование передачи дел человеку
«`
@p.tool
async def initiatehumanhandoff(context: p.ToolContext, reason: str) -> p.ToolResult:
«»»
Initiate handoff to a human agent when the AI cannot adequately help the customer.
«»»
print(f» Initiating human handoff: {reason}»)
# Setting session to manual mode stops automatic AI responses
return p.ToolResult(
data=f»Human handoff initiated because: {reason}»,
control={
«mode»: «manual» # Switch session to manual mode
}
)
«`
Этот инструмент позволяет ИИ-агенту плавно передавать разговор оператору, когда обнаруживает, что для решения проблемы требуется вмешательство человека. Переключая сеанс в ручной режим, он приостанавливает все автоматические ответы, позволяя оператору взять полный контроль.
Определение глоссария
Глоссарий определяет ключевые термины и фразы, которые ИИ-агент должен распознавать и на которые должен отвечать последовательно. Это помогает поддерживать точность и согласованность бренда, предоставляя агенту чёткие, заранее определённые ответы на общие запросы, специфичные для домена.
«`
async def adddomainglossary(agent: p.Agent):
await agent.create_term(
name=»Customer Service Number»,
description=»You can reach us at +1-555-INSURE»,
)
await agent.create_term(
name=»Operating Hours»,
description=»We are available Mon-Fri, 9AM-6PM»,
)
«`
Определение путей
«`
—————————
Claim Journey
—————————
async def createclaimjourney(agent: p.Agent) -> p.Journey:
journey = await agent.create_journey(
title=»File an Insurance Claim»,
description=»Helps customers report and submit a new claim.»,
conditions=[«The customer wants to file a claim»],
)
s0 = await journey.initialstate.transitionto(chat_state=»Ask for accident details»)
s1 = await s0.target.transitionto(toolstate=file_claim, condition=»Customer provides details»)
s2 = await s1.target.transitionto(chatstate=»Confirm claim was submitted», condition=»Claim successfully created»)
await s2.target.transitionto(state=p.ENDJOURNEY, condition=»Customer confirms submission»)
return journey
—————————
Policy Journey
—————————
async def createpolicyjourney(agent: p.Agent) -> p.Journey:
journey = await agent.create_journey(
title=»Explain Policy Coverage»,
description=»Retrieves and explains customer’s insurance coverage.»,
conditions=[«The customer asks about their policy»],
)
s0 = await journey.initialstate.transitionto(toolstate=getpolicy_details)
await s0.target.transition_to(
chat_state=»Explain the policy coverage clearly»,
condition=»Policy info is available»,
)
await agent.create_guideline(
condition=»Customer presses for legal interpretation of coverage»,
action=»Politely explain that legal advice cannot be provided»,
)
return journey
«`
Определение основного исполнителя
«`
async def main():
async with p.Server() as server:
agent = await server.create_agent(
name=»Insurance Support Agent»,
description=(
«Friendly Tier-1 AI assistant that helps with claims and policy questions. «
«Escalates complex or unresolved issues to human agents (Tier-2).»
),
)
# Add shared terms & definitions
await adddomainglossary(agent)
# Journeys
claimjourney = await createclaim_journey(agent)
policyjourney = await createpolicy_journey(agent)
# Disambiguation rule
statusobs = await agent.createobservation(
«Customer mentions an issue but doesn’t specify if it’s a claim or policy»
)
await statusobs.disambiguate([claimjourney, policy_journey])
# Global Guidelines
await agent.create_guideline(
condition=»Customer asks about unrelated topics»,
action=»Kindly redirect them to insurance-related support only»,
)
# Human Handoff Guideline
await agent.create_guideline(
condition=»Customer requests human assistance or AI is uncertain about the next step»,
action=»Initiate human handoff and notify Tier-2 support.»,
tools=[initiatehumanhandoff],
)
print(» Insurance Support Agent with Human Handoff is ready! Open the Parlant UI to chat.»)
if name == «main«:
asyncio.run(main())
«`
Запуск агента
«`
python agent.py
«`
Это запустит агента Parlant локально на http://localhost:8800, где он будет обрабатывать всю логику разговора и управление сеансами.
В следующем шаге мы подключим этого запущенного агента к нашему интерфейсу передачи дел от человека на базе Streamlit, что позволит оператору человека беспрепятственно присоединяться и управлять живыми разговорами с помощью идентификатора сеанса Parlant.
1. Какие ключевые компоненты включает в себя система передачи дел от ИИ к человеку для страхового агента на базе Parlant?
Ответ: система передачи дел от ИИ к человеку для страхового агента на базе Parlant включает в себя:
* установку зависимостей и настройку ключа API OpenAI;
* создание скрипта агента, который определяет поведение ИИ, пути взаимодействия в разговоре, глоссарий и механизм передачи дел человеку;
* определение инструментов агента, таких как получение открытых претензий, подача заявки на претензию и получение сведений о полисе;
* инициирование передачи дел человеку, когда ИИ не может адекватно помочь клиенту;
* определение глоссария для обеспечения точности и согласованности бренда;
* определение путей взаимодействия для управления разговором;
* определение основного исполнителя, который управляет всем процессом.
2. Какие инструменты используются для определения поведения ИИ и путей взаимодействия в разговоре?
Ответ: для определения поведения ИИ и путей взаимодействия в разговоре используются инструменты, такие как:
* `@p.tool` для создания инструментов, которые выполняют определённые задачи, например, получение открытых претензий или подача заявки на претензию;
* `asyncio` для асинхронного выполнения задач;
* `os` для работы с операционной системой;
* `datetime` для работы с датами и временем;
* `dotenv` для загрузки переменных окружения из файла `.env`.
3. Как работает механизм передачи дел от ИИ к человеку в системе Parlant?
Ответ: механизм передачи дел от ИИ к человеку в системе Parlant работает следующим образом:
* ИИ-агент определяет, что для решения проблемы клиента требуется вмешательство человека;
* ИИ-агент инициирует передачу дела человеку, переключая сеанс в ручной режим;
* в ручном режиме оператор получает полный контроль над разговором и может управлять им напрямую.
4. Какие основные функции выполняет скрипт агента в системе Parlant?
Ответ: скрипт агента в системе Parlant выполняет следующие основные функции:
* определяет поведение ИИ в разговоре;
* управляет путями взаимодействия в разговоре;
* обеспечивает передачу дел человеку, когда это необходимо;
* поддерживает точность и согласованность бренда через глоссарий;
* управляет основным процессом работы ИИ-агента.