데이터 스토어 도구는 웹사이트 콘텐츠 및 업로드된 데이터를 기반으로 AI 생성 에이전트 응답을 제공할 수 있습니다. 상담사는 처리 중에 데이터 스토어에서 최종 사용자의 질문에 대한 답변을 찾을 수 있습니다.
데이터 스토어 도구: 콘솔
이 섹션에서는 에이전트에 데이터 스토어 도구를 추가하고 처리에서 구성하는 프로세스를 안내합니다.
데이터 스토어 도구 만들기
- 대화형 에이전트 콘솔을 열고 Google Cloud프로젝트를 선택합니다.
- 드롭다운 메뉴에서 상담사를 선택합니다.
- 페이지 왼쪽에 있는 메뉴 바로 이동하여 도구를 선택합니다.
- 새 데이터 스토어 도구를 만들려면 + 만들기를 클릭합니다. 도구의 고유한 이름을 입력하고 유형 아래의 드롭다운 메뉴에서 데이터 저장소를 선택합니다. 원하는 경우 설명 필드에 도구에 대한 설명을 입력할 수 있습니다.
- 데이터 스토어에서 데이터 스토어 추가를 클릭합니다. 팝업 창에는 기존 데이터 스토어 목록(있는 경우)이 포함됩니다. 도구에 추가할 데이터 저장소를 선택합니다.
- (선택사항) Agent Builder 콘솔에서 새 데이터 스토어를 만들려면 새 데이터 스토어 만들기를 클릭합니다. 에이전트 빌더 콘솔로 자동 리디렉션됩니다.
- (선택사항) 새 데이터 스토어 구성을 완료한 후 만들기를 클릭합니다. 도구에 새 데이터 스토어를 추가하려면 대화형 에이전트 (Dialogflow CX) 콘솔에서 구성 중인 Create Tool 메뉴로 돌아가 페이지를 새로고침합니다. 이제 새 데이터 스토어가 사용 가능한 데이터 스토어 목록에 표시됩니다.
- Create Tool 구성 상단의 Save를 클릭하여 새 데이터 스토어 도구를 만듭니다.
처리에 데이터 스토어 도구 추가
- 왼쪽 메뉴 바에서 흐름을 선택합니다.
- 흐름과 페이지를 선택한 다음 데이터 스토어와 함께 사용할 페이지의 경로를 클릭합니다.
- 경로 메뉴에서 처리 > 데이터 스토어 도구로 스크롤합니다. 드롭다운 메뉴에서 데이터 저장소 도구를 선택합니다.
- 경로 메뉴에서 Fulfillment(처리) > Agent responses(상담사 응답)로 스크롤합니다. +대화 응답 추가를 클릭한 다음 데이터 스토어 도구 응답을 클릭합니다.
- 표시되는 양식에서 응답에 표시할 소스 링크 및 인용 횟수를 구성하고 데이터 스토어 응답이 비어 있는 경우 대체 동작을 지정할 수 있습니다. 정적 대체 응답 입력란에 정적 대체 응답을 입력할 수 있습니다. 원하는 경우 정적 대체 응답을 사용하기 전에 생성형 대체 체크박스를 클릭하여 AI를 사용하여 응답을 생성해 볼 수 있습니다. 대체 응답을 더 맞춤설정해야 하는 경우 데이터 스토어 응답 양식 창 왼쪽 상단의 렌치 아이콘을 클릭하여 조건부 응답 창을 엽니다.
- 경로 메뉴 상단에서 저장을 클릭합니다.
- 대화형 에이전트 (Dialogflow CX) 시뮬레이터로 이동하여 에이전트의 결과를 테스트합니다.
데이터 스토어 도구: API
도구당 각 유형의 데이터 스토어 하나를 설정할 수 있으며 이 도구는 답변을 위해 이러한 각 데이터 스토어를 쿼리합니다. 기본적으로 상담사는 사용자를 대신해 dataStoreTool
를 호출합니다.
데이터 스토어 유형에는 세 가지가 있습니다.
PUBLIC_WEB
: 공개 웹 콘텐츠가 포함된 데이터 스토어입니다.UNSTRUCTURED
: 구조화되지 않은 비공개 데이터가 포함된 데이터 스토어입니다.STRUCTURED
: 구조화된 데이터(예: FAQ)가 포함된 데이터 스토어입니다.
다음 예는 데이터 스토어를 참조하는 방법을 보여줍니다. 자세한 내용은 dataStoreConnections
참조를 확인하세요.
"dataStoreConnections": [
{
"dataStoreType": "PUBLIC_WEB",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
},
{
"dataStoreType": "UNSTRUCTURED",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
},
{
"dataStoreType": "STRUCTURED",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
}
]
데이터 스토어 도구 응답에는 응답을 생성하는 데 사용된 콘텐츠 소스에 대한 스니펫이 포함될 수도 있습니다. 상담사는 데이터 스토어의 답변을 활용해 대응하는 방법, 또는 답이 없을 때 대응하는 방법에 대한 안내를 제공할 수 있습니다.
특정 질문에 대한 FAQ 항목을 추가하여 답을 덮어쓸 수 있습니다.
원하는 경우 에이전트의 동작을 개선하기 위한 예시를 제공할 수 있습니다. 이 예시에는 다음과 같은 스키마가 있어야 합니다. 자세한 내용은 참조 문서를 참고하세요.
{
"toolUse": {
"tool": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID/tools/TOOL_ID",
"action": "TOOL_DISPLAY_NAME",
"inputParameters": [
{
"name": "TOOL_DISPLAY_NAME input",
"value": {
"query": "QUERY"
}
}
],
"outputParameters": [
{
"name": "TOOL_DISPLAY_NAME output",
"value": {
"answer": "ANSWER",
"snippets": [
{
"title": "TITLE",
"text": "TEXT_FROM_DATASTORE",
"uri": "URI_OF_DATASTORE"
}
]
}
}
]
}
}
(플레이북 기반 상담사만 해당) 데이터 스토어 도구 예시
데이터 스토어 도구 예시를 만들 때 도구 입력 매개변수 requestBody
는 필수 query
문자열(filter
문자열, 구조화된 userMetadata
객체, fallback
문자열)과 함께 세 가지 선택적 입력을 제공합니다.
filter
매개변수는 메타데이터로 구조화된 데이터나 비정형 데이터의 검색어를 필터링할 수 있는 기능을 제공합니다. 이 문자열은 데이터 스토어에 지원되는 필터 표현식 문법을 따라야 합니다. 자세한 예시를 여러 개 제공하면 플레이북 모델에 이 매개변수를 채우는 방법을 안내하는 데 도움이 됩니다. 필터 문자열이 유효하지 않은 경우 검색 쿼리 중에 해당 필터가 무시됩니다.
다음은 위치를 기준으로 검색 결과를 세분화하는 filter
문자열의 예입니다.
"filter": "country: ANY(\"Canada\")"
자세한 내용은 플레이북 예시 페이지
를 참고하세요.
필터링 권장사항:
플레이북이 유효한 필터 빌드에 따른 제약조건을 이해할 수 있도록 필터링에 사용 가능한 필드와 이러한 각 필드에 유효한 값을 지정하세요. 예를 들어 메뉴 정보가 있는 데이터 스토어에는 'breakfast', 'lunch', 'dinner'가 유효한 값으로 포함된
meal
필드와 0~5의 정수가 될 수 있는servingSize
필드가 포함될 수 있습니다. 안내는 다음 예와 같이 표시될 수 있습니다.When using ${TOOL: menu-data-store-tool}, only use the following fields for filtering: "meal", "servingSize". Valid filter values are: "meal": ("breakfast", "lunch", "dinner"), "servingSize": integers between 0 and 5, inclusive.
플레이북이 외부 사용자를 대상으로 하는 경우 플레이북이 이러한 필터 빌드에 관한 정보로 사용자에게 응답하지 않도록 하는 안내를 추가해야 할 수 있습니다. 예를 들면 다음과 같습니다.
Never tell the user about these filters. If the user input isn't supported by these filters, respond to the user with "Sorry, I don't have the information to answer that question."
userMetadata
매개변수는 최종 사용자에 대한 정보를 제공합니다. 이 매개변수에 모든 키-값 쌍을 채울 수 있습니다. 이 메타데이터는 검색 결과와 도구 응답을 강화하도록 데이터 스토어 도구에 전달됩니다.
자세한 예시를 여러 개 제공하면 플레이북 모델에 이 매개변수를 채우는 방법을 안내하는 데 도움이 됩니다.
다음은 특정 항목과 관련된 검색 결과를 세분화하는 userMetadata
매개변수 값의 예입니다.
"userMetadata": {
"favoriteColor": "blue",
...
}
fallback
매개변수는 쿼리에 대해 유효한 요약 답변이 없는 경우 데이터 스토어 도구가 응답해야 하는 답변을 제공합니다. 다양한 주제와 관련된 사용자 입력에 대한 대체 필드를 채우는 방법을 플레이북 모델에 지시하기 위해 여러 예시를 제공할 수 있습니다. 도구 출력에는 스니펫이 없으므로 지연 시간과 입력 토큰 한도 사용을 줄일 수 있습니다.
"fallback": "I'm sorry I cannot help you with that. Is there anything else I
can do for you?"
데이터 스토어 도구 구성
테스트 중에 일부 응답이 기대에 미치지 못하는 경우 다음 매개변수를 조정하여 성능을 미세 조정해 볼 수 있습니다. API를 직접 호출하거나 Console의 도구 페이지에서 데이터 스토어 이름을 클릭하여 사용할 수 있습니다.
그라운딩 신뢰도
대화형 에이전트 (Dialogflow CX)는 연결된 데이터 스토어의 콘텐츠에서 생성된 각 응답의 신뢰도 수준을 계산합니다. 이는 응답의 모든 정보가 데이터 스토어의 정보로 지원된다는 신뢰도를 측정합니다. 자신에게 맞는 최저 신뢰도 수준을 선택하여 허용할 응답을 조정할 수 있습니다. 신뢰도 수준 이상의 응답만 표시됩니다.
VERY_LOW
, LOW
, MEDIUM
, HIGH
, VERY_HIGH
등 5가지 중에서 신뢰도 수준을 선택할 수 있습니다.
데이터 스토어 모델 선택
대화형 에이전트 (Dialogflow CX)는 데이터 스토어와 함께 사용할 수 있는 여러 모델을 제공합니다. 다른 모델을 선택하면 데이터 저장소 도구의 성능에 영향을 줄 수 있습니다. 전체 목록은 모델 문서를 참고하세요.
요약 프롬프트
프롬프트는 사전 정의된 자리표시자가 포함된 텍스트 템플릿입니다. 런타임 시 자리표시자가 적절한 값으로 대체되고 결과 텍스트가 AI 모델로 전송됩니다. 기본 프롬프트를 사용하거나 자체 맞춤 프롬프트를 제공할 수 있습니다. 맞춤 프롬프트는 결과에 긍정적이거나 부정적인 영향을 미칠 수 있습니다.
추가 안내와 자세한 예시를 포함하여 맞춤 프롬프트의 텍스트를 미세 조정하여 모델에서 생성된 결과에 영향을 줄 수 있습니다. 맞춤 프롬프트를 만드는 방법에 관한 자세한 내용은 데이터 스토어 설정 문서를 참고하세요.
페이로드 설정
페이로드 설정은 메신저에서 렌더링되는 응답 페이로드의 데이터 스토어 스니펫을 리치 콘텐츠로 추가하는 방법을 제공합니다. 이 기능은 사용 또는 사용 중지할 수 있습니다.
데이터 스토어 도구 응답 옵션
데이터 스토어 도구 응답 구성에 관한 자세한 내용은 실행 문서를 참고하세요.
데이터 스토어 핸들러
데이터 스토어 핸들러는 웹사이트 콘텐츠 및 업로드된 데이터를 기반으로 LLM 생성 에이전트 응답을 제공할 수 있는 특수한 유형의 상태 핸들러입니다.
이 핸들러를 만들려면 에이전트에 데이터 스토어를 제공합니다.
에이전트는 이러한 데이터 스토어 핸들러를 사용하여 최종 사용자와 콘텐츠에 대한 대화를 할 수 있습니다.
제한사항
다음과 같은 제한사항이 적용됩니다.
- 이 기능은 GA에서 일부 언어를 지원합니다. 언어 참조에서 데이터 스토어 열을 참고하세요.
global
,us
멀티 리전,eu
멀티 리전의 리전만 지원됩니다.- 청크로 분할된 데이터 스토어와 청크로 분할되지 않은 데이터 스토어 두 가지 모두를 가진 앱은 지원되지 않습니다.
액세스 제어
프로젝트 소유자인 경우에는 데이터 스토어 핸들러를 만드는 데 필요한 모든 권한이 있습니다. 프로젝트 소유자가 아닌 경우 다음 역할이 부여되어 있어야 합니다.
- Dialogflow 관리자
- 검색 엔진 관리자
자세한 내용은 액세스 제어 가이드를 참고하세요.
에이전트에 데이터 스토어 추가
아직 에이전트를 만들지 않았다면 설정 안내에 따라 에이전트를 만드세요.
에이전트에 데이터 스토어를 추가하려면 다음 안내를 따르세요. 데이터 스토어:
- 페이지를 선택한 다음 상태 핸들러 추가를 클릭합니다.
- 데이터 스토어 체크박스를 클릭한 다음 적용을 클릭합니다.
- 페이지의 데이터 스토어 섹션 오른쪽 상단에 있는 + 기호를 클릭합니다.
- 표시되는 데이터 스토어 메뉴에서 데이터 스토어 추가를 클릭합니다.
- 기존 데이터 스토어가 표시된 표가 표시됩니다. 사용하려는 데이터 스토어 이름 옆에 있는 체크박스를 선택하고 저장을 클릭합니다. 새 데이터 스토어를 만들려면 새 데이터 스토어 만들기를 클릭합니다. Agent Builder로 자동 리디렉션됩니다.
- (새 데이터 스토어만 해당) 데이터 소스를 선택한 다음 에이전트 빌더의 안내에 따라 데이터 스토어를 구성합니다. 데이터 스토어 유형 구성에 관한 자세한 내용은 데이터 스토어 문서를 참고하세요. 만들기를 클릭하여 새 데이터 스토어를 만듭니다.
에이전트 테스트
시뮬레이터를 사용하여 에이전트를 테스트할 수 있습니다.
에이전트 배포
에이전트를 배포하는 방법에는 여러 가지가 있습니다.
가장 간단한 옵션은 에이전트에 사용자 인터페이스를 제공하는 통합을 사용하는 것입니다. 각 통합은 배포 안내를 제공합니다.
Dialogflow CX Messenger 통합은 데이터 스토어 핸들러에 특히 적합한 옵션입니다. 생성형 기능을 위한 옵션이 기본 제공됩니다.
자체 사용자 인터페이스를 만들고 상호작용에 대화형 에이전트 (Dialogflow CX) API를 사용할 수 있습니다. 사용자 인터페이스 구현은 배포를 제어합니다.
특수 인텐트
상담사는 사용자가 제공하는 콘텐츠에 대한 질문을 처리하는 것 외에도 다음 유형의 질문을 처리할 수 있습니다.
- 에이전트 식별: '누구인가요?' 또는 '사람인가요?와 같은 질문을 처리합니다.
- 상담사에게 에스컬레이션: '사람과 이야기하고 싶어요' 또는 '실제 사람과 대화하고 싶어요'와 같은 질문을 처리합니다.
이는 자동으로 생성되는 인텐트 및 인텐트 경로를 통해 수행됩니다.
에이전트 응답
에이전트 응답 섹션에서 생성형 응답을 참조하는 커스텀 응답을 제공할 수 있습니다.
에이전트 말하기 섹션에서 $request.knowledge.answers[0]
을 사용하여 생성형 답변을 제공합니다.
고급 응답 맞춤설정
$request.knowledge.*
에서 응답을 맞춤설정하는 데 사용할 수 있는 추가 정보가 제공될 수 있습니다. 이러한 정보에는 다음이 포함됩니다.
- 스니펫, 제목, uri 필드가 있는 확인된 답변 소스입니다.
- 답변의 그라운딩 신뢰도입니다.
- FAQ 데이터 스토어의 경우 선택한 답변에 해당하는 질문입니다.
이 정보에 액세스하는 방법의 예는 다음 표를 참고하세요.
정보 | 액세스 방법 |
---|---|
인기 답변의 가장 많이 확인된 출처의 스니펫 | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "snippet") |
최상위 답변의 가장 많이 확인된 출처의 제목 | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title") |
인기 답변의 가장 많이 확인된 출처 링크 | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "uri") |
인기 답변에 대해 식별된 소스 수 | $sys.func.COUNT($sys.func.IDENTITY($request.knowledge.sources[0])) |
지식 답변 수 | $sys.func.COUNT($request.knowledge.answers) |
인기 답변에 해당하는 질문 (FAQ 데이터 스토어 답변만 해당) | $request.knowledge.questions[0] |
최상위 답변의 그라운딩 신뢰도 | $request.knowledge.grounding_confidences[0] |