Намерения: zep объясняет, как сделать большие модели, понимающие намерения клиентов.
В обработке естественного языка (NLP) намерение означает выражение пользователем какой-то цели, желания или стремления. Проанализировав сообщения, отправленные пользователем, и определив стоящее за ними намерение, мы можем ответить на них соответствующим контентом. Например, "заказать еду", "узнать погоду", "я хочу поехать в Париж" и т. д. - все это правильные намерения.
Чтобы чатбот мог точно распознать намерение пользователя, нам нужно определить имя и набор примеров для каждого намерения. Имя - это уникальная метка, используемая для идентификации намерения, а примеры - это образцы высказываний, используемые для обучения чатбота распознаванию намерения. Название должно быть кратким, четким и последовательным, а примеры - разнообразными, типичными и охватывающими. Например, для намерения "заказать еду" мы можем определить следующее:
Имя: order_food
Пример:
- Я бы хотел заказать пиццу.
- Миску лапши с говядиной, пожалуйста.
- В чем ваша специализация?
Определяя различные намерения, мы можем позволить чат-ботам обрабатывать несколько типов пользовательских запросов и предоставлять соответствующие ответы или действия, основанные на различных сценариях. Например, если пользователь набирает "Я хочу поехать в Париж", чатбот может распознать это как намерение "путешествие" и предоставить информацию и предложения по Парижу, основываясь на предпочтениях и бюджете пользователя. Таким образом, мы можем создать более умный, гибкий и удобный чатбот.
Презентация намерений
Zep Экстрактор намерений определяет намерения сообщения и сохраняет их в метаданных сообщения. 💡 Благодаря данным о намерениях разработчики могут создавать более богатые и персонализированные взаимодействия с "умным телом". 🔥
В области обработки естественного языка (NLP) извлечение смысла из хаоса человеческого общения может показаться сложной задачей. Сегодня мы рады представить важную функцию - извлечение намерений, которая обеспечивает более глубокую ценность для понимания в режиме реального времени.
Понимание намерений пользователя - это краеугольный камень разработки осмысленных и персонализированных взаимодействий в любой системе разговорного ИИ. Извлечение намерений - это не просто распознавание слов или фраз, это понимание того, что пользователь имеет в виду в данном контексте. Персонализация приложений с большой языковой моделью (LLM) требует понимания намерений на протяжении всего разговора.
Наша новая функция:Извлечение намеренийЭто ценный инструмент для организаций, позволяющий использовать возможности взаимодействия с клиентами на основе искусственного интеллекта.
Что такое извлечение намерений?
В основе извлечения намерений лежит задача НЛП, которая заключается в распознавании цели или задачи пользователя - того, что он хочет сделать, - из его ввода. Например, пользователь может сказать: "Включите бодрую музыку". Намерение здесь заключается не только в том, чтобы "включить музыку", но и в том, чтобы указать тип музыки - "бодрая".
Намерение использовать
По умолчанию Zep автоматически извлекает смысл каждого сообщения, и вы можете включить или выключить эту функцию, отредактировав config.yaml:
...
extractors:
summarizer:
enabled: true
entities:
enabled: true
intent:
enabled: true
embeddings:
enabled: true
dimensions: 1536
model: "AdaEmbeddingV2"
...
По умолчанию все разговоры будут содержать "системные" метаданные с "намерением" для каждого сообщения, хранящегося в Zep.
Персонализация, основанная на намерениях
Следующий пример иллюстрирует, как намерение может быть объединено с предпочтениями клиента, чтобы обеспечить персонализированное взаимодействие с пользователями в среде электронной коммерции:
Human: I'm looking for a new skincare product.
ZepMemory:
{
"uuid": "6026b3b7-3755-4d00-89d8-243ecfc45931",
"created_at": "2023-06-21T02:19:45.577522Z",
"role": "human",
"content": "I'm looking for a new skincare product.",
"metadata": {
"system": {
"intent": "The subject is expressing a need or want for a new skincare product."
}
"customer_firstname": "Alice",
"customer_id": "KDSJFJDSF",
"member_since": "03-01-2009",
"product_pref_tags": "eco-friendly, vegan"
},
"token_count": 11
}
AI: Of course, Alice. Based on your preference for eco-friendly and vegan products, I can recommend a few options. Are you looking for a specific type of skincare product like a cleanser, moisturizer, or serum?
ZepMemory:
{
"uuid": "30eb918d-4b3a-42a9-a64b-c79e01f87ec4",
"created_at": "2023-06-21T02:19:45.577522Z",
"role": "ai",
"content": "Of course, Alice. Based on your preference for eco-friendly and vegan products, I can recommend a few options. Are you looking for a specific type of skincare product like a cleanser, moisturizer, or serum?",
"metadata": {
"system": {
"intent": "The subject is offering recommendations for eco-friendly and vegan skincare options and inquiring about the specific type of product the person is looking for."
}
},
"token_count": 46
}
Human: I'm looking for a good face moisturizer.
ZepMemory:
{
"uuid": "f8ec855b-fd59-4084-a3d1-2b81857d5dcd",
"created_at": "2023-06-21T02:19:45.577522Z",
"role": "human",
"content": "I'm looking for a good face moisturizer.",
"metadata": {
"system": {
"intent": "The subject is searching for a specific type of facial skincare product."
}
},
"token_count": 12
}
AI: I recommend the 'Green Goddess' vegan moisturizer. It's a highly rated, eco-friendly product and is particularly effective for dry skin. Would you like to add this to your cart?
ZepMemory:
{
"uuid": "4e3d0fe8-5242-4c9c-8891-34636af1e576",
"created_at": "2023-06-21T02:19:45.577522Z",
"role": "ai",
"content": "I recommend the 'Green Goddess' vegan moisturizer. It's a highly rated, eco-friendly product and is particularly effective for dry skin. Would you like to add this to your cart?",
"metadata": {
"system": {
"intent": "The subject is making a product recommendation and asking if the listener would like to add it to their cart."
}
},
"token_count": 40
}
Human: Great, that should work!
ZepMemory:
{
"uuid": "5ec6a546-eec9-4b9d-b03d-11b142600a0a",
"created_at": "2023-06-21T02:19:45.577522Z",
"role": "human",
"content": "Great, that should work!",
"metadata": {
"system": {
"intent": "None."
}
},
"token_count": 8
}
]
}
Почему извлечение намерений так важно?
Поскольку использование чат-ботов с искусственным интеллектом продолжает расти во всех сферах, необходимость в том, чтобы эти системы понимали намерения пользователей и реагировали на них должным образом, стала как никогда актуальной. Извлечение намерений помогает в этом:
- Улучшенный пользовательский опыт: Понимая намерения пользователя, системы искусственного интеллекта могут предоставлять релевантные и персонализированные ответы для повышения удовлетворенности пользователей.
- Упрощенное взаимодействие: Он помогает упростить диалог, определяя цели пользователя на ранних этапах общения.
- Повышенная эффективность: Точно распознав намерения пользователя, системы искусственного интеллекта могут начать выполнять действия от его имени (например, вызывать API, обновлять систему и т. д.), повышая тем самым общую эффективность этих систем.
практическое применение
Современные большие языковые модели очень мощны в плане понимания, рассуждений и выводов. Как же использовать возможности намерений в своих приложениях?
Давайте посмотрим, как приведенный выше пример может быть использован в реальной производственной среде:
Human intents that we captured in this conversation:
1: "The subject is expressing a need or want for a new skincare product."
2: "The subject is searching for a specific type of facial skincare product."
Теперь, когда мы знаем намерения, мы можем проанализировать, как клиенты вели подобные разговоры в прошлом, и использовать это для моделирования нескольких возможных способов взаимодействия с ними в будущем:
- Клиенты, искавшие средства по уходу за кожей в течение последних 7 дней
- Клиенты, искавшие средства по уходу за кожей лица в течение последнего месяца
- Клиенты, ищущие определенные типы продуктов в категории "Уход за кожей".
Таким образом, если мы хотим собрать всех клиентов, которые искали средства по уходу за кожей в течение последних семи дней, мы можем создать группу клиентов, в которую войдут все клиенты, отвечающие этим критериям.
# Use Zep SDK
search_results = await client.asearch_memory(
session_id=session_id,
search_payload=MemorySearchPayload(
metadata={
"start_date": "2023-06-02",
"end_date": "2023-06-09",
"where": {"jsonpath": "$[*]['metadata']['system']['intent'] == 'customers looking for skincare'"},
},
),
)
# You can also use Langchain
search_results = retriever.get_relevant_documents(
metadata={
"start_date": "2023-06-02",
"end_date": "2023-06-09",
"where": {"jsonpath": "$[*]['metadata']['system']['intent'] == 'customers looking for skincare'"},
},
)
Кроме того, вы можете продолжить этот анализ, чтобы оценить, сколько покупателей, намеревающихся приобрести увлажняющий крем для кожи, в итоге покупают его вместо другого, но родственного продукта (возможно, солнцезащитного крема). В итоге это может стать улучшением существующей клиентской базы или, возможно, создаст дополнительную клиентскую базу.
Каждый из этих сегментов клиентов может быть сопоставлен с путешествием Prompt, которое затем можно оптимизировать для персонализации пользователей, лояльности к бренду, согласованности ответов или других бизнес-результатов.
from langchain.prompts import PromptTemplate, StringPromptTemplate
from langchain.chains import LLMChain
...
prompt = """you are a helpful shopping assistant. Use the User preferences and Recommendations to write back responses based on the following rules:
1. If the user has preference for {user_pref} then suggest {recommend_sku} products.
2. Make a helpful {prompt_journey_append} suggestion.
"""
prompt_journey.prompt = prompt
...
#
# an example of how a prompt_journey may be used
# prompt_journey may be implemented as a structure that
# contains different prompts that can be used and chained together
# for different customer segments
#
if customer_segment.tag == "ecofriendly":
prompt_journey.type = customer_segment.type
prompt_journey.append("eco-friendly face cream")
prompt_journey.suggest_top(eco_sku)
elif customer_segment.tag == "newcustomer":
prompt_journey.append("face cream with built in sun-protection?)
prompt_journey.suggest_top(spf_facecream)
# Now you can use the chosen prompt
prompt = PromptTemplate.from_template(prompt_journey.prompt)
chain = LLMChain(llm=ChatOpenAI(), prompt=prompt)
chain.run(input=input)
Соответствующая автоматизированная система может постоянно проводить A/B-тестирование различных путей Prompt, основываясь на изученном намерении и том, как вы, возможно, хотите позиционировать продукт.
Теперь мы начинаем понимать силу намерения в классификации взаимодействия клиентов с продуктом и построении поездок Prompt, которые могут обеспечить более глубокий уровень персонализации этих взаимодействий.
будущее разведки
Что интересно в Intent, так это его потенциал для автономных интеллектов ИИ. Мы рады возможности сочетать глубокую персонализацию с рабочими процессами, которые могут запускать API или вызывать внешние системы на основе действий, определенных в диалоге. Intent также можно использовать для отладки шагов, обрезки ненужных циклов выполнения интеллекта и оптимизации быстрого выполнения интеллекта.
Понимание намерений лежит в основе интерпретируемости, точности и повторяемости этих систем. Эта область все еще находится в стадии становления, и мы видим, как команды быстро экспериментируют и внедряют инновации. Мы надеемся, что эта функция будет полезна для различных случаев использования.
Запуская Intent Extraction, мы стремимся сделать разговорный ИИ более личным, осмысленным и эффективным. Попробуйте его прямо сейчас и дайте нам знать, что вы думаете.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...