Gemini AI 채팅 앱의 채팅 대화를 기반으로 질문에 답변하기

이 튜토리얼에서는 질문에 대답하는 Google Chat 앱을 만드는 방법을 보여줍니다. 생성형 AI 기능으로 Chat 스페이스의 대화를 기반으로 한 Vertex AI 및 Gemini로 구동되는 AI입니다. Chat 앱은 Google Workspace Events API와 Pub/Sub를 사용하여 질문을 인식하고 답변 채팅 스페이스에 실시간으로 게시될 수 있으며 언급되지 않았습니다.

Chat 앱은 스페이스에서 전송된 모든 메시지를 데이터 소스 및 기술 자료입니다. 누군가가 질문을 하면 채팅 앱이 이전에 공유된 답변을 확인한 다음 공유할 수 있습니다. 답변을 찾을 수 없는 경우 응답할 수 없다는 메시지가 표시됩니다. 각 답변에서 사용자는 액세서리 작업 버튼을 클릭하여 스페이스 관리자를 @멘션하고 물어볼 수 있습니다. 문의하세요. Google Chat 앱은 Gemini AI를 사용하여 스페이스에서 대화를 지속적으로 학습하면서 기술 자료 확장 정의합니다.

직원 온보딩 시 채팅 앱이 작동하는 방식 지원 공간:

  • AI 지식 어시스턴트 앱을 언급하면 앱이 스페이스에 추가됩니다.
    그림 1. 찰리는 Chat 스페이스에 AI 지식 어시스턴트 채팅 앱을 추가합니다.
  • 진아가 질문합니다.
    그림 2. 진아가 회사에서 강연 교육을 제공하는지 묻습니다.
  • AI 지식 어시스턴트 채팅 앱이 질문에 답합니다.
    그림 3. AI 지식 어시스턴트 채팅 앱은 Chat 스페이스의 대화 기록을 토대로 진아의 질문에 답변하도록 Gemini를 지원하는 Vertex AI에 프롬프트를 표시하며 그 답을 공유합니다.

기본 요건

목표

  • 생성형 AI를 사용하여 다음을 수행하는 채팅 앱 빌드 Chat 스페이스에서 공유된 지식을 바탕으로 질문에 답변 있습니다.
  • 생성형 AI를 사용하면 다음과 같은 이점이 있습니다. <ph type="x-smartling-placeholder">
      </ph>
    • 직원의 질문을 감지하고 답변합니다.
    • Chat에서 진행 중인 대화를 통해 지속적으로 학습 있습니다.
  • 실시간으로 Chat 스페이스에서 메시지를 듣고 답장하세요 채팅 앱이 직접 연결되지 않은 상황에서도 있습니다.
  • Firestore 데이터베이스에 쓰고, 읽어서 메시지를 유지합니다.
  • 스페이스를 멘션하여 Chat 스페이스에서 공동작업 촉진하기 매니저에게 연락을 취합니다.

아키텍처

다음 다이어그램은 Google Workspace 및 AI 지식 어시스턴트가 사용하는 Google Cloud 리소스 채팅 앱

AI 지식 어시스턴트 채팅 앱의 아키텍처 다이어그램

AI 지식 어시스턴트 채팅 앱은 다음과 같이 작동합니다.

  • 사용자가 AI 지식 어시스턴트 채팅 앱을 추가합니다. Chat 스페이스에 추가하려면 다음 안내를 따르세요.

    1. 채팅 앱에서 구성을 위해 Chat 스페이스에 추가한 사용자입니다. 사용할 수 있습니다

    2. Chat 앱은 다음과 같은 방법으로 스페이스의 메시지를 가져옵니다. Chat API에서 spaces.messages.list 메서드 호출 가져온 메시지를 Firestore 데이터베이스에 저장합니다

    3. 채팅 앱에서는 Google Workspace Events API의 subscriptions.create 메서드를 사용하여 시작합니다. 스페이스의 메시지와 같은 이벤트를 리슨합니다. 이 구독의 알림 엔드포인트는 이벤트를 Chat 앱에 전달하는 Eventarc입니다.

    4. 채팅 앱은 있습니다.

  • Chat 스페이스의 사용자가 다음 메시지를 게시합니다.

    1. 채팅 앱이 메시지를 실시간으로 수신합니다. 삭제하겠습니다

    2. 채팅 앱이 Firestore에 메시지 추가 데이터베이스입니다.

      나중에 사용자가 메일을 수정하거나 삭제하면 채팅 앱이 업데이트되거나 삭제된 이벤트를 수신함 실시간으로 처리한 다음 Firestore에서 메시지를 업데이트하거나 삭제합니다 데이터베이스입니다.

    3. 채팅 앱이 Vertex AI로 메시지를 전송합니다. Gemini를 활용해 보세요

      1. 프롬프트는 Gemini를 사용하는 Vertex AI에 메시지가 질문이 포함됩니다. 대답하면 Gemini가 Firestore에 저장된 Chat 스페이스의 메시지 기록 Google Chat 앱에서 Chat 스페이스. 응답이 없는 경우 응답하지 않습니다.

      2. Gemini를 사용하는 Vertex AI가 질문에 답하면 채팅 앱이 spaces.messages.create 메서드를 호출하여 응답을 확인할 수 있습니다. 앱 인증을 사용하는 Chat API

        Gemini를 사용하는 Vertex AI가 질문에 답변할 수 없는 경우 채팅 앱이 해당 질문에 대한 답변을 찾을 수 없다는 메시지가 Chat 스페이스의 기록

        메시지에는 항상 사용자가 사용할 수 있는 액세서리 작업 버튼이 포함됩니다. 클릭하면 채팅 앱이 스페이스 관리자를 @멘션하여 답변을 요청합니다.

  • 채팅 앱은 다음에서 수명 주기 알림을 수신합니다. Google Workspace Events API는 만료가 임박했습니다.

    1. Chat 앱은 다음에서 subscriptions.patch 메서드를 호출하여 정기 결제를 신청할 수 있습니다. Google Workspace Events API.
  • 채팅 앱이 Chat에서 삭제됨 스페이스:

    1. 채팅 앱이 다음과 같은 방법으로 구독을 삭제합니다. subscriptions.delete 메서드를 호출하여 Google Workspace Events API.

    2. 채팅 앱이 Chat을 삭제함 Cloud Storage의 데이터를 저장하는 것입니다

AI 지식 어시스턴트 채팅 앱에서 사용하는 제품 검토

AI 지식 어시스턴트 채팅 앱은 다음과 같은 Google Workspace 및 Google Cloud 제품을 확인할 수 있습니다

  • Vertex AI API 및 Gemini: Gemini 기반 생성형 AI 플랫폼입니다. AI 지식 어시스턴트 Chat 앱이 Gemini와 함께 Vertex AI API를 사용하여 다음을 수행합니다. 직원의 질문을 인식, 이해 및 답변할 수 있습니다.
  • Chat API: 다음을 수신하고 응답하는 Google Chat 앱을 개발하기 위한 API입니다. 채팅 상호작용 이벤트(예: 메시지) AI 지식 어시스턴트 채팅 앱은 Chat API를 사용하여 다음을 수행합니다. <ph type="x-smartling-placeholder">
      </ph>
    • Chat에서 보낸 상호작용 이벤트를 수신하고 이에 응답합니다.
    • 스페이스에서 보낸 메시지를 나열합니다.
    • 스페이스에 사용자 질문에 대한 답변을 게시합니다.
    • 표시되는 방식을 결정하는 속성 구성 채팅(예: 이름 및 아바타 이미지)
  • Google Workspace Events API: 이 API를 사용하면 이벤트를 구독하고 Google Workspace 애플리케이션에서 알림 변경 이 AI 지식 어시스턴트 채팅 앱은 Google Workspace Events API를 사용하여 Chat 스페이스는 언급되지 않았습니다.
  • Firestore: 서버리스 문서 데이터베이스입니다. AI 지식 어시스턴트 채팅 앱이 Firestore를 사용하여 메시지에 대한 데이터 저장 채팅 스페이스에서 전송됩니다.
  • Pub/Sub: Pub/Sub는 비동기적이고 확장 가능한 메시징 서비스로 이러한 메시지를 처리하는 서비스로부터 메시지를 생성하는 서비스 이 AI 지식 어시스턴트 채팅 앱은 Chat 스페이스에서 구독 이벤트를 수신합니다.
  • Eventarc: Eventarc를 사용하면 별도의 작업 없이도 이벤트 기반 아키텍처를 기본 인프라를 구현, 맞춤설정 또는 유지 관리할 수 있습니다. AI 지식 어시스턴트 채팅 앱은 Eventarc를 사용하여 Pub/Sub에서 Chat 스페이스로 이벤트를 라우팅하고 구독 이벤트를 수신하고 처리하는 Cloud 함수입니다.
  • Cloud Functions: 간단한 서버리스 컴퓨팅 서비스로, Chat에 응답할 수 있는 단일 목적의 독립형 기능 서버나 런타임을 관리할 필요 없이 상호작용 및 구독 이벤트를 환경입니다 AI 지식 어시스턴트 Chat 앱 는 <ph type="x-smartling-placeholder">
      </ph>
    • app: Chat이 보내는 HTTP 엔드포인트를 호스팅합니다. 상호작용 이벤트를 처리하거나 이러한 이벤트에 응답합니다.
    • eventsApp: Chat 스페이스를 수신하고 처리합니다. Pub/Sub 구독의 메시지와 같은 이벤트에 가장 적합합니다
    를 통해 개인정보처리방침을 정의할 수 있습니다. Cloud Functions는 다음과 같은 Google Cloud 제품을 사용하여 호스트 컴퓨팅 리소스: <ph type="x-smartling-placeholder">
      </ph>
    • Cloud Build: 완전 관리형 지속적 통합, 배포, 배포 플랫폼 실행할 수도 있습니다
    • Cloud Run: 컨테이너화된 앱 실행을 위한 완전 관리형 환경입니다.

환경 준비

이 섹션에서는 Google Cloud 프로젝트를 만들고 구성하는 방법을 보여줍니다. 채팅 앱

Google Cloud 프로젝트 만들기

Google Cloud 콘솔

  1. Google Cloud 콘솔에서 메뉴 로 이동합니다. &gt; IAM 및 관리자 &gt; 프로젝트 만들기를 클릭합니다.

    프로젝트 만들기로 이동

  2. 프로젝트 이름 필드에 프로젝트를 설명하는 이름을 입력합니다.

    선택사항: 프로젝트 ID를 수정하려면 수정을 클릭합니다. 프로젝트 ID는 변경할 수 없습니다. 따라서 수명 주기 동안 필요에 맞는 ID를 선택하세요. 살펴보겠습니다

  3. 위치 입력란에서 찾아보기를 클릭하여 내 비즈니스의 예상 위치를 표시합니다. 살펴보겠습니다 그런 다음 선택을 클릭합니다. <ph type="x-smartling-placeholder">
  4. 만들기를 클릭합니다. Google Cloud 콘솔이 대시보드 페이지로 이동하고 프로젝트가 생성됩니다. 몇 분 이내에 다시 시작할 수 있습니다.

gcloud CLI

다음 개발 환경 중 하나에서 Google Cloud CLI (`gcloud`):

  • Cloud Shell: gcloud CLI로 온라인 터미널 사용 설정되어 있다면 Cloud Shell을 활성화합니다
    Cloud Shell 활성화
  • 로컬 셸: 로컬 개발 환경을 사용하려면 install초기화 gcloud CLI에 연결할 수 있습니다
    Cloud 프로젝트를 만들려면 `gcloud projects create`명령어를 사용합니다.
    gcloud projects create PROJECT_ID
    만들려는 프로젝트의 ID를 설정하여 PROJECT_ID를 바꿉니다.

Cloud 프로젝트에 결제 사용 설정

<ph type="x-smartling-placeholder">

Google Cloud 콘솔

  1. Google Cloud 콘솔에서 결제로 이동합니다. 클릭 메뉴 &gt; 결제 &gt; 내 프로젝트를 클릭합니다.

    내 프로젝트의 결제로 이동

  2. 조직 선택에서 Google Cloud 프로젝트에 액세스할 수 있습니다
  3. 프로젝트 행에서 작업 메뉴를 엽니다. (), 결제 변경을 클릭하고 Cloud Billing 계정
  4. 계정 설정을 클릭합니다.

gcloud CLI

  1. 사용 가능한 결제 계정을 나열하려면 다음을 실행합니다.
    gcloud billing accounts list
  2. 결제 계정을 Google Cloud 프로젝트에 연결합니다.
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    다음을 바꿉니다.

    • PROJECT_ID는 다음 프로젝트의 프로젝트 ID입니다. 결제를 사용 설정할 Cloud 프로젝트입니다.
    • BILLING_ACCOUNT_ID는 연결할 결제 계정 ID입니다. Google Cloud 프로젝트입니다

API 사용 설정

Google Cloud 콘솔

  1. Google Cloud 콘솔에서 Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API Pub/Sub API, Google Workspace Events API, Eventarc API Cloud Run Admin API가 포함됩니다

    API 사용 설정

  2. 올바른 Cloud 프로젝트에서 선택한 후 다음을 클릭합니다.

  3. 올바른 API를 사용 설정했는지 확인한 다음 사용 설정을 클릭합니다.

gcloud CLI

  1. 필요한 경우 현재 Cloud 프로젝트를 만든 날짜:

    gcloud config set project PROJECT_ID
    

    PROJECT_ID프로젝트 ID로 Cloud 프로젝트입니다

  2. Google Chat API, Vertex AI API, Cloud Functions API를 사용 설정합니다. Firestore API, Cloud Build API, Pub/Sub API Google Workspace Events API, Eventarc API, Cloud Run 관리자 API:

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    workspaceevents.googleapis.com \
    eventarc.googleapis.com \
    run.googleapis.com
    

인증 및 승인 설정

인증 및 승인을 통해 Google Workspace의 채팅 앱 액세스 리소스 Google Cloud

이 튜토리얼에서는 Google Chat 앱을 내부적으로 게시하여 자리표시자 정보를 사용해도 됩니다. 외부 Google Chat 앱 사용 시 자리표시자 정보를 다음으로 대체 동의 화면에 실제 정보를 표시합니다.

  1. Google Cloud 콘솔에서 다음으로 이동합니다. 메뉴 &gt; API 및 서비스 &gt; OAuth 동의 화면으로 이동합니다.

    OAuth 동의 화면으로 이동

  2. 사용자 유형에서 내부를 선택한 다음 만들기를 클릭합니다.

  3. 앱 이름AI knowledge assistant를 입력합니다.

  4. 사용자 지원 이메일에서 내 이메일 주소 또는 적절한 주소를 선택합니다. Google 그룹

  5. 개발자 연락처 정보에 이메일 주소를 입력합니다.

  6. 저장하고 계속하기를 클릭합니다.

  7. 범위 추가 또는 삭제를 클릭합니다. 범위 목록이 포함된 패널이 표시됨 .

  8. 수동으로 범위 추가에서 다음 범위를 붙여넣습니다.

    • https://www.googleapis.com/auth/chat.messages
  9. 테이블에 추가를 클릭합니다.

  10. Update를 클릭합니다.

  11. 저장하고 계속하기를 클릭합니다.

  12. 앱 등록 요약을 검토한 후 대시보드로 돌아가기를 클릭합니다.

OAuth 클라이언트 ID 사용자 인증 정보 만들기

  1. Google Cloud 콘솔에서 다음으로 이동합니다. 메뉴 &gt; API 및 서비스 &gt; 사용자 인증 정보를 선택합니다.

    사용자 인증 정보로 이동

  2. 사용자 인증 정보 만들기를 클릭합니다. &gt; OAuth 클라이언트 ID로 이동합니다.

  3. 애플리케이션 유형을 클릭합니다. &gt; 웹 애플리케이션으로 이동합니다.

  4. 이름 필드에 사용자 인증 정보의 이름을 입력합니다. 이 이름은 Google Cloud 콘솔에 표시됩니다

  5. 승인된 리디렉션 URI에서 URI 추가를 클릭합니다.

  6. URI 1에 다음을 입력합니다.

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    다음을 바꿉니다.

    • REGION: Cloud 함수의 리전입니다(예: us-central1). 나중에 두 개의 Cloud Functions를 만들 때 이 값으로 설정합니다.
    • PROJECT_ID: Cloud 프로젝트의 프로젝트 ID입니다. 확인할 수 있습니다
  7. 만들기를 클릭합니다.

  8. OAuth 클라이언트가 생성됨 창에서 JSON 다운로드를 클릭합니다.

  9. 다운로드한 파일을 client_secrets.json로 저장합니다. 나중에 두 Cloud Functions에 대해 각각 client_secrets.json 파일을 포함합니다. 배포할 수 있습니다

  10. 확인을 클릭합니다.

Pub/Sub 주제 만들기

Pub/Sub 주제는 Chat의 이벤트를 구독하는 Google Workspace Events API 메시지 같은 스페이스를 만들고 실제로 Chat 앱에 알릴 수 있습니다 있습니다.

Pub/Sub 주제를 만드는 방법은 다음과 같습니다.

Google Cloud 콘솔

  1. Google Cloud 콘솔에서 다음으로 이동합니다. 메뉴 &gt; Pub/Sub로 이동합니다.

    Pub/Sub로 이동

  2. 주제 만들기를 클릭합니다.

  3. 주제 IDevents-api를 입력합니다.

  4. 기본 구독 추가를 선택 해제합니다.

  5. 암호화에서 Google 관리 암호화 키를 선택합니다.

  6. 만들기를 클릭합니다. Pub/Sub 주제가 표시됩니다.

  7. 이 Pub/Sub 주제 및 Google Workspace Events API가 작동하도록 하기 채팅 IAM 사용자에게 살펴보겠습니다

    1. events-api 패널의 권한 아래에서 주 구성원 추가

    2. 주 구성원 추가에서 새 주 구성원에 다음을 입력합니다. chat-api-push@system.gserviceaccount.com입니다.

    3. 역할 할당역할 선택에서 Pub/Sub를 선택합니다. &gt; Pub/Sub 게시자로 이동합니다.

    4. 저장을 클릭합니다.

gcloud CLI

  1. 주제 ID가 events-api인 Pub/Sub 주제를 만듭니다.

    gcloud pubsub topics create events-api
    
  2. Chat IAM 사용자에게 게시할 권한 부여 살펴보겠습니다

    gcloud pubsub topics add-iam-policy-binding events-api \
    --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \
    --role='roles/pubsub.publisher'
    

Firestore 데이터베이스 만들기

유지 및 검색할 Firestore 데이터베이스 Chat 공간의 데이터(예: 메시지) 데이터를 정의하지 않음 model/message.js에 의해 샘플 코드에서 암시적으로 설정됩니다. 파일 services/firestore-service.js개.

AI 지식 어시스턴트 채팅 앱 데이터베이스는 기반이 되는 NoSQL 데이터 모델 문서 개 구성 방식 컬렉션을 비교할 수 있습니다. 자세한 내용은 Firestore 데이터 모델.

다음 다이어그램은 AI 지식 어시스턴트의 개요입니다. 채팅 앱의 데이터 모델:

Firestore 데이터베이스의 데이터 모델입니다.

루트에는 두 개의 컬렉션이 있습니다.

  1. spaces - 여기서 각 문서는 해당 Chat 공간을 나타냅니다. 채팅 앱이 추가됩니다. 각 메시지는 messages 하위 컬렉션의 문서로 표현됩니다.

  2. users, 여기서 각 문서는 Chat 앱을 Chat 스페이스로

컬렉션, 문서, 필드 정의 보기

spaces

AI 지식 어시스턴트 채팅 앱이 포함된 Chat 스페이스

필드
Document IDString
특정 스페이스의 고유 ID입니다. Chat API에서 스페이스 리소스 이름의 일부입니다.
messagesSubcollection of Documents (messages)
Chat 스페이스에서 전송된 메시지 Firebase에서 messageDocument ID에 해당합니다.
spaceNameString
Chat API에서 스페이스의 고유한 이름입니다. Chat API의 스페이스 리소스 이름에 해당합니다.

messages

Chat 스페이스에서 전송된 메시지

필드
Document IDString
특정 메시지의 고유 ID입니다.
nameString
Chat API 메시지의 고유한 이름입니다. Chat API의 메시지 리소스 이름에 해당합니다.
textString
메일의 텍스트 본문입니다.
timeString (Timestamp format)
메시지가 생성된 시간입니다.

users

AI 지식 어시스턴트 채팅 앱을 Chat 스페이스에 추가한 사용자입니다.

필드
Document IDString
특정 사용자의 고유 ID입니다.
accessTokenString
OAuth 2.0 사용자 승인 중에 부여되는 액세스 토큰으로, Google Workspace API를 호출하는 데 사용됩니다.
refreshTokenString
OAuth 2.0 사용자 승인 중에 부여되는 갱신 토큰입니다.

Firestore 데이터베이스를 만드는 방법은 다음과 같습니다.

Google Cloud 콘솔

  1. Google Cloud 콘솔에서 다음으로 이동합니다. 메뉴 &gt; Firestore

    Firestore로 이동

  2. 데이터베이스 만들기를 클릭합니다.

  3. Firestore 모드 선택에서 Native 모드를 클릭합니다.

  4. 계속을 클릭합니다.

  5. 데이터베이스를 구성합니다.

    1. 데이터베이스 이름 지정에서 데이터베이스 ID(default)로 둡니다.

    2. 위치 유형에서 리전을 선택합니다.

    3. 리전에서 데이터베이스의 리전을 지정합니다(예: us-central1입니다. 최상의 성능을 위해 동일하거나 가까운 옵션을 선택하세요. 채팅 앱의 Cloud Functions로 사용합니다.

  6. 데이터베이스 만들기를 클릭합니다.

gcloud CLI

  • 기본 모드로 Firestore 데이터베이스를 만듭니다.

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native
    

    LOCATIONFirestore의 이름으로 바꿉니다. 리전(예: us-central1 형식으로. 최상의 성능을 위해 동일하거나 가까운 옵션을 선택하세요. 채팅 앱의 Cloud Functions로 사용합니다.

채팅 앱 만들기 및 배포

이제 Google Cloud 프로젝트를 만들고 구성했으므로 빌드할 수 있습니다. 채팅 앱을 배포합니다 이 섹션에서는 있습니다.

  1. Cloud Functions 두 개를 만들고 배포합니다. Chat에 응답해야 할 사람 1명 하나는 Pub/Sub 이벤트에 응답하는 이벤트입니다
  2. Google Chat API에서 채팅 앱 만들기 및 배포 구성 페이지로 이동합니다

Cloud Functions 만들기 및 배포

이 섹션에서는 이름이 다음과 같은 두 개의 Cloud Functions를 만들고 배포합니다.

  • app: 채팅 앱의 Chat에서 HTTP로 수신된 이벤트에 응답하는 코드 요청을 처리합니다
  • eventsApp: Chat 스페이스를 수신하고 처리 Pub/Sub의 메시지와 같은 이벤트를 예로 들 수 있습니다

이러한 Cloud Functions가 모여 AI 지식 어시스턴트 채팅 앱의 애플리케이션 로직

원하는 경우 Cloud Functions를 만들기 전에 잠시 시간을 내어 GitHub에 호스팅된 샘플 코드에 익숙해지세요.

GitHub에서 보기

app 생성 및 배포

Google Cloud 콘솔

  1. GitHub에서 코드를 ZIP 파일로 다운로드합니다.

    zip 파일 다운로드

  2. 다운로드한 zip 파일의 압축을 풉니다.

    추출된 폴더에는 전체 Google Workspace 샘플이 포함되어 있습니다. 저장소

  3. 추출된 폴더에서 google-chat-samples-main/node/ai-knowledge-assistant 디렉터리에 있습니다.

  4. google-chat-samples/node/ai-knowledge-assistant 디렉터리에서 다운로드 시 다운로드한 client_secrets.json 파일을 추가합니다. OAuth 클라이언트 ID 사용자 인증 정보 생성됨 사용할 수 있습니다

  5. ai-knowledge-assistant 폴더의 콘텐츠를 ZIP 파일로 압축합니다. 파일에서 참조됩니다.

    ZIP 파일의 루트 디렉터리에는 파일 및 폴더:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • client_secrets.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. Google Cloud 콘솔에서 다음으로 이동합니다. 메뉴 &gt; Cloud Functions로 이동합니다.

    Cloud Functions로 이동

    프로젝트의 Google Cloud 프로젝트가 채팅 앱이 선택되었습니다.

  7. 함수 만들기를 클릭합니다.

  8. 함수 만들기 페이지에서 함수를 설정합니다.

    1. 환경에서 2세대를 선택합니다.
    2. 함수 이름app를 입력합니다.
    3. 리전에서 리전(예: us-central1)을 선택합니다. 이 지역 는 나 OAuth 클라이언트 ID 사용자 인증 정보 생성됨 사용할 수 있습니다
    4. 트리거 유형에서 HTTPS를 선택합니다.
    5. 인증에서 다음을 선택합니다. 인증되지 않은 호출을 허용합니다.
    6. 다음을 클릭합니다.
  9. 런타임에서 Node.js 20을 선택합니다.

  10. 진입점에서 기본 텍스트를 삭제하고 다음을 입력합니다. app입니다.

  11. 소스 코드에서 Zip 업로드를 선택합니다.

  12. 대상 버킷에서 만들기 또는 버킷을 선택합니다.

    1. 탐색을 클릭합니다.
    2. 버킷을 선택합니다.
    3. 선택을 클릭합니다.

    Google Cloud가 ZIP 파일을 구성요소 파일에 업로드하고 이를 추출합니다. 이 버킷에 들어갑니다 그러면 Cloud Functions가 구성요소 파일을 살펴보겠습니다

  13. Zip 파일에 GitHub에서 다운로드한 ZIP 파일을 업로드합니다. 다시 압축됩니다.

    1. 탐색을 클릭합니다.
    2. ZIP 파일로 이동하여 선택합니다.
    3. 열기를 클릭합니다.
  14. 배포를 클릭합니다.

    Cloud Functions 세부정보 페이지가 열리고 함수가 표시됩니다. 두 개의 진행률 표시기가 있습니다. 하나는 빌드이고 다른 하나는 서비스입니다. 두 진행률 표시기가 모두 사라지고 체크표시로 바뀐 경우 함수가 배포되고 준비되었습니다.

  15. 샘플 코드를 수정하여 상수를 설정합니다.

    1. Cloud 함수 세부정보 페이지에서 수정을 클릭합니다.
    2. 다음을 클릭합니다.
    3. 소스 코드에서 인라인 편집기를 선택합니다.
    4. 인라인 편집기에서 env.js 파일을 열고 수정합니다. <ph type="x-smartling-placeholder">
        </ph>
      1. project의 값을 다음으로 설정합니다. Cloud 프로젝트 ID입니다.
      2. location의 값을 Cloud 함수의 region, (예: us-central1)
  16. 배포를 클릭합니다.

gcloud CLI

  1. GitHub에서 코드를 클론합니다.

    git clone https://github.com/googleworkspace/google-chat-samples.git
    
  2. 이 AI 지식의 코드가 있는 디렉터리로 전환하세요. 어시스턴트 채팅 앱:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  3. google-chat-samples/node/ai-knowledge-assistant 디렉터리에서 다운로드 시 다운로드한 client_secrets.json 파일을 추가합니다. OAuth 클라이언트 ID 사용자 인증 정보 생성됨 사용할 수 있습니다

  4. env.js 파일을 수정하여 환경 변수를 설정합니다.

    1. project의 값을 Cloud 프로젝트로 설정합니다. 있습니다.
    2. location의 값을 Cloud 함수의 region, 예를 들면 us-central1입니다.
  5. Google Cloud에 Cloud 함수를 배포합니다.

    gcloud functions deploy app \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=app \
    --trigger-http \
    --allow-unauthenticated
    

    REGION를 Cloud 함수의 리전 us-central1와 같이 env.js 파일에 설정된 것과 일치시킵니다.

eventsApp 생성 및 배포

Google Cloud 콘솔

  1. Google Cloud 콘솔에서 다음으로 이동합니다. 메뉴 &gt; Cloud Functions로 이동합니다.

    Cloud Functions로 이동

    프로젝트의 Google Cloud 프로젝트가 채팅 앱이 선택되었습니다.

  2. 함수 만들기를 클릭합니다.

  3. 함수 만들기 페이지에서 함수를 설정합니다.

    1. 환경에서 2세대를 선택합니다.
    2. 함수 이름eventsApp를 입력합니다.
    3. 리전에서 리전(예: us-central1)을 선택합니다. 이 지역 는 나 OAuth 클라이언트 ID 사용자 인증 정보 생성됨 사용할 수 있습니다
    4. 트리거 유형에서 Cloud Pub/Sub를 선택합니다.
    5. Cloud Pub/Sub 주제에서 원하는 Pub/Sub 주제 이름을 선택합니다. 다음과 같은 형식으로 생성됩니다. projects/PROJECT/topics/events-api 여기서 PROJECT는 Cloud 프로젝트 ID입니다.
    6. Service account(s) might not have enough permissions to deploy the function with the selected trigger.로 시작하는 메시지가 표시되면 Grant All을 클릭합니다.
    7. 다음을 클릭합니다.
  4. 런타임에서 Node.js 20을 선택합니다.

  5. 진입점에서 기본 텍스트를 삭제하고 다음을 입력합니다. eventsApp입니다.

  6. 소스 코드에서 Cloud Storage의 압축을 선택합니다.

  7. Cloud Storage 위치에서 찾아보기를 클릭합니다.

  8. 파일을 만들 때 ZIP 파일을 업로드한 버킷을 선택합니다. app Cloud 함수입니다.

  9. 업로드한 ZIP 파일을 클릭합니다.

  10. 선택을 클릭합니다.

  11. 배포를 클릭합니다.

    Cloud Functions 세부정보 페이지가 열리고 함수가 표시됩니다. 세 개의 진행률 표시기가 있습니다. 하나는 빌드, 다른 하나는 서비스, 다른 하나는 트리거를 위한 것입니다 세 가지 진행 상황 표시기가 모두 사라질 때 체크표시로 바뀌면 함수가 배포되고 준비된 것입니다.

  12. 샘플 코드를 수정하여 상수를 설정합니다.

    1. Cloud 함수 세부정보 페이지에서 수정을 클릭합니다.
    2. 다음을 클릭합니다.
    3. 소스 코드에서 인라인 편집기를 선택합니다.
    4. 인라인 편집기에서 env.js 파일을 열고 수정합니다. <ph type="x-smartling-placeholder">
        </ph>
      1. project의 값을 다음으로 설정합니다. Cloud 프로젝트 ID입니다.
      2. location의 값을 Cloud 함수의 region, (예: us-central1)
  13. 배포를 클릭합니다.

gcloud CLI

  1. gcloud CLI에서 해당 디렉터리로 전환합니다. 이 AI 지식의 코드가 포함된 어시스턴트 채팅 앱에서 GitHub에서 복제:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  2. google-chat-samples/node/ai-knowledge-assistant 디렉터리에서 다운로드 시 다운로드한 client_secrets.json 파일을 추가합니다. OAuth 클라이언트 ID 사용자 인증 정보 생성됨 사용할 수 있습니다

  3. env.js 파일을 수정하여 환경 변수를 설정합니다.

    1. project의 값을 Cloud 프로젝트로 설정합니다. 있습니다.
    2. location의 값을 Cloud 함수의 region, 예를 들면 us-central1입니다.
  4. Google Cloud에 Cloud 함수를 배포합니다.

    gcloud functions deploy eventsApp \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=eventsApp \
    --trigger-topic=events-api
    

    REGION를 Cloud 함수의 리전 us-central1와 같이 env.js 파일에 설정된 것과 일치시킵니다.

app Cloud 함수의 트리거 URL 복사

다음 섹션에서 app Cloud 함수의 트리거 URL을 붙여넣습니다. 언제 Google Cloud 콘솔에서 채팅 앱 구성

Google Cloud 콘솔

  1. Google Cloud 콘솔에서 다음으로 이동합니다. 메뉴 &gt; Cloud Functions로 이동합니다.

    Cloud Functions로 이동

  2. Cloud Functions 목록의 이름 열에서 app

  3. 트리거를 클릭합니다.

  4. URL을 복사합니다.

gcloud CLI

  1. app Cloud 함수 설명:

    gcloud functions describe app
    
  2. url 속성을 복사합니다.

Google Cloud 콘솔에서 채팅 앱 구성

이 섹션에서는 채팅 앱에 대한 정보가 포함된 Google Cloud 콘솔 채팅 앱 이름 포함 채팅 앱 클라우드의 트리거 URL 채팅 상호작용 이벤트를 전송하는 함수입니다.

  1. Google Cloud 콘솔에서 메뉴를 클릭합니다. <ph type="x-smartling-placeholder"></ph> &gt; 제품 더보기 &gt; Google Workspace &gt; 제품 라이브러리 &gt; Google Chat API &gt; 관리 &gt; 구성.

    Chat API 구성으로 이동

  2. 앱 이름AI knowledge assistant를 입력합니다.

  3. 아바타 URLhttps://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg을 입력합니다.

  4. 설명Answers questions with AI를 입력합니다.

  5. 양방향 기능 사용 설정 전환 버튼을 클릭하여 On(사용)으로 설정합니다.

  6. 기능에서 스페이스 및 그룹 대화 참여를 선택합니다.

  7. 연결 설정에서 앱 URL을 선택합니다.

  8. 앱 URLapp Cloud 함수의 트리거 URL을 붙여넣습니다. 형식 https://REGION-PROJECT_ID.cloudfunctions.net/app 여기서 REGION은 Cloud 함수의 리전입니다(예: us-central1). PROJECT_ID프로젝트 ID Cloud 프로젝트입니다

  9. 공개 상태에서 Workspace 도메인으로 이동하여 내 이메일 주소를 입력합니다.

  10. 필요한 경우 로그에서 Logging에 오류 로깅을 선택합니다.

  11. 저장을 클릭합니다. 구성에 저장된 메시지가 표시됩니다. 즉, 채팅 앱 테스트할 수 있습니다

채팅 앱 테스트

Google Cloud에서 AI 지식 어시스턴트 채팅 앱을 AI가 질문으로 응답하여 메시지가 있는 Chat 스페이스 지식 어시스턴트 채팅 앱이 답할 수 있습니다.

AI 지식 어시스턴트를 테스트하는 몇 가지 방법을 소개합니다. 채팅 앱:

  • AI 지식 어시스턴트 채팅 앱을 기존 Chat 스페이스와 관련된 질문을 하고 만들 수 있습니다.
  • Chat 스페이스를 만들고 다음과 같이 사용할 메시지를 몇 개 게시합니다. 데이터 소스입니다 메시지 출처는 다음과 같습니다. Gemini와 같은 프롬프트로 Answer 20 common onboarding questions employees ask their teams. 또는 몇 개의 단락을 붙여넣기 할 수 있습니다. Chat으로 개발 개요 가이드 그것에 대해 질문하세요

이 튜토리얼에서는 Chat 스페이스를 만들고 발췌문에서 Chat으로 개발 개요 가이드를 참조하세요.

  1. Google Chat을 엽니다.

    Google Chat으로 이동

  2. Chat 스페이스를 만들려면 다음 안내를 따르세요.

    1. 새 채팅을 클릭합니다. &gt; 스페이스 만들기를 탭합니다.

    2. 스페이스 이름Testing AI knowledge assistant app를 입력합니다.

    3. 스페이스의 용도에서 공동작업을 선택합니다.

    4. 액세스 설정에서 스페이스에 액세스할 수 있는 사용자를 선택합니다.

    5. 만들기를 클릭합니다.

  3. 데이터 소스로 사용할 메시지를 추가합니다.

    1. 웹브라우저에서 Chat으로 개발 개요 참조하세요.

    2. 가이드 콘텐츠를 복사하여 Chat 스페이스에 붙여넣습니다. 확인할 수 있습니다

  4. AI 지식 어시스턴트 채팅 앱을 추가합니다.

    1. 메시지 작성 창에 @AI knowledge assistant를 입력하고 추천 메뉴가 표시되면 AI 지식 어시스턴트를 선택합니다. 채팅 앱을 선택하고 enter 키를 누릅니다.

    2. AI 지식 어시스턴트를 추가할지 묻는 메시지가 표시됩니다. 채팅 앱을 스페이스에 추가합니다. 스페이스에 추가를 클릭합니다.

    3. 채팅 앱을 처음 추가하는 경우 스페이스에 추가하려는 경우 채팅 앱:

      1. 구성을 클릭합니다.
      2. 새 브라우저 창이나 탭이 열리면서 Google 계정을 탭합니다. 테스트에 사용할 계정을 선택합니다.
      3. AI 지식 어시스턴트가 제공하는 권한 검토 채팅 앱 요청 권한을 부여하려면 허용을 탭합니다.
      4. You may close this page now.라는 메시지가 표시됩니다. 브라우저 창이나 탭을 닫고 Chat 스페이스.
  5. 질문하기:

    1. 메시지 작성 창에 What are Google Chat apps?

    2. AI 지식 어시스턴트 채팅 앱이 대답합니다.

    3. 선택적으로 답변이 정확하지 않거나 충분하지 않은 경우 AI가 대화 기록 개선, 클릭 도움말 보기 AI 지식 어시스턴트 채팅 앱의 언급 스페이스 관리자가 질문에 답해 달라고 요청합니다. 다음 번에는 AI 지식 어시스턴트 채팅 앱이 답입니다!

고려사항, 대체 아키텍처 선택사항, 다음 단계

이 섹션에서는 AI 지식 어시스턴트가 채팅 앱을 빌드할 수 있습니다.

Firestore, Cloud Storage 또는 Chat API에서 List Messages 호출

이 튜토리얼에서는 다음과 같은 Chat 스페이스 데이터를 저장하는 것이 좋습니다. Firestore 데이터베이스 메시지보다 훨씬 더 나은 성능을 발휘합니다 Message에서 list 메서드를 호출하면 됩니다. 채팅 API로 리소스를 채팅 앱에서 질문에 답변합니다. 또한 list messages가 반복적으로 발생하면 채팅 앱이 API 할당량 한도에 도달합니다.

하지만 Chat 스페이스의 대화 기록이 Firestore를 너무 오래 사용하면 비용이 많이 들 수 있습니다

<ph type="x-smartling-placeholder"></ph> 클라우드 스토리지 를 통해 개인정보처리방침을 정의할 수 있습니다. Firestore의 대안입니다 각 공간은 AI 지식 어시스턴트가 채팅 앱이 활성화되면 자체 객체를 가져오고 각 객체를 가져옵니다. 스페이스의 모든 메시지가 포함된 텍스트 파일입니다. 장점 텍스트 파일의 전체 콘텐츠를 Vertex AI Feature Store에 한 번에 모든 AI를 구현할 수 있지만, 단점은 대화 기록을 업데이트하는 경우 스토리지는 교체만 하세요. 이 방법은 메시지 기록을 업데이트하지만, 일괄 업데이트를 하거나 주기적으로(예: 1주일에 한 번) 메시지 기록을 전송합니다.

문제 해결

Google Chat 앱 또는 card가 오류를 반환하는 경우 Chat 인터페이스에 '문제가 발생했습니다'라는 메시지가 표시됨 또는 '요청을 처리할 수 없습니다'와 같은 메시지가 표시됩니다. 채팅 UI가 오류 메시지가 표시되지 않지만 채팅 앱 또는 카드에서 예기치 않은 결과가 발생합니다. 예를 들어 카드 메시지가 나타납니다.

채팅 UI에 오류 메시지가 표시되지 않을 수도 있지만 오류 해결에 도움이 되는 오류 메시지 및 로그 데이터를 사용할 수 있음 채팅 앱의 오류 로깅이 사용 설정된 경우 보는 데 도움이 필요한 경우 오류를 수정하는 방법에 대한 자세한 내용은 Google Chat 오류 문제 해결하기

삭제

서비스 요금이 Google Cloud 계정에 청구되지 않도록 리소스 사용을 중단하려면 Cloud 프로젝트입니다.

  1. Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다. 클릭 메뉴 &gt; IAM 및 관리자 &gt; 리소스 관리를 클릭합니다.

    <ph type="x-smartling-placeholder"></ph> Resource Manager로 이동 를 통해 개인정보처리방침을 정의할 수 있습니다.

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택한 후 삭제합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 삭제합니다. 프로젝트입니다