인텐트: zep는 빅 모델이 고객의 의도를 이해하도록 하는 방법을 설명합니다.

AI 기술 자료7개월 전 업데이트 AI 공유 서클
8.4K 00

자연어 처리(NLP)에서 의도는 사용자가 어떤 목적, 필요 또는 욕구를 표현하는 것을 의미합니다. 사용자가 보낸 메시지를 분석하고 그 뒤에 숨은 의도를 파악하여 관련 콘텐츠로 답장할 수 있습니다. 예를 들어 "음식 주문", "날씨 확인", "파리에 가고 싶어요"는 모두 유효한 인텐트입니다.

챗봇이 사용자의 의도를 정확하게 인식하기 위해서는 각 의도에 대한 이름과 예시 세트를 정의해야 합니다. 이름은 의도를 식별하는 데 사용되는 고유 레이블이며, 예시는 챗봇이 의도를 인식하도록 훈련하는 데 사용되는 샘플 발화입니다. 이름은 간결하고 명확하며 일관성이 있어야 하며, 예는 다양하고 일반적이며 포괄적인 것이어야 합니다. 예를 들어 "음식 주문"이라는 인텐트에 대해 다음과 같이 정의할 수 있습니다:

이름: 주문_음식
예시:

  • 피자를 주문하고 싶습니다.
  • 소고기 국수 한 그릇 주세요.
  • 전문 분야는 무엇인가요?

다양한 의도를 정의함으로써 챗봇이 여러 유형의 사용자 요청을 처리하고 다양한 시나리오에 따라 적절한 응답이나 조치를 제공할 수 있습니다. 예를 들어 사용자가 "파리에 가고 싶어"라고 입력하면 챗봇은 이를 '여행' 의도로 인식하고 사용자의 선호도와 예산에 따라 파리에 대한 정보와 제안을 제공할 수 있습니다. 이러한 방식으로 더 스마트하고 유연하며 사용자 친화적인 챗봇을 만들 수 있습니다.

 

의사 표현

Zep 의 인텐트 추출기는 메시지의 의도를 식별하여 메시지 메타데이터에 보존합니다. 💡 인텐트 데이터를 통해 개발자는 더욱 풍부하고 개인화된 스마트 바디 인터랙션을 구축할 수 있습니다. 🔥

자연어 처리(NLP) 분야에서는 인간 커뮤니케이션의 혼돈 속에서 의미를 추출하는 것이 어려울 수 있습니다. 오늘은 실시간 이해를 위해 더 깊은 가치를 제공하는 중요한 기능인 의도 추출을 소개하게 되어 기쁩니다.

사용자 의도를 이해하는 것은 모든 대화형 AI 시스템에서 의미 있고 개인화된 상호작용을 설계하는 초석입니다. 의도를 추출하는 것은 단순히 단어나 구를 인식하는 것이 아니라 주어진 맥락에서 사용자가 무엇을 의미하는지 이해하는 것입니다. 대규모 언어 모델(LLM) 애플리케이션의 개인화를 위해서는 대화 전반에 걸쳐 의도를 이해해야 합니다.

새로 출시된 기능입니다:의도 추출는 조직이 AI 기반 고객 상호작용을 활용할 수 있는 유용한 도구입니다.

 

인텐트 추출이란 무엇인가요?

의도 추출의 핵심은 사용자의 입력에서 사용자의 목표 또는 목적, 즉 무엇을 하고 싶은지를 인식하는 NLP 작업입니다. 예를 들어 사용자가 "신나는 음악 틀어줘"라고 말할 수 있습니다. 여기서 의도는 단순히 "음악 재생"이 아니라 음악의 유형인 "경쾌한"을 지정하는 것입니다.

 

사용 목적

기본적으로 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
}
]
}

 

인텐트 추출이 중요한 이유는 무엇인가요?

모든 영역에서 AI 챗봇의 사용이 계속 증가함에 따라 이러한 시스템이 사용자의 의도를 이해하고 적절하게 대응해야 할 필요성이 그 어느 때보다 중요해졌습니다. 인텐트 추출이 도움이 됩니다:

  • 향상된 사용자 경험: AI 시스템은 사용자의 의도를 이해함으로써 관련성 높은 개인 맞춤형 응답을 제공하여 사용자 만족도를 높일 수 있습니다.
  • 간소화된 상호 작용: 교환 초기에 사용자의 목표를 파악하여 대화를 단순화하는 데 도움이 됩니다.
  • 효율성 향상: AI 시스템은 사용자의 의도를 정확하게 인식함으로써 사용자를 대신하여 작업(예: 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일 동안 스킨케어 제품을 검색한 고객 수
  • 지난 한 달간 페이셜 스킨케어 제품을 검색한 고객 수
  • 스킨케어 카테고리에서 특정 유형의 제품을 찾는 고객

 

따라서 지난 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'"},
},
)

 

또한 이 분석을 계속하여 스킨케어 모이스처라이저를 구매할 의향이 있는 고객 중 얼마나 많은 고객이 다른 관련 제품(예: 자외선 차단제) 대신 모이스처라이저를 구매하게 되는지 평가할 수 있습니다. 이는 기존 고객층을 개선하거나 새로운 고객층을 확보할 수도 있습니다.

그런 다음 이러한 각 고객 세그먼트를 프롬프트 여정에 매핑하여 사용자 개인화, 브랜드 충성도, 응답 일관성 또는 기타 비즈니스 성과에 맞게 최적화할 수 있습니다.

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 테스트할 수 있습니다.

이제 고객이 제품과 상호작용하는 방식을 분류하고 프롬프트 여정을 구축하는 데 있어 의도의 힘을 확인할 수 있으며, 이러한 상호작용에서 보다 심층적인 수준의 개인화를 제공할 수 있습니다.

 

인텔리전스의 미래

인텐트의 흥미로운 점은 자율적인 AI 지능의 잠재력입니다. 대화에서 식별된 작업을 기반으로 API를 트리거하거나 외부 시스템을 호출할 수 있는 워크플로우와 심층적인 개인화를 결합할 수 있게 되어 기대가 큽니다. 또한 인텐트는 단계를 디버깅하고 불필요한 인텔리전스 실행 루프를 정리하며 빠른 인텔리전스 실행을 최적화하는 데에도 사용할 수 있습니다.

의도를 이해하는 것은 이러한 시스템에서 인간의 해석 가능성, 정확성 및 반복성의 핵심입니다. 이 분야는 아직 새롭게 떠오르는 분야이며 많은 팀들이 빠르게 실험하고 혁신하고 있습니다. 이 기능이 다양한 사용 사례에 유용하게 활용되기를 바랍니다.

의도 추출 기능의 출시로 대화형 AI를 더욱 개인적이고 의미 있고 효율적으로 만드는 것이 목표입니다. 지금 바로 사용해 보시고 의견을 알려주세요.

© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...