Agent generatywnej AI w Slacku do zadawania pytań dotyczących dokumentów i działań z wykorzystaniem wywołań interfejsu API

1. Przegląd

W tym module utworzysz agenta GenAI, połączysz go z aplikacją Cloud Run i zintegrujesz z obszarem roboczym Slacka.

3301e2bb69be325.png

Czego się nauczysz

Laboratorium składa się z kilku głównych części:

  • Wdrażanie aplikacji Cloud Run w celu integracji z interfejsami Gemini API
  • Tworzenie i wdrażanie agenta konwersacyjnego w aplikacjach AI
  • Integracja agenta z usługą Slack
  • Konfigurowanie magazynu danych na potrzeby pytań i odpowiedzi dotyczących dokumentów PDF

Wymagania wstępne

  • Zakładamy, że użytkownik zna środowiska konsoli Cloud i Cloud Shell.

2. Konfiguracja i wymagania

Konfigurowanie projektu w Google Cloud

  1. Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, który nie jest używany przez interfejsy API Google. Zawsze możesz ją zaktualizować.
  • Identyfikator projektu jest unikalny we wszystkich projektach Google Cloud i nie można go zmienić po ustawieniu. Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie musisz się tym przejmować. W większości ćwiczeń z programowania musisz odwoływać się do identyfikatora projektu (zwykle oznaczanego jako PROJECT_ID). Jeśli wygenerowany identyfikator Ci się nie podoba, możesz wygenerować inny losowy identyfikator. Możesz też spróbować własnej nazwy i sprawdzić, czy jest dostępna. Po tym kroku nie można go zmienić i pozostaje on taki przez cały czas trwania projektu.
  • Warto wiedzieć, że istnieje trzecia wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
  1. Następnie musisz włączyć płatności w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Wykonanie tego ćwiczenia nie będzie kosztować dużo, a może nawet nic. Aby wyłączyć zasoby i uniknąć naliczania opłat po zakończeniu tego samouczka, możesz usunąć utworzone zasoby lub projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.

Konfiguracja środowiska

Otwórz rozmowę z Gemini.

e1e9ad314691368a.png

Włącz interfejs Gemini for Google Cloud API:

933612a23648361c.png

b366894eb450f862.png

Kliknij „Start chatting” i wybierz jedno z przykładowych pytań lub wpisz własny prompt, aby wypróbować tę funkcję.

ed120d672468b412.png

Prompty do wypróbowania:

  • Wyjaśnij, czym jest Cloud Run, w 5 najważniejszych punktach.
  • Jesteś menedżerem produktu Google Cloud Run. Wyjaśnij studentowi, czym jest Cloud Run, w 5 krótkich punktach.
  • Jesteś menedżerem produktu Google Cloud Run. Wyjaśnij certyfikowanemu programiście Kubernetes, czym jest Cloud Run, w 5 krótkich punktach.
  • Jesteś menedżerem produktu Google Cloud Run. Wyjaśnij starszemu programiście w 5 krótkich punktach, kiedy warto używać Cloud Run, a kiedy GKE.

Więcej informacji o tworzeniu lepszych promptów znajdziesz w przewodniku po tworzeniu promptów.

Jak Gemini w Google Cloud korzysta z danych użytkowników

Zobowiązanie Google do ochrony prywatności

Google jako jedna z pierwszych firm w branży opublikowała zobowiązanie do ochrony prywatności w systemach AI/ML, w którym podkreślamy, że klienci powinni mieć najwyższy poziom bezpieczeństwa i kontroli nad danymi przechowywanymi w chmurze.

Dane, które przesyłasz i odbierasz

Pytania, które zadajesz Gemini, w tym wszelkie dane wejściowe lub kod, które przesyłasz do Gemini w celu analizy lub uzupełnienia, nazywane są promptami. Odpowiedzi lub uzupełnienia kodu, które otrzymujesz od Gemini, nazywamy odpowiedziami. Gemini nie używa Twoich promptów ani swoich odpowiedzi jako danych do trenowania swoich modeli.

Szyfrowanie promptów

Gdy przesyłasz prompty do Gemini, Twoje dane są szyfrowane podczas przesyłania jako dane wejściowe do modelu bazowego w Gemini.

Dane programu wygenerowane przez Gemini

Gemini jest trenowany na podstawie kodu Google Cloud oraz wybranego kodu innych firm. Ponosisz odpowiedzialność za bezpieczeństwo, testowanie i skuteczność swojego kodu, w tym za uzupełnianie, generowanie i analizowanie kodu oferowane przez Gemini.

Dowiedz się więcej o tym, jak Google przetwarza Twoje prompty.

3. Opcje testowania promptów

Możesz testować prompty na kilka sposobów.

Vertex AI Studio to część platformy Vertex AI w Google Cloud, która została zaprojektowana specjalnie z myślą o upraszczaniu i przyspieszaniu tworzenia i używania modeli generatywnej AI.

Google AI Studio to internetowe narzędzie do tworzenia prototypów i eksperymentowania z inżynierią promptów oraz interfejsem Gemini API.

Aplikacja internetowa Google Gemini (gemini.google.com) to narzędzie internetowe, które pomaga odkrywać i wykorzystywać możliwości modeli AI Gemini od Google.

4. Kopiowanie repozytorium

Wróć do konsoli Google Cloud i aktywuj Cloud Shell, klikając ikonę po prawej stronie paska wyszukiwania.

3e0c761ca41f315e.png

Jeśli pojawi się prośba o autoryzację, kliknij „Autoryzuj”, aby kontynuować.

6356559df3eccdda.png

W otwartym terminalu uruchom te polecenia:

git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git

cd genai-for-developers

git checkout slack-agent-jira-lab

Kliknij „Otwórz edytor”.

63e838aebfdd2423.png

Wybierz „File / Open Folder”, aby otworzyć „genai-for-developers”.

e3b9bd9682acf539.png

Otwieranie nowego terminala

4d9c41ab01ff4e97.png

5. Utwórz konto usługi

Utwórz nowe konto usługi. To konto usługi będzie używane do wywoływania interfejsu Vertex AI Gemini API z aplikacji Cloud Run.

Skonfiguruj szczegóły projektu, korzystając ze szczegółów projektu qwiklabs.

Przykład: qwiklabs-gcp-00-2c10937585bb

gcloud config set project YOUR_QWIKLABS_PROJECT_ID

Utwórz konto usługi.

export LOCATION=us-central1
export PROJECT_ID=$(gcloud config get-value project)
export SERVICE_ACCOUNT_NAME='vertex-client'
export DISPLAY_NAME='Vertex Client'

gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --project $PROJECT_ID --display-name "$DISPLAY_NAME"

Przyznaj role.

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/aiplatform.admin"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/aiplatform.user"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/cloudbuild.builds.editor"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/storage.admin"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/run.admin"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/secretmanager.secretAccessor"

Włącz wymagane usługi, aby korzystać z interfejsów Vertex AI API i rozmowy z Gemini.

gcloud services enable \
    generativelanguage.googleapis.com \
    aiplatform.googleapis.com \
    cloudaicompanion.googleapis.com \
    dialogflow.googleapis.com \
    run.googleapis.com \
    cloudresourcemanager.googleapis.com \
    discoveryengine.googleapis.com

Włącz wymagane usługi, aby korzystać z interfejsów Vertex AI API i rozmowy z Gemini.

gcloud services enable \
    artifactregistry.googleapis.com \
    cloudbuild.googleapis.com \
    runapps.googleapis.com \
    workstations.googleapis.com \
    servicemanagement.googleapis.com \
    secretmanager.googleapis.com \
    containerscanning.googleapis.com

Wyjaśnianie kodu za pomocą Gemini Code Assist

Otwórz plik „devai-api/app/routes.py”, a następnie kliknij prawym przyciskiem myszy dowolne miejsce w pliku i z menu kontekstowego wybierz „Gemini Code Assist > Explain this"”.

427ed40dd44cab8a.png

Sprawdź wyjaśnienie Gemini dotyczące wybranego pliku.

a286d1e85bc42960.png

6. Wdrażanie Devai-API w Cloud Run

Sprawdź, czy jesteś w odpowiednim folderze.

cd ~/genai-for-developers/devai-api

W tym module będziemy postępować zgodnie ze sprawdzonymi metodami i używać usługi Secret Manager do przechowywania i odwoływania się do wartości tokena dostępu i klucza interfejsu LangChain API w Cloud Run.

Ustaw zmienne środowiskowe. Uruchom to polecenie bez zmian.

export JIRA_API_TOKEN=your-jira-token
export JIRA_USERNAME="YOUR-EMAIL"
export JIRA_INSTANCE_URL="https://YOUR-JIRA-PROJECT.atlassian.net"
export JIRA_PROJECT_KEY="YOUR-JIRA-PROJECT-KEY"
export JIRA_CLOUD=true

export GITLAB_PERSONAL_ACCESS_TOKEN=your-gitlab-token
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
export GITLAB_REPOSITORY="GITLAB-USERID/GITLAB-REPO"

export LANGCHAIN_API_KEY=your-langchain-key
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"

Utwórz i zapisz kilka obiektów tajnych w usłudze Secret Manager.

echo -n $JIRA_API_TOKEN | \
 gcloud secrets create JIRA_API_TOKEN \
 --data-file=-

echo -n $GITLAB_PERSONAL_ACCESS_TOKEN | \
 gcloud secrets create GITLAB_PERSONAL_ACCESS_TOKEN \
 --data-file=-

echo -n $LANGCHAIN_API_KEY | \
 gcloud secrets create LANGCHAIN_API_KEY \
 --data-file=-

wdrożyć aplikację w Cloud Run;

gcloud run deploy devai-api \
  --source=. \
  --region="$LOCATION" \
  --allow-unauthenticated \
  --service-account vertex-client \
  --set-env-vars PROJECT_ID="$PROJECT_ID" \
  --set-env-vars LOCATION="$LOCATION" \
  --set-env-vars GITLAB_URL="$GITLAB_URL" \
  --set-env-vars GITLAB_REPOSITORY="$GITLAB_REPOSITORY" \
  --set-env-vars GITLAB_BRANCH="$GITLAB_BRANCH" \
  --set-env-vars GITLAB_BASE_BRANCH="$GITLAB_BASE_BRANCH" \
  --set-env-vars JIRA_USERNAME="$JIRA_USERNAME" \
  --set-env-vars JIRA_INSTANCE_URL="$JIRA_INSTANCE_URL" \
  --set-env-vars JIRA_PROJECT_KEY="$JIRA_PROJECT_KEY" \
  --set-env-vars JIRA_CLOUD="$JIRA_CLOUD" \
  --set-env-vars LANGCHAIN_TRACING_V2="$LANGCHAIN_TRACING_V2" \
  --update-secrets="LANGCHAIN_API_KEY=LANGCHAIN_API_KEY:latest" \
  --update-secrets="GITLAB_PERSONAL_ACCESS_TOKEN=GITLAB_PERSONAL_ACCESS_TOKEN:latest" \
  --update-secrets="JIRA_API_TOKEN=JIRA_API_TOKEN:latest" \
  --min-instances=1 \
  --max-instances=3

Odpowiedz Y, aby utworzyć repozytorium Dockera w Artifact Registry.

Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in 
region [us-central1] will be created.

Do you want to continue (Y/n)?  y

Zapytaj Gemini o wyjaśnienie polecenia:

What does this command do?

gcloud run deploy devai-api \
  --source=. \
  --region="$LOCATION" \
  --allow-unauthenticated \
  --service-account vertex-client \
  --set-env-vars PROJECT_ID="$PROJECT_ID" \
  --set-env-vars LOCATION="$LOCATION" \
  --set-env-vars GITLAB_URL="$GITLAB_URL" \
  --set-env-vars GITLAB_REPOSITORY="$GITLAB_REPOSITORY" \
  --set-env-vars GITLAB_BRANCH="$GITLAB_BRANCH" \
  --set-env-vars GITLAB_BASE_BRANCH="$GITLAB_BASE_BRANCH" \
  --set-env-vars JIRA_USERNAME="$JIRA_USERNAME" \
  --set-env-vars JIRA_INSTANCE_URL="$JIRA_INSTANCE_URL" \
  --set-env-vars JIRA_PROJECT_KEY="$JIRA_PROJECT_KEY" \
  --set-env-vars JIRA_CLOUD="$JIRA_CLOUD" \
  --set-env-vars LANGCHAIN_TRACING_V2="$LANGCHAIN_TRACING_V2" \
  --update-secrets="LANGCHAIN_API_KEY=LANGCHAIN_API_KEY:latest" \
  --update-secrets="GITLAB_PERSONAL_ACCESS_TOKEN=GITLAB_PERSONAL_ACCESS_TOKEN:latest" \
  --update-secrets="JIRA_API_TOKEN=JIRA_API_TOKEN:latest" \
  --min-instances=1 \
  --max-instances=3

34ed504e0bcf697b.png

Sprawdź poniższą gcloud run deploy SERVICE_NAME --source=. automatyzację. Więcej informacji

5c122a89dd11822e.png

W tle to polecenie używa buildpacksCloud Build Google Cloud do automatycznego tworzenia obrazów kontenerów z kodu źródłowego bez konieczności instalowania Dockera na komputerze ani konfigurowania pakietów kompilacji lub Cloud Build. Oznacza to, że pojedyncze polecenie opisane powyżej wykonuje to, co w innych przypadkach wymagałoby użycia poleceń gcloud builds submitgcloud run deploy.

Jeśli podasz plik Dockerfile(co zrobiliśmy w tym repozytorium), Cloud Build użyje go do kompilowania obrazów kontenerów, zamiast polegać na pakietach kompilacji, które automatycznie wykrywają i kompilują obrazy kontenerów. Więcej informacji o pakietach kompilacji znajdziesz w dokumentacji.

Przejrzyj logi Cloud Build w konsoli.

Sprawdź utworzony obraz Dockera w Artifact Registry.

Sprawdź szczegóły instancji Cloud Run w Cloud Console.

Przetestuj punkt końcowy, uruchamiając polecenie curl.

curl -X POST \
   -H "Content-Type: application/json" \
   -d '{"prompt": "PROJECT-100"}' \
   $(gcloud  run services list --filter="(devai-api)" --format="value(URL)")/generate

Odpowiedź będzie w formacie Markdown. Wyświetlanie w trybie podglądu dla lepszej czytelności.

bda86deaa1c449a8.png

7. AI Applications

Na pasku wyszukiwania w konsoli Google Cloud wpisz i otwórz „AI Applications”.

3f8540f5c946e199.png

Utwórz aplikację Conversational Agent:

6f372cbe4935c507.png

Wybierz „Build your own”.

5305cb9a8320f468.png

Wpisz „Agent” w polu Nazwa wyświetlana i kliknij „Utwórz”.

e0056adc2f8af87.png

Ustaw nazwę scenariusza:

Agent

Wyznacz cel:

Help users with questions about JIRA project

Instrukcje konfiguracji:

- Greet the users, then ask how you can help them today.
- Summarize the user's request and ask them to confirm that you understood correctly.
  - If necessary, seek clarifying details.
- Thank the user for their business and say goodbye.

Kliknij „Save”:

bb2569de77cd1f06.png

Przetestuj agenta, korzystając z czatu symulatora po prawej stronie:

593dd4b8fc4c20d9.png

Prowadź podobne rozmowy jak na przykładzie poniżej:

66a7569835ebc7e7.png

Konfiguracja narzędzi agenta

Po lewej stronie najedź kursorem na ikonę klucza. Otwórz menu Narzędzia i utwórz nowe narzędzie:

ff635e2d135ea6d8.png

W menu Typ wybierz OpenAPI.

Ustaw nazwę narzędzia:

jira-project-status

Opis zestawu:

Provides JIRA project status

Przełącz karty i sprawdź dane wyjściowe konsoli pod kątem adresu URL usługi Cloud Run. Skopiuj wartość adresu URL usługi.

Ustaw schemat (YAML) – zastąp YOUR CLOUD RUN URL.

openapi: 3.0.0
info:
 title: CR API
 version: 1.0.0
 description: >-
   This is the OpenAPI specification of a service.
servers:
 - url: 'https://YOUR CLOUD RUN URL'
paths:

 /generate:
   post:
     summary: Request impl
     operationId: generate
     requestBody:
       description: Request impl
       required: true
       content:
         application/json:
           schema:
             $ref: '#/components/schemas/Prompt'
     responses:
       '200':
         description: Generated
         content:
           application/json:
             schema:
               $ref: '#/components/schemas/ProjectStatus'
                  
components:
 schemas:
   Prompt:
     type: object
     required:
       - prompt
     properties:
       prompt:
         type: string
   ProjectStatus:
     type: object
     required:
       - message
     properties:
       message:
         type: string

Zapisz konfigurację narzędzia:

ae78c21f48754d7a.png

Wróć do konfiguracji agenta, wybierając „Playbooki” w menu po lewej stronie, i zaktualizuj instrukcje, aby używać narzędzia:

Dodaj instrukcje korzystania z nowego narzędzia i kliknij „Save”:

- Use ${TOOL: jira-project-status} to help the user with JIRA project status.

16755dd3aaf3888.png

Przejdź na kartę „Examples” i dodaj nowy przykład:

a74004679865ab6e.png

Ustaw wyświetlaną nazwę:

jira-project-flow

Korzystając z menu u dołu, modeluj rozmowę między użytkownikiem a agentem:

Przykładowy przepływ:

Odpowiedź agenta: Jaki jest identyfikator projektu?

Dane wejściowe użytkownika: TEST-PROJECT-100

Użycie narzędzia: jira-project-status

Odpowiedź pracownika obsługi klienta: szczegóły stanu projektu.

6d54f90f1dc630fc.png

Aby utworzyć przykład, skorzystaj z poniższych informacji.

c80eef4210256e5a.png

5affaee4cd54616e.png

Kliknij Save. Wróć do symulatora agenta i zresetuj wszystkie dotychczasowe rozmowy. Przetestuj automatyzację.

ac9db60831b0f684.png

a9fbafd45139d434.png

Gratulacje! Dzięki integracji narzędzi połączonych z aplikacją(API) wdrożoną w Cloud Run udało Ci się umożliwić agentowi wykonywanie działań i rozszerzyć jego możliwości.

e8b113e0cc1b8ad6.png

Sprawdź sprawdzone metody dotyczące agentów konwersacyjnych.

Sprawdzanie dostępnych ustawień agenta

  • Ustawienia logowania – włączanie Cloud Logging
  • Integracja z Gitem – umożliwia wypychanie i pobieranie agenta z repozytorium Git.
  • Wybór modelu generatywnego
  • Limity tokenów(dane wejściowe i wyjściowe)

f914db1d8a5d5447.png

Sprawdź ustawienia symulatora agenta:

d1c4712603d4a8a2.png

8. Integracja z usługą Slack

Otwórz menu Integracje i kliknij „Connect” na kafelku Slacka.

6fc0ad95c28cb6c8.png

e7ee0826668bfa2b.png

b29574fd2a0f9725.png

Otwórz link i utwórz nową aplikację Slack na stronie https://api.slack.com/apps.

cbf13edc1b284899.png

Wybierz z „Pliku manifestu”:

7721feb295693ea2.png

Wybierz obszar roboczy, w którym chcesz tworzyć aplikację

99a3d5b37cdf8f76.png

Przełącz na YAML i wklej ten manifest:

display_information:
  name: Agent
  description: Agent
  background_color: "#1148b8"
features:
  app_home:
    home_tab_enabled: false
    messages_tab_enabled: true
    messages_tab_read_only_enabled: false
  bot_user:
    display_name: Agent
    always_online: true
oauth_config:
  scopes:
    bot:
      - app_mentions:read
      - chat:write
      - im:history
      - im:read
      - im:write
      - incoming-webhook
settings:
  event_subscriptions:
    request_url: https://dialogflow-slack-4vnhuutqka-uc.a.run.app
    bot_events:
      - app_mention
      - message.im
  org_deploy_enabled: false
  socket_mode_enabled: false
  token_rotation_enabled: false

Kliknij „Utwórz”:

5f0b3d2c44022eb9.png

Instalowanie w Workspace:

aa1c2ea1b700c838.png

Wybierz kanał „#general” i kliknij „Zezwól”.

18eba659946fc65f.png

W sekcji „Informacje podstawowe / Dane logowania aplikacji” skopiuj „Klucz tajny podpisywania” i ustaw go w integracji Slacka z Agentem jako wartość pola „Token podpisywania”.

31d62babb57e523d.png

bd9f7e3be3b9ea4e.png

Otwórz „OAuth & Permissions” (OAuth i uprawnienia) i skopiuj „Bot User OAuth Token” (Token OAuth użytkownika bota). Następnie ustaw go w integracji Slacka z Agentem jako wartość pola „Access token” (Token dostępu).

e74c7e003c31258.png

Ustaw wymagane pola i kliknij „Start”.

Wartość „Access Token” agenta to „Bot User OAUth Token” z Slacka.

Wartość „tokena podpisywania” agenta to „tajny klucz podpisywania” z Slacka.

8ea9f6856efa62cf.png

7e71e37750fd063a.png

Skopiuj „adres URL webhooka” i wróć do konfiguracji aplikacji Slack.

Otwórz sekcję „Subskrypcje zdarzeń” i wklej adres URL.

a1e7271934c714d9.png

Zapisz zmiany.

e6d9b43b3787b6e7.png

Otwórz „Slacka” i dodaj agenta, wpisując „@Agent”.

Na przykład dodanie aplikacji o nazwie „@CX”.

72313066707f947b.png

63becbd80824f8d8.png

c98e193062b096f0.png

Poproś pracownika obsługi klienta o podsumowanie projektu JIRA.

6edfdb74760548ad.png

Gratulacje! Agent został zintegrowany z obszarem roboczym Slacka.

703a3bf5754680fa.png

9. Pytania i odpowiedzi dotyczące dokumentów PDF

W tej sekcji opisujemy, jak utworzyć magazyn danych przy użyciu dokumentu PDF i połączyć go z agentem, aby włączyć funkcję pytań i odpowiedzi na podstawie treści dokumentu.

Tworzenie zasobnika Cloud Storage

Otwórz Cloud Shell: https://shell.cloud.google.com/

Ustaw nazwę zasobnika, używając 5 ostatnich cyfr projektu GCP. Przykład: pdf-docs-3dw21

BUCKET_NAME=pdf-docs-LAST-5-DIGITS-OF-YOUR-PROJECT

Utwórz zasobnik i prześlij dokument PDF.

gcloud storage buckets create gs://$BUCKET_NAME \
    --location=us \
    --default-storage-class=STANDARD \
    --no-public-access-prevention \
    --uniform-bucket-level-access

wget https://services.google.com/fh/files/misc/exec_guide_gen_ai.pdf 

gsutil cp exec_guide_gen_ai.pdf gs://$BUCKET_NAME

Konfiguracja magazynu danych

Wróć do konsoli agenta i otwórz „Agent”, przewiń w dół i kliknij „+ Data store”.

9a5e4d6d1e040b86.png

Użyj tych wartości:

Nazwa narzędzia: pdf-docs

Typ: Data store

Opis: pdf-docs

Kliknij „Save”.

60096b1c597347fa.png

Kliknij „Add data stores” u dołu strony. Następnie kliknij „Create new data store”.

abb9e513ac905e75.png

Wybierz „Cloud Storage” jako źródło danych.

Wybierz: Unstructured documents

Wybierz zasobnik lub folder GCS.

42dec238c1d0ac2f.png

Wybierz „us” w przypadku lokalizacji magazynu danych.

Wpisz nazwę sklepu: „pdf-docs”.

W menu kliknij „Digital parser”.

Włącz zaawansowany podział na fragmenty.

Włącz nagłówki elementów nadrzędnych we fragmentach.

Kliknij „Create”.

1a5222b86ee6c58e.png

3119b5fec43c9294.png

Kliknij magazyn danych i sprawdź dokumenty, aktywność i konfigurację przetwarzania.

872d9142615e90c9.png

Importowanie zajmie około 5–10 minut.

d9739a4af2244e03.png

Opcje analizowania i dzielenia na części

Analizowanie treści możesz kontrolować w ten sposób:

  • Parser cyfrowy Parser cyfrowy jest domyślnie włączony dla wszystkich typów plików, chyba że określono inny typ parsera. Cyfrowy parser przetwarza wczytane dokumenty, jeśli dla magazynu danych nie określono innego domyślnego parsera lub jeśli określony parser nie obsługuje typu pliku wczytanego dokumentu.
  • Analiza OCR w przypadku plików PDF. Publiczna wersja przedpremierowa. Jeśli planujesz przesyłać zeskanowane pliki PDF lub pliki PDF z tekstem w obrazach, możesz włączyć parser OCR, aby ulepszyć indeksowanie plików PDF. Więcej informacji znajdziesz w artykule Informacje o analizowaniu plików PDF za pomocą OCR.
  • Parser układu Jeśli planujesz używać Vertex AI Search do wyszukiwania RAG, włącz parser układu dla plików HTML, PDF lub DOCX. Więcej informacji o tym analizatorze i sposobie jego włączania znajdziesz w artykule Dzielenie dokumentów na fragmenty na potrzeby RAG.

Więcej informacji o analizowaniu dokumentów i dzieleniu ich na fragmenty

Konfiguracja narzędzia

Wróć do ekranu konfiguracji narzędzia agenta i odśwież dostępne magazyny danych.

Wybierz utworzony właśnie magazyn danych i kliknij „Confirm”.

2922f7d9bdb7b2bc.png

Skonfiguruj umocowanie.

Wpisz „Google Cloud” jako nazwę firmy.

Ustawienia ładunku – zaznacz „Include snippets in Conversational Messenger response payload". Ustaw wartość na 5.

Kliknij przycisk „Zapisz”.

484e99caa7d1bc07.png

Konfigurowanie instrukcji agenta

Wróć do konfiguracji agenta.

Dodaj nową instrukcję:

- Provide detailed answer to users questions about the exec guide to gen ai using information in the ${TOOL:pdf-docs}

f6d27e58b68f9f7.png

Zapisz konfigurację.

Tworzenie przykładu dla narzędzia PDF-Docs

Przejdź na kartę Przykłady. Utwórz nowy przykład: Guide to generative AI

Korzystanie z działań „+”:

ee4f85ba3f47fda0.png

Dodaj „Dane wejściowe użytkownika”:

What are the main capabilities for generative AI?

Dodaj „Korzystanie z narzędzi”.

  • Narzędzie i działanie: „pdf-docs

Dane wejściowe (requestBody)

{
  "query": "Main capabilities for generative AI",
  "filter": "",
  "userMetadata": {},
  "fallback": ""
}

Dane wyjściowe narzędzia:

{
  "answer": "Detailed answer about main capabilities for generative AI",
  "snippets": [
    {
      "uri": "https://storage.cloud.google.com/pdf-docs-49ca4/exec_guide_gen_ai.pdf",
      "text": "Detailed answer about main capabilities",
      "title": "exec_guide_gen_ai"
    }
  ]
}

Dodawanie „Odpowiedzi agenta”

Detailed answer about main capabilities. 

https://storage.cloud.google.com/pdf-docs-49ca4/exec_guide_gen_ai.pdf

Przykład skonfigurowanego działania:

d1da4c1d18709ea6.png

Konfiguracja wywołania narzędzia:

a0d47a9dc04bb2f1.png

Aby przetestować konfigurację, przełącz się na symulator.

Pytanie:

What are the 10 steps in the exec guide?

e682480a959125bc.png

W menu Wywołania wybierz „Agent” i kliknij „Save as example”.

582759df60b9a342.png

Podaj nazwę „user-question-flow”.

Ustaw podsumowanie: „Agent helped user answer question based on the pdf document” i kliknij Zapisz.

Sformatuj odpowiedź agenta i w sekcji danych wyjściowych narzędzia umieść link do dokumentu PDF.

6ba5011ed26793f3.png

Zapisz przykład.

Wróć do symulatora i kliknij „Replay conversation”. Sprawdź zaktualizowany format odpowiedzi. Jeśli po zapisaniu przykładu pojawi się błąd, może być konieczne odświeżenie okna przeglądarki i ponowne rozpoczęcie rozmowy przez ponowne wysłanie prompta:

What are the 10 steps in the exec guide?

51698c5f1fbd2770.png

Zadaj inne pytanie:

What are the main capabilities in the exec guide?

7b636f489c05a13.png

źródłowy dokument PDF,

5b3e6d2ceda99247.png

Pytanie:

What should I consider when evaluating projects?

1155edfbffcd14b2.png

źródłowy dokument PDF,

57a0d331aa91f04b.png

Pytanie:

What are the priority use cases in Retail and CPG in the exec guide?

92264121fc8f06e.png

źródłowy dokument PDF,

b4d07e6e7d9adc00.png

Gratulacje! Agent może teraz udzielać odpowiedzi na podstawie dokumentów PDF.

e11d020a9cfa36d1.png

10. Wstępnie utworzone agenty

Następnie w menu po lewej stronie zapoznaj się z gotowymi agentami.

de49672bbb8112fd.png

Wybierz jednego z agentów i wdroż go. Zapoznaj się z konfiguracją, instrukcjami i narzędziami agenta.

1e00ed8ef4887efb.png

11. Gratulacje!

Gratulacje! Moduł został ukończony.

Omówione zagadnienia:

  • Tworzenie i wdrażanie agentów konwersacyjnych
  • Jak dodać narzędzie do agenta opartego na aplikacji Cloud Run
  • Jak zintegrować agenta z obszarem roboczym Slacka
  • Jak skonfigurować magazyn danych na potrzeby pytań i odpowiedzi dotyczących dokumentów PDF

Co dalej?

Czyszczenie danych

Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby zużyte w tym samouczku, możesz usunąć projekt zawierający te zasoby lub zachować projekt i usunąć poszczególne zasoby.

Usuwanie projektu

Najprostszym sposobem na uniknięcie płatności jest usunięcie projektu utworzonego w tym samouczku.

©2024 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.