No Processamento de Linguagem Natural (PLN), a intenção refere-se à expressão de um usuário sobre algum propósito, desejo ou vontade. Ao analisar as mensagens enviadas pelo usuário e identificar a intenção por trás delas, podemos responder com conteúdo relevante. Por exemplo, "pedir comida", "verificar o clima", "quero ir a Paris" etc. são todas intenções válidas.
Para que o chatbot reconheça com precisão a intenção do usuário, precisamos definir um nome e um conjunto de exemplos para cada intenção. O nome é um rótulo exclusivo usado para identificar a intenção e os exemplos são exemplos de expressões usadas para treinar o chatbot a reconhecer a intenção. O nome deve ser conciso, claro e consistente, e os exemplos devem ser variados, típicos e abrangentes. Por exemplo, podemos definir o seguinte para a intenção "pedir comida":
Nome: order_food
Exemplo:
- Gostaria de pedir uma pizza.
- Uma tigela de macarrão com carne, por favor.
- Quais são suas especialidades?
Ao definir diferentes intenções, podemos permitir que os chatbots lidem com vários tipos de solicitações de usuários e forneçam respostas ou ações apropriadas com base em diferentes cenários. Por exemplo, se um usuário digitar "Quero ir a Paris", o chatbot poderá reconhecer isso como uma intenção de "viagem" e fornecer informações e sugestões para Paris com base nas preferências e no orçamento do usuário. Dessa forma, podemos criar um chatbot que seja mais inteligente, mais flexível e mais fácil de usar.
Apresentação de intenções
Zep identifica a intenção de uma mensagem e a mantém nos metadados da mensagem. Com os dados de intenção, os desenvolvedores podem criar interações mais ricas e personalizadas com corpos inteligentes. 🔥
No campo do Processamento de Linguagem Natural (NLP), extrair significado do caos da comunicação humana pode parecer assustador. Hoje, temos o prazer de apresentar um recurso importante, o Intent Extraction, que oferece um valor mais profundo para a compreensão em tempo real.
Entender a intenção do usuário é a pedra angular do projeto de interações significativas e personalizadas em qualquer sistema de IA conversacional. Extrair a intenção não se trata apenas de reconhecer palavras ou frases, mas de entender o que o usuário quer dizer em um determinado contexto. A personalização de aplicativos de Modelo de Linguagem Grande (LLM) requer a compreensão da intenção durante toda a conversa.
Nosso recurso recém-lançado:Extração de intençãouma ferramenta valiosa para que as organizações aproveitem as interações com os clientes orientadas por IA.
O que é a extração de intenção?
No centro da extração de intenção está uma tarefa de PNL que envolve o reconhecimento do objetivo ou da finalidade do usuário - o que ele deseja fazer - a partir de sua entrada. Por exemplo, um usuário pode dizer: "Play some upbeat music". A intenção aqui não é apenas "tocar música", mas especificar o tipo de música - "upbeat".
Intenção de uso
Por padrão, o Zep extrai automaticamente a intenção de cada mensagem, e você pode ativar ou desativar esse recurso editando o arquivo config.yaml:
...
extractors:
summarizer:
enabled: true
entities:
enabled: true
intent:
enabled: true
embeddings:
enabled: true
dimensions: 1536
model: "AdaEmbeddingV2"
...
Por padrão, todas as conversas conterão um metadado de "sistema" com uma "intenção" para cada mensagem armazenada no Zep.
Personalização orientada por intenção
O exemplo a seguir ilustra como a intenção pode ser combinada com as preferências do cliente para ajudar a promover interações personalizadas com os usuários em um ambiente de comércio eletrônico:
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
}
]
}
Por que a extração de intenção é tão importante?
Como o uso de chatbots com IA continua a crescer em todos os domínios, a necessidade de esses sistemas entenderem e responderem adequadamente à intenção do usuário tornou-se mais importante do que nunca. A extração de intenção ajuda:
- Experiência aprimorada do usuário: Ao compreender a intenção do usuário, os sistemas de IA podem fornecer respostas relevantes e personalizadas para aumentar a satisfação do usuário.
- Interação simplificada: Isso ajuda a simplificar o diálogo, identificando os objetivos do usuário no início da troca.
- Aumento da eficiência: Ao reconhecer com precisão a intenção do usuário, os sistemas de IA podem começar a executar ações em nome do usuário (por exemplo, chamar APIs, atualizar o sistema etc.), melhorando assim a eficiência geral desses sistemas.
aplicação prática
Os grandes modelos de linguagem atuais são muito poderosos em termos de compreensão, raciocínio e inferência. Então, como você pode aproveitar o poder da intenção em seus aplicativos?
Vamos ver como o exemplo acima pode ser usado em um ambiente de produção real:
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."
Agora que sabemos a intenção, podemos analisar como os clientes tiveram essas conversas no passado e usá-las para modelar várias maneiras possíveis de interagir com eles no futuro:
- Clientes que procuraram produtos de cuidados com a pele nos últimos 7 dias
- Clientes que pesquisaram produtos de cuidados com a pele facial no último mês
- Clientes que procuram tipos específicos de produtos na categoria de cuidados com a pele
Portanto, se quisermos reunir todos os clientes que procuraram produtos para a pele nos últimos sete dias, podemos criar um grupo de clientes que inclua todos os clientes que pretendem atender a esses critérios.
# 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'"},
},
)
Além disso, você pode continuar essa análise para avaliar quantos clientes com a intenção de comprar um hidratante para a pele acabam comprando-o em vez de um produto diferente, mas relacionado (talvez um protetor solar). Isso pode acabar sendo uma melhoria na base de clientes existente ou talvez uma base de clientes adicional.
Cada um desses segmentos de clientes pode então ser mapeado para uma jornada do Prompt, que pode ser otimizada para personalização do usuário, fidelidade à marca, consistência de resposta ou outros resultados comerciais.
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)
Um sistema automatizado relevante pode testar continuamente diferentes caminhos de Prompt A/B com base na intenção aprendida e em como você pode querer posicionar o produto.
Agora podemos começar a ver o poder da intenção na categorização de como os clientes interagem com um produto e na criação de jornadas do Prompt, que podem proporcionar um nível mais profundo de personalização nessas interações.
futuro da inteligência
O que é interessante sobre o Intent é seu potencial para inteligências de IA autônomas. Estamos entusiasmados em combinar a personalização profunda com fluxos de trabalho que podem acionar APIs ou chamar sistemas externos com base em ações identificadas no diálogo. O Intent também pode ser usado para etapas de depuração, poda de loops de execução de inteligência desnecessários e otimização da execução rápida da inteligência.
A compreensão da intenção é o cerne da interpretabilidade humana, da precisão e da repetibilidade desses sistemas. Esse ainda é um campo emergente e estamos vendo equipes experimentando e inovando rapidamente. Esperamos que esse recurso seja útil para uma variedade de casos de uso.
Com o lançamento da Intent Extraction, nosso objetivo é tornar a IA de conversação mais pessoal, significativa e eficiente. Experimente agora e diga-nos o que você achou.