Itinai.com it company office background blured chaos 50 v 74e4829b a652 4689 ad2e c962916303b4 0

Создание надежных разговорных ИИ-агентов с Parlant для бизнеса

Itinai.com it company office background blured chaos 50 v 74e4829b a652 4689 ad2e c962916303b4 0

Как создать надежных разговорных ИИ-агентов с помощью Parlant?

Создание надежных разговорных ИИ-агентов может показаться сложной задачей. Однако с помощью Parlant, фреймворка, разработанного для упрощения создания готовых к производству ИИ-агентов, вы сможете преодолеть распространенные проблемы, связанные с большими языковыми моделями (LLM).

Проблемы, с которыми сталкиваются LLM

Хотя LLM часто демонстрируют хорошие результаты в тестах, они могут не справляться с реальными взаимодействиями с пользователями. Основные проблемы включают:

  • Игнорирование системных подсказок
  • Генерация неточных или нерелевантных ответов
  • Сложности с крайними случаями
  • Непоследовательное поведение в разных разговорах

Как Parlant решает эти проблемы?

Parlant акцентирует внимание на принципиально ориентированном развитии, а не на инженерии подсказок. Он предлагает механизмы для определения четких правил и интеграции инструментов, что позволяет агентам безопасно и предсказуемо обрабатывать данные из реального мира.

Практическое применение: создание страхового агента

В этом руководстве мы создадим страхового агента, который сможет извлекать открытые заявки, подавать новые заявки и предоставлять подробную информацию о полисах. Это демонстрирует, как интегрировать специализированные инструменты в систему ИИ на базе Parlant для обеспечения последовательной и надежной поддержки клиентов.

Установка и импорт зависимостей

pip install parlant

Для использования Parlant в вашем проекте импортируйте необходимые библиотеки:

import asyncio
from datetime import datetime
import parlant.sdk as p

Определение инструментов

Следующие инструменты имитируют взаимодействия, которые могут потребоваться страховой помощник:

@p.tool
async def get_open_claims(context: p.ToolContext) -> p.ToolResult:
    return p.ToolResult(data=["Заявка #123 - В ожидании", "Заявка #456 - Одобрена"])

@p.tool
async def file_claim(context: p.ToolContext, claim_details: str) -> p.ToolResult:
    return p.ToolResult(data=f"Новая заявка подана: {claim_details}")

@p.tool
async def get_policy_details(context: p.ToolContext) -> p.ToolResult:
    return p.ToolResult(data={
        "номер полиса": "POL-7788",
        "покрытие": "Покрывает случайные повреждения и кражу до $50,000"
    })

Определение глоссария и маршрутов

Этот раздел устанавливает глоссарий и маршруты, которые определяют, как агент взаимодействует с предметной областью и взаимодействиями. Глоссарий включает важные бизнес-термины, что обеспечивает точную ссылку во время разговоров.

async def add_domain_glossary(agent: p.Agent):
    await agent.create_term(
        name="Номер службы поддержки",
        description="Вы можете связаться с нами по номеру +1-555-INSURE",
    )
    await agent.create_term(
        name="Часы работы",
        description="Мы доступны с понедельника по пятницу с 9:00 до 18:00",
    )

Создание маршрута для подачи заявки

async def create_claim_journey(agent: p.Agent) -> p.Journey:
    journey = await agent.create_journey(
        title="Подача страховой заявки",
        description="Помогает клиентам сообщать и подавать новую заявку.",
        conditions=["Клиент хочет подать заявку"],
    )

    s0 = await journey.initial_state.transition_to(chat_state="Запросить детали происшествия")
    s1 = await s0.target.transition_to(tool_state=file_claim, condition="Клиент предоставляет детали")
    s2 = await s1.target.transition_to(chat_state="Подтвердить, что заявка была подана")
    await s2.target.transition_to(state=p.END_JOURNEY)

    return journey

Создание маршрута для объяснения полиса

async def create_policy_journey(agent: p.Agent) -> p.Journey:
    journey = await agent.create_journey(
        title="Объяснение покрытия полиса",
        description="Извлекает и объясняет покрытие страховки клиента.",
        conditions=["Клиент спрашивает о своем полисе"],
    )

    s0 = await journey.initial_state.transition_to(tool_state=get_policy_details)
    await s0.target.transition_to(
        chat_state="Четко объяснить покрытие полиса",
        condition="Информация о полисе доступна",
    )

    await agent.create_guideline(
        condition="Клиент настаивает на юридической интерпретации покрытия",
        action="Вежливо объяснить, что юридические советы предоставить нельзя",
    )
    return journey

Определение основного запуска

Основной запуск соединяет все ранее определенные компоненты и запускает агента. Он запускает сервер Parlant, создает страхового агента и загружает его глоссарий, маршруты и глобальные рекомендации. Он также управляет крайними случаями, такими как неоднозначные намерения клиента:

async def main():
    async with p.Server() as server:
        agent = await server.create_agent(
            name="Страховой помощник",
            description="Дружелюбный и профессиональный; помогает с заявками и вопросами по полисам.",
        )

        await add_domain_glossary(agent)
        claim_journey = await create_claim_journey(agent)
        policy_journey = await create_policy_journey(agent)

        status_obs = await agent.create_observation(
            "Клиент упоминает о проблеме, но не уточняет, касается ли это заявки или полиса"
        )
        await status_obs.disambiguate([claim_journey, policy_journey])

        await agent.create_guideline(
            condition="Клиент спрашивает о нерелевантных темах",
            action="Вежливо перенаправить их только на поддержку, связанную со страховкой",
        )

        print("Страховой агент готов! Откройте интерфейс Parlant для общения.")

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

Ресурсы для дальнейшего изучения

Для получения полных деталей по коду посетите нашу страницу на GitHub для руководств, кода и блокнотов. Оставайтесь в курсе, подписавшись на нашу рассылку или следя за нами в Twitter.

Часто задаваемые вопросы (FAQ)

1. Каковы основные преимущества использования Parlant для создания ИИ-агентов?

Parlant упрощает разработку, обеспечивая надежность и предсказуемость взаимодействий, что критично для бизнеса.

2. Как Parlant справляется с неоднозначностью в запросах пользователей?

Parlant позволяет создавать наблюдения и рекомендации, которые помогают агенту правильно интерпретировать намерения клиентов.

3. Можно ли интегрировать Parlant с другими системами?

Да, Parlant поддерживает интеграцию с различными API и инструментами, что расширяет его функциональность.

4. Какие ошибки чаще всего совершают при разработке ИИ-агентов?

Частые ошибки включают игнорирование контекста, недостаточную проработку глоссария и отсутствие четких маршрутов взаимодействия.

5. Как улучшить взаимодействие с клиентами через ИИ-агента?

Регулярно обновляйте глоссарий и маршруты, учитывайте отзывы клиентов и адаптируйте агента под их потребности.

6. Какие лайфхаки можно использовать при работе с Parlant?

Используйте тестирование на ранних этапах разработки, чтобы выявить и устранить проблемы, и не забывайте о постоянной оптимизации взаимодействий.

Запустите свой ИИ проект бесплатно

ИИ-агенты искусственный интеллект онлайн для бизнеса

Лучший ИИ онлайн