metadata.yaml (130 lines of code) (raw):
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: blueprints.cloud.google.com/v1alpha1
kind: BlueprintMetadata
metadata:
name: terraform-genai-knowledge-base
annotations:
config.kubernetes.io/local-config: "true"
spec:
info:
title: Generative AI Knowledge Base
source:
repo: https://github.com/GoogleCloudPlatform/terraform-genai-knowledge-base.git
sourceType: git
version: 0.3.0
actuationTool:
flavor: Terraform
version: ">= 0.18"
description:
tagline: Fine tune an LLM model to answer questions from your documents.
detailed: This solution showcases how to extract question & answer pairs out of documents using Generative AI. It provides an end-to-end demonstration of QA extraction and fine-tuning of a large language model (LLM) on Vertex AI. Along the way, the solution utilizes Document AI Character Recognition (OCR), Firestore, Vector Search, Vertex AI Studio, and Cloud Functions.
icon: assets/icon.png
deploymentDuration:
configurationSecs: "120"
deploymentSecs: "360"
costEstimate:
description: Cost Details
url: https://cloud.google.com/products/calculator-legacy#id=dcdd11ca-ca20-428b-86be-1c9b3c651042
cloudProducts:
- productId: ai-platform
label: Vertex AI
- productId: document-ai
label: Document AI OCR
- productId: FIRESTORE_SECTION
label: Firestore
- productId: FUNCTIONS_SECTION
label: Cloud Functions
- productId: STORAGE_SECTION
label: Cloud Storage
- productId: EVENTARC_SECTION
label: Eventarc
content:
architecture:
diagramUrl: assets/architecture_diagram.svg
description:
- Uploading a new document triggers the webhook Cloud Function.
- Document AI extracts the text from the document file.
- Indexes the document text in Vector Search.
- A Vertex AI Large Language Model generates questions and answers from the document text.
- The questions and answers pairs are saved into Firestore.
- A fine tuning dataset is generated from the Firestore database.
- After human validation, a fine tuned Large Language Model is deployed and saved in the Model Registry.
documentation:
- title: Knowledge Base using Generative AI
url: assets/architecture_diagram.svg
examples:
- name: simple_example
location: examples/simple_example
interfaces:
variables:
- name: disable_services_on_destroy
description: Whether project services will be disabled when the resources are destroyed.
varType: bool
defaultValue: false
- name: documentai_location
description: Document AI location, see https://cloud.google.com/document-ai/docs/regions
varType: string
defaultValue: us
- name: firestore_location
description: Firestore location, see https://firebase.google.com/docs/firestore/locations
varType: string
defaultValue: nam5
- name: labels
description: A set of key/value label pairs to assign to the resources deployed by this blueprint.
varType: map(string)
defaultValue: {}
- name: project_id
description: The Google Cloud project ID to deploy to
varType: string
defaultValue: null
required: true
- name: region
description: The Google Cloud region to deploy to
varType: string
defaultValue: us-central1
- name: unique_names
description: Whether to use unique names for resources
varType: bool
defaultValue: false
outputs:
- name: bucket_docs_name
description: The name of the docs bucket created
- name: bucket_main_name
description: The name of the main bucket created
- name: docs_index_endpoint_id
description: The ID of the docs index endpoint
- name: docs_index_id
description: The ID of the docs index
- name: documentai_processor_id
description: The full Document AI processor path ID
- name: firestore_database_name
description: The name of the Firestore database created
- name: neos_tutorial_url
description: The URL to launch the in-console tutorial for the Generative AI Knowledge Base solution
- name: predictions_notebook_url
description: The URL to open the notebook for model predictions in Colab
- name: unique_id
description: The unique ID for this deployment
requirements:
roles:
- level: Project
roles:
- roles/aiplatform.user
- roles/artifactregistry.admin
- roles/documentai.editor
- roles/firebase.admin
- roles/iam.serviceAccountAdmin
- roles/iam.serviceAccountUser
- roles/resourcemanager.projectIamAdmin
- roles/serviceusage.serviceUsageAdmin
services:
- aiplatform.googleapis.com
- artifactregistry.googleapis.com
- cloudbuild.googleapis.com
- cloudfunctions.googleapis.com
- cloudresourcemanager.googleapis.com
- documentai.googleapis.com
- eventarc.googleapis.com
- firestore.googleapis.com
- run.googleapis.com
- serviceusage.googleapis.com
- storage.googleapis.com