1. Обзор
В ходе этой лабораторной работы вы создадите агент GenAI, подключите его к приложению Cloud Run и интегрируете агент в рабочую область Slack.
Что вы узнаете
Лаборатория состоит из нескольких основных частей:
- Разверните приложение Cloud Run для интеграции с API Gemini.
- Создание и развертывание агента Vertex AI.
- Интегрируйте агент в Slack
- Настройка хранилища данных для вопросов и ответов в документах PDF
Предварительные условия
- Эта лабораторная работа предполагает знакомство со средами Cloud Console и Cloud Shell.
2. Настройка и требования
Настройка облачного проекта
- Войдите в Google Cloud Console и создайте новый проект или повторно используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .
- Имя проекта — это отображаемое имя для участников этого проекта. Это строка символов, не используемая API Google. Вы всегда можете обновить его.
- Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (невозможно изменить после его установки). Cloud Console автоматически генерирует уникальную строку; обычно тебя не волнует, что это такое. В большинстве лабораторий кода вам потребуется указать идентификатор проекта (обычно идентифицируемый как
PROJECT_ID
). Если вам не нравится сгенерированный идентификатор, вы можете создать другой случайный идентификатор. Альтернативно, вы можете попробовать свой собственный и посмотреть, доступен ли он. Его нельзя изменить после этого шага и он сохраняется на протяжении всего проекта. - К вашему сведению, есть третье значение — номер проекта , которое используют некоторые API. Подробнее обо всех трех этих значениях читайте в документации .
- Затем вам необходимо включить выставление счетов в Cloud Console, чтобы использовать облачные ресурсы/API. Прохождение этой кодовой лаборатории не будет стоить много, если вообще что-то стоить. Чтобы отключить ресурсы и избежать выставления счетов за пределами этого руководства, вы можете удалить созданные вами ресурсы или удалить проект. Новые пользователи Google Cloud имеют право на участие в программе бесплатной пробной версии стоимостью 300 долларов США .
Настройка среды
Откройте чат Близнецов.
Включите Cloud AI Companion API:
Нажмите « Start chatting
» и ответьте на один из примеров вопросов или введите собственное приглашение, чтобы попробовать его.
Предлагает попробовать:
- Объясните Cloud Run в 5 ключевых моментах.
- Вы являетесь менеджером по продукту Google Cloud Run и объясните студенту Cloud Run в 5 коротких ключевых моментах.
- Вы являетесь менеджером по продукту Google Cloud Run и объясните Cloud Run сертифицированному разработчику Kubernetes в 5 коротких ключевых моментах.
- Вы являетесь менеджером по продукту Google Cloud Run. Объясните старшему разработчику, когда вы будете использовать Cloud Run, а не GKE, в пяти кратких ключевых моментах.
Ознакомьтесь с Руководством по подсказкам, чтобы узнать больше о написании более эффективных подсказок.
Как Gemini для Google Cloud использует ваши данные
Обязательства Google по конфиденциальности
Google был одним из первых в отрасли, кто опубликовал обязательство по обеспечению конфиденциальности в области искусственного интеллекта и машинного обучения , в котором отражено наше убеждение в том, что клиенты должны иметь высочайший уровень безопасности и контроля над своими данными , хранящимися в облаке.
Данные, которые вы отправляете и получаете
Вопросы, которые вы задаете Gemini, включая любую входную информацию или код, который вы отправляете Gemini для анализа или завершения, называются подсказками. Ответы или дополнения кода, которые вы получаете от Gemini, называются откликами. Gemini не использует ваши подсказки или ответы в качестве данных для обучения своих моделей .
Шифрование подсказок
Когда вы отправляете запросы в Gemini, ваши данные при передаче шифруются и становятся входными данными для базовой модели в Gemini.
Данные программы, генерируемые Gemini
Gemini обучается на собственном коде Google Cloud, а также на выбранном стороннем коде. Вы несете ответственность за безопасность, тестирование и эффективность вашего кода , включая любое завершение, генерацию или анализ кода, которые предлагает вам Gemini.
Узнайте больше, как Google обрабатывает ваши запросы.
3. Варианты проверки подсказок
У вас есть несколько вариантов проверки подсказок.
Vertex AI Studio — это часть платформы Vertex AI от Google Cloud, специально разработанная для упрощения и ускорения разработки и использования генеративных моделей искусственного интеллекта.
Google AI Studio — это веб-инструмент для создания прототипов и экспериментов с быстрым проектированием и API Gemini.
- Веб-приложение Gemini (gemini.google.com)
Веб-приложение Google Gemini (gemini.google.com) — это веб-инструмент, призванный помочь вам изучить и использовать возможности моделей искусственного интеллекта Gemini от Google.
- Мобильное приложение Google Gemini для Android и приложение Google для iOS
4. Клонируйте репозиторий
Вернитесь в Google Cloud Console и активируйте Cloud Shell, щелкнув значок справа от панели поиска.
В открывшемся терминале выполните следующие команды
git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git
cd genai-for-developers
git checkout slack-agent-jira-lab
Нажмите «Открыть редактор»
С помощью пункта меню « File / Open Folder
» откройте « genai-for-developers
».
Открыть новый терминал
5. Создайте учетную запись службы.
Создайте новую учетную запись службы и ключи.
Вы будете использовать эту учетную запись службы для вызовов API Vertex AI Gemini API из приложения Cloud Run.
Настройте детали проекта, используя сведения о проекте qwiklabs.
Пример: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Создайте учетную запись службы и назначьте роли.
export LOCATION=us-central1
export PROJECT_ID=$(gcloud config get-value project)
export SERVICE_ACCOUNT_NAME='vertex-client'
export DISPLAY_NAME='Vertex Client'
export KEY_FILE_NAME='vertex-client-key'
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --project $PROJECT_ID --display-name "$DISPLAY_NAME"
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"
gcloud iam service-accounts keys create $KEY_FILE_NAME.json --iam-account=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
Если будет предложено авторизоваться, нажмите «Авторизовать», чтобы продолжить.
Включите необходимые службы для использования API-интерфейсов Vertex AI и чата Gemini.
gcloud services enable \
generativelanguage.googleapis.com \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
Включите необходимые службы для использования API-интерфейсов Vertex AI и чата 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
Включить помощник по коду Gemini
Нажмите на значок «Gemini», в правом нижнем углу нажмите « Sign-in
» и « Select Google Cloud project
».
Во всплывающем окне выберите проект qwiklabs.
Пример:
Откройте файл « devai-api/app/routes.py
», затем щелкните правой кнопкой мыши в любом месте файла и выберите « Gemini Code Assist > Explain
this"
в контекстном меню.
Просмотрите объяснение Gemini для выбранного файла.
6. Развертывание Devai-API в Cloud Run
Убедитесь, что вы находитесь в правильной папке.
cd ~/genai-for-developers/devai-api
В этой лабораторной работе мы следуем передовым практикам и используем Secret Manager для хранения и ссылки на значения токена доступа и ключа API LangChain в Cloud Run.
Установите переменные среды.
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"
Сохраните токен доступа JIRA в диспетчере секретов.
echo -n $JIRA_API_TOKEN | \
gcloud secrets create JIRA_API_TOKEN \
--data-file=-
Сохраните токен доступа GitLab в диспетчере секретов.
echo -n $GITLAB_PERSONAL_ACCESS_TOKEN | \
gcloud secrets create GITLAB_PERSONAL_ACCESS_TOKEN \
--data-file=-
Сохраните ключ API LangChain в диспетчере секретов.
echo -n $LANGCHAIN_API_KEY | \
gcloud secrets create LANGCHAIN_API_KEY \
--data-file=-
Разверните приложение в 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
Ответьте Y
, чтобы создать репозиторий Docker 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
Попросите Близнецов объяснить команду:
Просмотрите gcloud run deploy SERVICE_NAME --source=.
поток ниже. Узнать больше .
За кулисами эта команда использует buildpacks
Google Cloud и Cloud Build
для автоматического создания образов контейнеров из вашего исходного кода без необходимости устанавливать Docker на ваш компьютер или настраивать пакеты сборки или Cloud Build. То есть одна описанная выше команда делает то, что в противном случае потребовало бы команд gcloud builds submit
и команд gcloud run deploy
.
Если вы предоставили Dockerfile (что мы и сделали в этом репозитории), Cloud Build будет использовать его для создания образов контейнеров, а не полагаться на пакеты сборки для автоматического обнаружения и создания образов контейнеров. Чтобы узнать больше о сборочных пакетах, ознакомьтесь с документацией .
Просмотрите журналы Cloud Build в консоли .
Просмотрите созданный образ Docker в реестре артефактов .
Откройте cloud-run-source-deploy/devai-api
и просмотрите уязвимости, которые были обнаружены автоматически. Проверьте те, у которых есть доступные исправления, и посмотрите, как их можно исправить, на основе описания.
Просмотрите сведения об экземпляре Cloud Run в Cloud Console .
Проверьте конечную точку, выполнив команду Curl.
curl -X POST \
-H "Content-Type: application/json" \
-d '{"prompt": "PROJECT-100"}' \
$(gcloud run services list --filter="(devai-api)" --format="value(URL)")/generate
Результаты проверки:
7. Конструктор агентов Vertex AI
Найдите и откройте «Agent Builder».
Активировать API
Создать приложение агента:
Введите «Агент» в поле «Отображаемое имя» и нажмите «Принять и создать».
Установить имя агента:
Agent
Установить цель:
Help user with questions about JIRA project
Установите инструкции:
- 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.
Нажмите «Сохранить»:
Протестируйте Агента с помощью чата эмулятора справа:
Откройте меню «Инструменты» и создайте новый инструмент:
Выберите OpenAPI
в раскрывающемся списке «Тип».
Установить имя инструмента:
jira-project-status
Описание набора:
Returns JIRA project status
Установите схему (YAML) — замените 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:
/create-jira-issue:
post:
summary: Request impl
operationId: create-jira-issue
requestBody:
description: Request impl
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Prompt'
responses:
'200':
description: Generated
content:
application/json:
schema:
type: string
/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:
type: string
/test:
get:
summary: Request impl
operationId: test
responses:
'200':
description: Generated
content:
application/json:
schema:
type: string
components:
schemas:
Prompt:
type: object
required:
- prompt
properties:
prompt:
type: string
Сохраните конфигурацию инструмента:
Вернитесь к настройке агента и обновите инструкции, чтобы использовать инструмент:
Добавьте инструкции по использованию нового инструмента:
- Use ${TOOL: jira-project-status} to help the user with JIRA project status.
Перейдите на вкладку «Примеры» и добавьте новый пример:
Установить отображаемое имя:
jira-project-flow
Используя меню внизу, смоделируйте разговор между пользователем и агентом:
Конфигурация вызова инструмента:
Нажмите «Сохранить и отменить». Вернитесь в эмулятор агента и проверьте поток.
Обзор лучших практик для агентов Vertex AI
Настройки агента
Настройки журналирования
Конфигурация модели.
Интеграция GitGub для отправки и восстановления конфигурации агента.
Элементы управления эмулятором агента:
8. Слабая интеграция
Откройте меню «Интеграции» и нажмите «Подключиться» на плитке Slack.
Откройте ссылку и создайте новое приложение Slack по адресу https://api.slack.com/apps.
Выберите из «Манифеста»:
Выберите рабочее пространство для разработки своего приложения
Переключитесь на YAML и вставьте этот манифест:
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
Нажмите «Создать»:
Установить в рабочую область:
Выберите канал «#general» и нажмите «Разрешить».
В разделе «Основная информация/Учетные данные приложения» скопируйте «Секрет подписи» и установите его в интеграции со Slack.
Откройте «OAuth и разрешения», скопируйте «Токен пользователя Bot OAuth» и установите его в интеграции со Slack.
Задайте необходимые поля и нажмите «Начать».
Значением « Токена доступа » агента является «Токен OAUth пользователя бота» из Slack .
Значением « Токена подписи » агента является «Секрет подписи» от Slack.
Скопируйте «URL-адрес веб-перехватчика» и вернитесь к настройке приложения Slack.
Откройте раздел «Подписки на мероприятия» и вставьте URL-адрес.
Сохраните изменения.
Откройте «Slack» и добавьте агента, набрав «@Agent».
Например, добавив приложение с именем «@CX».
Попросите у агента краткое описание проекта JIRA.
9. Вопросы и ответы по PDF-документам
Создать сегмент облачного хранилища
Откройте GCS в облачной консоли: https://console.cloud.google.com/storage/browser.
Создайте новое ведро.
Для имени сегмента введите: « pdf-docs
» + последние 5 цифр вашего проекта GCP.
Тип местоположения: multi-region, us
.
Класс хранения: Standard
Контроль доступа: Uniform
Защита данных: uncheck soft delete policy
Нажмите « Create
».
Подтвердите «Публичный доступ будет запрещен».
Загрузите отчет в формате PDF и загрузите его в корзину. https://services.google.com/fh/files/misc/exec_guide_gen_ai.pdf
Бакет с просмотром загруженного файла:
Конфигурация хранилища данных
Вернитесь в консоль агента и откройте « Agent
», прокрутите вниз и нажмите « + Data store
».
Используйте следующие значения:
Название инструмента: pdf-docs
Тип: Data store
Описание: pdf-docs
Нажмите « Save
»
Нажмите « Create a data store
» внизу страницы.
Нажмите « AGREE
», когда вас спросят: «Согласны ли вы, чтобы ваши хранилища данных поиска и разговоров находились в американском регионе?»
Введите « Google
» в поле «Указать компанию».
На следующем экране нажмите « CREATE DATA STORE
».
В качестве источника данных выберите « Cloud Storage
».
Подготовьте данные для приема
https://cloud.google.com/generative-ai-app-builder/docs/prepare-data
Файлы HTML и TXT должны иметь размер 2,5 МБ или меньше.
Файлы PDF, PPTX и DOCX должны иметь размер 100 МБ или меньше.
Вы можете импортировать до 100 000 файлов одновременно.
Выберите: unstructured documents
И выберите сегмент/папку GCS.
Нажмите «Продолжить»:
Для имени хранилища данных введите: « pdf-docs
»
В раскрывающемся списке выберите « Digital parser
».
Включите расширенное разбиение на блоки.
Включите заголовки предков по частям.
Нажмите « Create
».
Выберите хранилище данных и нажмите « Create
».
Нажмите на хранилище данных и просмотрите «Документы», «Действия» и «Конфигурация обработки».
Импорт займет около 5–10 минут.
Параметры синтаксического анализа и фрагментации
Управлять парсингом контента можно следующими способами:
- Цифровой парсер. Цифровой анализатор включен по умолчанию для всех типов файлов, если не указан другой тип анализатора. Цифровой анализатор обрабатывает вставленные документы, если для хранилища данных не указан другой синтаксический анализатор по умолчанию или если указанный синтаксический анализатор не поддерживает тип файла вставленного документа.
- OCR-парсинг PDF-файлов . Публичный предварительный просмотр. Если вы планируете загружать отсканированные PDF-файлы или PDF-файлы с текстом внутри изображений, вы можете включить анализатор OCR, чтобы улучшить индексацию PDF-файлов. См . раздел Об анализе OCR для PDF-файлов .
- Парсер макетов. Публичный предварительный просмотр. Включите анализатор макета для файлов HTML, PDF или DOCX, если вы планируете использовать Vertex AI Search для RAG. См . документы Chunk для RAG для получения информации об этом парсере и о том, как его включить.
Узнайте больше о синтаксическом анализе и фрагментировании документов.
Конфигурация инструмента
Вернитесь на вкладку с настройкой инструментов.
Обновите браузер и выберите « pdf-docs
» в раскрывающемся списке «Неструктурированные».
Настроить заземление.
Введите « Google
» в качестве названия компании.
Настройки полезной нагрузки — установите флажок « Include snippets in the response payload
».
Нажмите « Save
».
Настройка инструкций агента
Вернитесь к настройке агента.
Добавить новую инструкцию:
- Provide detailed answer to users questions about the exec guide to gen ai using information in the ${TOOL:pdf-docs}
Сохраните конфигурацию.
Создайте пример для инструмента PDF-Docs
Перейдите на вкладку «Примеры». Создайте новый пример.
Используя действия « +
»:
Добавьте «Пользовательский ввод»:
What are the main capabilities?
Добавьте «Использование инструмента».
- Инструмент и действие: «
pdf-docs
»
Ввод (тело запроса)
{
"query": "Main capabilities",
"filter": "",
"userMetadata": {},
"fallback": ""
}
Выход инструмента:
{
"answer": "Detailed answer about main capabilities",
"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"
}
]
}
Добавить «Ответ агента»
Detailed answer about main capabilities.
https://storage.cloud.google.com/pdf-docs-49ca4/exec_guide_gen_ai.pdf
Настроенный пример:
Конфигурация вызова инструмента:
Проверьте конфигурацию, отправив вопрос агенту в эмуляторе.
Вопрос:
What are the 10 steps in the exec guide?
Выберите « Agent
» и нажмите « Save example
».
Укажите имя « user-question-flow
» и сохраните.
Отформатируйте ответ агента и включите ссылку на PDF-документ из раздела вывода инструмента.
Сохраните пример.
Вернитесь в эмулятор и нажмите « Replay conversation
». Проверьте обновленный формат ответа.
Задайте еще вопрос:
What are the main capabilities in the exec guide?
Исходный PDF-документ.
Вопрос:
What should I consider when evaluating projects?
Исходный PDF-документ.
Вопрос:
What are the priority use cases in Retail and CPG in the exec guide?
Исходный PDF-документ.
10. Готовые агенты
Изучите готовые агенты в меню слева.
Выберите один из агентов и разверните его. Изучите настройку, инструкции и инструменты агента.
11. Поздравляем!
Поздравляем, вы закончили лабораторную работу!
Что мы рассмотрели:
- Как развернуть приложение Cloud Run для интеграции с API Gemini
- Как создать и развернуть агент Vertex AI
- Как добавить интеграцию Slack для агента
- Как настроить хранилище данных для вопросов и ответов в документах PDF
Что дальше:
- Обзор лучших практик для агентов Vertex AI
Очистить
Чтобы избежать списания средств с вашей учетной записи Google Cloud за ресурсы, используемые в этом руководстве, либо удалите проект, содержащий ресурсы, либо сохраните проект и удалите отдельные ресурсы.
Удаление проекта
Самый простой способ избавиться от выставления счетов — удалить проект, созданный вами для этого руководства.
© Google LLC, 2024. Все права защищены. Google и логотип Google являются товарными знаками Google LLC. Все остальные названия компаний и продуктов могут быть товарными знаками соответствующих компаний, с которыми они связаны.