This module handles the creation of AI Applications data sources, engines and related configurations.
This module uses the API discoveryengine.googleapis.com
To run this module you'll need to set a quota project.
export GOOGLE_BILLING_PROJECT=your-project-id
export USER_PROJECT_OVERRIDE=trueThis is a minimal example to create a Chat Engine agent.
module "ai-applications" {
source = "./fabric/modules/ai-applications"
name = "my-chat-app"
project_id = var.project_id
data_stores_configs = {
data-store-1 = {
solution_types = ["SOLUTION_TYPE_CHAT"]
}
}
engines_configs = {
my-chat-engine = {
data_store_ids = ["data-store-1"]
chat_engine_config = {
company_name = "Google"
default_language_code = "en"
time_zone = "America/Los_Angeles"
}
}
}
}
# tftest modules=1 resources=2This is a minimal example to create a Search Engine agent.
module "ai-applications" {
source = "./fabric/modules/ai-applications"
name = "my-search-app"
project_id = var.project_id
data_stores_configs = {
data-store-1 = {
solution_types = ["SOLUTION_TYPE_SEARCH"]
}
}
engines_configs = {
my-search-engine = {
data_store_ids = ["data-store-1"]
search_engine_config = {}
}
}
}
# tftest modules=1 resources=2By default services are deployed globally. You optionally specify a region where to deploy them.
module "ai-applications" {
source = "./fabric/modules/ai-applications"
name = "my-chat-app"
project_id = var.project_id
location = var.region
data_stores_configs = {
data-store-1 = {
solution_types = ["SOLUTION_TYPE_CHAT"]
}
}
engines_configs = {
my-chat-engine = {
data_store_ids = ["data-store-1"]
chat_engine_config = {
company_name = "Google"
default_language_code = "en"
time_zone = "America/Los_Angeles"
}
}
}
}
# tftest modules=1 resources=2You can reference from engines existing data sources created outside this module, by passing their ids. In this case, you'll need to configure in the engine valid industry_vertical and location.
module "ai-applications" {
source = "./fabric/modules/ai-applications"
name = "my-search-app"
project_id = var.project_id
engines_configs = {
my-search-engine = {
data_store_ids = [
"projects/my-project/locations/global/collections/my-collection/dataStores/data-store-1"
]
industry_vertical = "GENERIC"
search_engine_config = {}
}
}
}
# tftest modules=1 resources=1You can create and connect from your engines multiple data stores.
module "ai-applications" {
source = "./fabric/modules/ai-applications"
name = "my-chat-app"
project_id = var.project_id
data_stores_configs = {
data-store-1 = {
solution_types = ["SOLUTION_TYPE_CHAT"]
}
data-store-2 = {
solution_types = ["SOLUTION_TYPE_CHAT"]
}
}
engines_configs = {
my-chat-engine = {
data_store_ids = [
"data-store-1",
"data-store-2",
"projects/my-project/locations/global/collections/default_collection/dataStores/data-store-3"
]
chat_engine_config = {
company_name = "Google"
default_language_code = "en"
time_zone = "America/Los_Angeles"
}
}
}
}
# tftest modules=1 resources=3You can configure JSON data store schema definitions directly in your data store configuration.
module "ai-applications" {
source = "./fabric/modules/ai-applications"
name = "my-search-app"
project_id = var.project_id
data_stores_configs = {
data-store-1 = {
json_schema = "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"datetime_detection\":true,\"type\":\"object\",\"geolocation_detection\":true}"
solution_types = ["SOLUTION_TYPE_SEARCH"]
}
}
}
# tftest modules=1 resources=2You can make data stores point to multiple websites and optionally specify their sitemap.
module "ai-applications" {
source = "./fabric/modules/ai-applications"
name = "my-search-app"
project_id = var.project_id
data_stores_configs = {
website-search-ds = {
solution_types = ["SOLUTION_TYPE_SEARCH"]
sites_search_config = {
sitemap_uri = "https://cloud.google.com/sitemap.xml"
target_sites = {
include-google-docs = {
provided_uri_pattern = "cloud.google.com/docs/*"
}
exclude-one-page = {
exact_match = true
provided_uri_pattern = "https://cloud.google.com/ai-applications"
type = "EXCLUDE"
}
}
}
}
}
engines_configs = {
my-search-engine = {
data_store_ids = [
"website-search-ds"
]
industry_vertical = "GENERIC"
search_engine_config = {}
}
}
}
# tftest modules=1 resources=5| name | description | type | required | default |
|---|---|---|---|---|
| name | The name of the resources. | string |
✓ | |
| project_id | The ID of the project where the data stores and the agents will be created. | string |
✓ | |
| data_stores_configs | The ai-applications datastore configurations. | map(object({…})) |
{} |
|
| engines_configs | The ai-applications engines configurations. | map(object({…})) |
{} |
|
| location | Location where the data stores and agents will be created. | string |
"global" |
| name | description | sensitive |
|---|---|---|
| chat_engine_ids | The ids of the chat engines created. | |
| chat_engines | The chat engines created. | |
| data_store_ids | The ids of the data stores created. | |
| data_stores | The data stores resources created. | |
| search_engine_ids | The ids of the search engines created. | |
| search_engines | The search engines created. |