REST Resource: projects.locations.ragCorpora

Resource: RagCorpus

A RagCorpus is a RagFile container and a project can have multiple RagCorpora.

Fields
name string

Output only. The resource name of the RagCorpus.

displayName string

Required. The display name of the RagCorpus. The name can be up to 128 characters long and can consist of any UTF-8 characters.

description string

Optional. The description of the RagCorpus.

createTime string (Timestamp format)

Output only. timestamp when this RagCorpus was created.

Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime string (Timestamp format)

Output only. timestamp when this RagCorpus was last updated.

Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

corpusStatus object (CorpusStatus)

Output only. RagCorpus state.

backend_config Union type
The backend config of the RagCorpus. It can be data store and/or retrieval engine. backend_config can be only one of the following:
vectorDbConfig object (RagVectorDbConfig)

Optional. Immutable. The config for the Vector DBs.

vertexAiSearchConfig object (VertexAiSearchConfig)

Optional. Immutable. The config for the Vertex AI Search.

JSON representation
{
  "name": string,
  "displayName": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "corpusStatus": {
    object (CorpusStatus)
  },

  // backend_config
  "vectorDbConfig": {
    object (RagVectorDbConfig)
  },
  "vertexAiSearchConfig": {
    object (VertexAiSearchConfig)
  }
  // Union type
}

RagVectorDbConfig

Config for the Vector DB to use for RAG.

Fields
apiAuth object (ApiAuth)

Authentication config for the chosen Vector DB.

ragEmbeddingModelConfig object (RagEmbeddingModelConfig)

Optional. Immutable. The embedding model config of the Vector DB.

vector_db Union type
The config for the Vector DB. vector_db can be only one of the following:
ragManagedDb object (RagManagedDb)

The config for the RAG-managed Vector DB.

pinecone object (Pinecone)

The config for the Pinecone.

JSON representation
{
  "apiAuth": {
    object (ApiAuth)
  },
  "ragEmbeddingModelConfig": {
    object (RagEmbeddingModelConfig)
  },

  // vector_db
  "ragManagedDb": {
    object (RagManagedDb)
  },
  "pinecone": {
    object (Pinecone)
  },
  "vertexVectorSearch": {
    object (VertexVectorSearch)
  }
  // Union type
}

RagManagedDb

The config for the default RAG-managed Vector DB.

Fields
retrieval_strategy Union type
Choice of retrieval strategy. retrieval_strategy can be only one of the following:
knn object (KNN)

Performs a KNN search on RagCorpus. Default choice if not specified.

ann object (ANN)

Performs an ANN search on RagCorpus. Use this if you have a lot of files (> 10K) in your RagCorpus and want to reduce the search latency.

JSON representation
{

  // retrieval_strategy
  "knn": {
    object (KNN)
  },
  "ann": {
    object (ANN)
  }
  // Union type
}

KNN

This type has no fields.

Config for KNN search.

ANN

Config for ANN search.

RagManagedDb uses a tree-based structure to partition data and facilitate faster searches. As a tradeoff, it requires longer indexing time and manual triggering of index rebuild via the ImportRagFiles and ragCorpora.patch API.

Fields
treeDepth integer

The depth of the tree-based structure. Only depth values of 2 and 3 are supported.

Recommended value is 2 if you have if you have O(10K) files in the RagCorpus and set this to 3 if more than that.

Default value is 2.

leafCount integer

Number of leaf nodes in the tree-based structure. Each leaf node contains groups of closely related vectors along with their corresponding centroid.

Recommended value is 10 * sqrt(num of RagFiles in your RagCorpus).

Default value is 500.

JSON representation
{
  "treeDepth": integer,
  "leafCount": integer
}

Pinecone

The config for the Pinecone.

Fields
indexName string

Pinecone index name. This value cannot be changed after it's set.

JSON representation
{
  "indexName": string
}

VertexVectorSearch

The config for the Vertex Vector Search.

Fields
indexEndpoint string

The resource name of the Index Endpoint. Format: projects/{project}/locations/{location}/indexEndpoints/{indexEndpoint}

index string

The resource name of the Index. Format: projects/{project}/locations/{location}/indexes/{index}

JSON representation
{
  "indexEndpoint": string,
  "index": string
}

RagEmbeddingModelConfig

Config for the embedding model to use for RAG.

Fields
model_config Union type
The model config to use. model_config can be only one of the following:
vertexPredictionEndpoint object (VertexPredictionEndpoint)

The Vertex AI Prediction Endpoint that either refers to a publisher model or an endpoint that is hosting a 1P fine-tuned text embedding model. endpoints hosting non-1P fine-tuned text embedding models are currently not supported. This is used for dense vector search.

JSON representation
{

  // model_config
  "vertexPredictionEndpoint": {
    object (VertexPredictionEndpoint)
  }
  // Union type
}

VertexPredictionEndpoint

Config representing a model hosted on Vertex Prediction Endpoint.

Fields
endpoint string

Required. The endpoint resource name. Format: projects/{project}/locations/{location}/publishers/{publisher}/models/{model} or projects/{project}/locations/{location}/endpoints/{endpoint}

model string

Output only. The resource name of the model that is deployed on the endpoint. Present only when the endpoint is not a publisher model. Pattern: projects/{project}/locations/{location}/models/{model}

modelVersionId string

Output only. version id of the model that is deployed on the endpoint. Present only when the endpoint is not a publisher model.

JSON representation
{
  "endpoint": string,
  "model": string,
  "modelVersionId": string
}

VertexAiSearchConfig

Config for the Vertex AI Search.

Fields
servingConfig string

Vertex AI Search Serving Config resource full name. For example, projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{servingConfig} or projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}/servingConfigs/{servingConfig}.

JSON representation
{
  "servingConfig": string
}

CorpusStatus

RagCorpus status.

Fields
state enum (State)

Output only. RagCorpus life state.

errorStatus string

Output only. Only when the state field is ERROR.

JSON representation
{
  "state": enum (State),
  "errorStatus": string
}

State

RagCorpus life state.

Enums
UNKNOWN This state is not supposed to happen.
INITIALIZED RagCorpus resource entry is initialized, but hasn't done validation.
ACTIVE RagCorpus is provisioned successfully and is ready to serve.
ERROR RagCorpus is in a problematic situation. See errorMessage field for details.

Methods

create

Creates a RagCorpus.

delete

Deletes a RagCorpus.

get

Gets a RagCorpus.

list

Lists RagCorpora in a Location.

patch

Updates a RagCorpus.