데이터 스토어 도구

데이터 스토어 도구는 웹사이트 콘텐츠와 업로드된 데이터를 기반으로 AI 생성 에이전트 응답을 제공할 수 있습니다. 에이전트는 처리 중에 데이터 스토어에서 최종 사용자의 질문에 대한 답변을 찾을 수 있습니다.

데이터 스토어 도구: 콘솔

이 섹션에서는 에이전트에 데이터 스토어 도구를 추가하고 처리에서 구성하는 방법을 설명합니다.

데이터 스토어 도구 만들기

  1. 대화형 에이전트 콘솔을 열고 프로젝트를 선택합니다. Google Cloud
  2. 드롭다운 메뉴에서 에이전트를 선택합니다.
  3. 페이지 맨 왼쪽의 메뉴바로 이동하여 도구 를 선택합니다.
  4. + 만들기 를 클릭합니다. 도구의 고유한 이름 을 입력하고 유형 아래의 드롭다운 메뉴에서 데이터 스토어 를 선택합니다. 필요에 따라 설명 필드에 도구에 대한 설명을 입력합니다.
  5. 데이터 스토어 추가 를 클릭합니다. 표시되는 창에는 기존 데이터 스토어 목록이 포함되어 있습니다(있는 경우). 도구에 추가할 데이터 스토어를 선택합니다.
  6. (선택사항) Vertex AI Agent Builder 콘솔에서 새 데이터 스토어를 만들려면 새 데이터 스토어 만들기를 클릭하여 자동으로 리디렉션됩니다.
  7. (선택사항) 새 데이터 스토어를 구성한 후 만들기 를 클릭합니다. 새 데이터 스토어를 도구에 추가하려면 Dialogflow CX 콘솔의 도구 만들기 메뉴로 돌아가서 페이지를 새로고침합니다. 새 데이터 스토어가 사용 가능한 데이터 스토어 목록에 표시됩니다.
  8. 도구 만들기 구성 상단에서 저장 을 클릭하여 새 데이터 스토어 도구를 만듭니다.

처리에 데이터 스토어 도구 추가

  1. 맨 왼쪽의 메뉴바로 이동하여 흐름 을 선택합니다.
  2. 흐름과 페이지를 선택한 후 데이터 스토어와 함께 사용할 경로 를 클릭합니다.
  3. 처리 > 데이터 스토어 도구 로 이동하여 드롭다운 메뉴에서 데이터 스토어 도구를 선택합니다.
  4. **처리 > 에이전트 응답** 으로 이동하여 +대화 응답 추가를 클릭한 후 데이터 스토어 도구 응답을 클릭합니다.
  5. 응답에 표시할 소스 링크 및 인용 수치를 구성하고 데이터 스토어 응답이 비어 있는 경우 대체 동작을 지정합니다. 정적 대체 응답 필드에 정적 대체 응답을 입력합니다. 필요에 따라 대체 대답 생성 체크박스를 클릭하여 정적 대체 응답을 사용하기 전에 AI를 사용하여 응답을 생성합니다. 대체 응답을 맞춤설정하려면 데이터 스토어 응답 양식 창의 왼쪽 상단에 있는 렌치 아이콘을 클릭하여 조건부 응답 창을 엽니다.
  6. 경로 메뉴 상단에서 저장 을 클릭합니다.
  7. Dialogflow CX 시뮬레이터로 이동하여 에이전트의 결과를 테스트합니다.

선택적 쿼리 재정의 세션 매개변수

세션 매개변수 knowledge.overrides.query를 사용하여 이 데이터 스토어 도구에 전달된 쿼리를 재정의할 수 있습니다. 이 매개변수가 비어 있지 않으면 도구에서 사용자 쿼리 대신 이 매개변수를 사용합니다.

데이터 스토어 도구: 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를 직접 호출하거나 콘솔의 도구 페이지에서 데이터 스토어 이름을 클릭하여 사용할 수 있습니다. 이러한 구성 옵션에 대한 자세한 내용은 데이터 스토어 설정 페이지를 참조하세요.

데이터 스토어 도구 응답 옵션

데이터 스토어 도구 응답 구성에 대한 자세한 내용은 처리 문서를 참조하세요.

데이터 스토어 핸들러

데이터 스토어 핸들러는 웹사이트 콘텐츠 및 업로드된 데이터를 기반으로 LLM 생성 에이전트 응답을 제공할 수 있는 특수한 유형의 상태 핸들러입니다.

이 핸들러를 만들려면 에이전트에 데이터 스토어를 제공합니다.

에이전트는 이러한 데이터 스토어 핸들러를 사용하여 최종 사용자와 콘텐츠에 대한 대화를 할 수 있습니다.

제한사항

다음과 같은 제한사항이 적용됩니다.

액세스 제어

프로젝트 소유자인 경우에는 데이터 스토어 핸들러를 만드는 데 필요한 권한이 있습니다. 프로젝트 소유자가 아닌 경우 다음 역할이 부여되어 있어야 합니다.

  • Dialogflow 관리자
  • 검색 엔진 관리자

자세한 내용은 액세스 제어 가이드를 참조하세요.

에이전트에 데이터 스토어 추가

아직 수행하지 않은 경우 설정 안내에 따라 에이전트를 만듭니다.

에이전트에 데이터 스토어를 추가하려면 다음 안내를 따르세요.

  1. 페이지를 선택한 후 상태 핸들러 추가 를 클릭합니다.
  2. 데이터 스토어 체크박스를 선택한 후 적용 을 클릭합니다.
  3. 페이지의 데이터 스토어 섹션 오른쪽 상단에 있는 + 기호를 클릭합니다.
  4. 표시되는 데이터 스토어 메뉴에서 데이터 스토어 추가 를 클릭합니다.
  5. 기존 데이터 스토어를 나열하는 표가 표시됩니다. 사용할 데이터 스토어 이름 옆에 있는 체크박스를 선택한 후 저장 을 클릭합니다. 새 데이터 스토어를 만들려면 새 데이터 스토어 만들기 를 클릭합니다. Vertex AI Agent Builder로 자동 리디렉션됩니다.
  6. (새 데이터 스토어만 해당) 데이터 소스를 선택한 후 Vertex AI 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]