RAG Engine API

Die Vertex AI RAG Engine ist eine Komponente der Vertex AI-Plattform, die die Retrieval-Augmented Generation (RAG) ermöglicht. Mit der RAG Engine können Large Language Models (LLMs) auf Daten aus externen Wissensquellen wie Dokumenten und Datenbanken zugreifen und diese einbinden. Mit RAG können LLMs genauere und informativere Antworten generieren.

Beispielsyntax

In diesem Abschnitt finden Sie die Syntax zum Erstellen eines RAG-Korpus.

curl

PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora\
  -d '{
  "display_name" : "...",
  "description": "..."
}'

Python

corpus = rag.create_corpus(display_name=..., description=...)
print(corpus)

Parameterliste

In diesem Abschnitt finden Sie Folgendes:

Parameter Beispiele
Siehe Parameter für die Corpusverwaltung. Beispiele für die Corpusverwaltung
Siehe Parameter für die Dateiverwaltung. Beispiele für die Dateiverwaltung

Parameter für die Korpusverwaltung

Informationen zu einem RAG-Korpus finden Sie unter Corpus-Verwaltung.

RAG-Korpus erstellen

In dieser Tabelle sind die Parameter aufgeführt, die zum Erstellen eines RAG-Korpus verwendet werden.

Anfragetext
Parameter

display_name

Erforderlich: string

Der Anzeigename des RAG-Corpus.

description

Optional: string

Die Beschreibung des RAG-Korpus.

vector_db_config

Optional: Unveränderlich: RagVectorDbConfig

Die Konfiguration für die Vektordatenbanken.

vertex_ai_search_config.serving_config

Optional: string

Die Konfiguration für die Vertex AI Search.

Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config} oder projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config}

RagVectorDbConfig
Parameter

rag_managed_db

oneof vector_db: RagVectorDbConfig.RagManagedDb

Wenn keine Vektordatenbank angegeben ist, ist rag_managed_db die Standardvektordatenbank.

weaviate

oneof vector_db: RagVectorDbConfig.Weaviate

Gibt Ihre Weaviate-Instanz an.

weaviate.http_endpoint

string

Der HTTP-Endpunkt der Weaviate-Instanz.

Dieser Wert kann nach der Festlegung nicht mehr geändert werden. Du kannst ihn im CreateRagCorpus API-Aufruf leer lassen und in einem nachfolgenden UpdateRagCorpus API-Aufruf einen nicht leeren Wert festlegen.

weaviate.collection_name

string

Die Weaviate-Sammlung, der der RAG-Korpus zugeordnet ist.

Dieser Wert kann nach der Festlegung nicht mehr geändert werden. Du kannst ihn im CreateRagCorpus API-Aufruf leer lassen und in einem nachfolgenden UpdateRagCorpus API-Aufruf einen nicht leeren Wert festlegen.

pinecone

oneof vector_db: RagVectorDbConfig.Pinecone

Gibt Ihre Pinecone-Instanz an.

pinecone.index_name

string

Mit diesem Namen wird der Pinecone-Index erstellt, der mit dem RAG-Korpus verwendet wird.

Dieser Wert kann nach der Festlegung nicht mehr geändert werden. Du kannst ihn im CreateRagCorpus API-Aufruf leer lassen und in einem nachfolgenden UpdateRagCorpus API-Aufruf einen nicht leeren Wert festlegen.

vertex_feature_store

oneof vector_db: RagVectorDbConfig.VertexFeatureStore

Gibt die Vertex AI Feature Store-Instanz an.

vertex_feature_store.feature_view_resource_name

string

Die Vertex AI Feature Store-FeatureView, zu der das RAG-Corpus zugeordnet ist.

Format: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

Dieser Wert kann nach der Festlegung nicht mehr geändert werden. Du kannst ihn im CreateRagCorpus API-Aufruf leer lassen und in einem nachfolgenden UpdateRagCorpus API-Aufruf einen nicht leeren Wert festlegen.

vertex_vector_search

oneof vector_db: RagVectorDbConfig.VertexVectorSearch

Gibt die Vertex Vector Search-Instanz an.

vertex_vector_search.index

string

Dies ist der Ressourcenname des Vektorsuchindex, der mit dem RAG-Korpus verwendet wird.

Format: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Dieser Wert kann nach der Festlegung nicht mehr geändert werden. Du kannst ihn im CreateRagCorpus API-Aufruf leer lassen und in einem nachfolgenden UpdateRagCorpus API-Aufruf einen nicht leeren Wert festlegen.

vertex_vector_search.index_endpoint

string

Dies ist der Ressourcenname des Endpunkts des Vektorsuchindex, der mit dem RAG-Korpus verwendet wird.

Format: projects/{project}/locations/{location}/indexes/{index}

Dieser Wert kann nach der Festlegung nicht mehr geändert werden. Du kannst ihn im CreateRagCorpus API-Aufruf leer lassen und in einem nachfolgenden UpdateRagCorpus API-Aufruf einen nicht leeren Wert festlegen.

api_auth.api_key_config.api_key_secret_version

string

Dies ist der vollständige Ressourcenname des im Secret Manager gespeicherten Secrets, der Ihren Weaviate- oder Pinecone-API-Schlüssel enthält, der von Ihrer Auswahl der Vektordatenbank abhängt.

Format: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

Du kannst ihn im CreateRagCorpus API-Aufruf leer lassen und in einem nachfolgenden UpdateRagCorpus API-Aufruf einen nicht leeren Wert festlegen.

rag_embedding_model_config.vertex_prediction_endpoint.endpoint

Optional: Unveränderlich: string

Das Einbettungsmodell, das für den RAG-Corpus verwendet werden soll. Dieser Wert kann nach der Festlegung nicht mehr geändert werden. Wenn Sie dieses Feld leer lassen, verwenden wir text-embedding-004 als Einbettungsmodell.

RAG-Korpus aktualisieren

In dieser Tabelle sind die Parameter aufgeführt, die zum Aktualisieren eines RAG-Corpus verwendet werden.

Anfragetext
Parameter

display_name

Optional: string

Der Anzeigename des RAG-Corpus.

description

Optional: string

Die Beschreibung des RAG-Korpus.

rag_vector_db.weaviate.http_endpoint

string

Der HTTP-Endpunkt der Weaviate-Instanz.

Wenn Ihre RagCorpus mit einer Weaviate-Konfiguration erstellt wurde und dieses Feld noch nie festgelegt wurde, können Sie den HTTP-Endpunkt der Weaviate-Instanz aktualisieren.

rag_vector_db.weaviate.collection_name

string

Die Weaviate-Sammlung, der der RAG-Korpus zugeordnet ist.

Wenn Ihre RagCorpus mit einer Weaviate-Konfiguration erstellt wurde und dieses Feld noch nie festgelegt wurde, können Sie den Sammlungsnamen der Weaviate-Instanz aktualisieren.

rag_vector_db.pinecone.index_name

string

Mit diesem Namen wird der Pinecone-Index erstellt, der mit dem RAG-Korpus verwendet wird.

Wenn Ihre RagCorpus mit einer Pinecone-Konfiguration erstellt wurde und dieses Feld noch nie festgelegt wurde, können Sie den Indexnamen der Pinecone-Instanz aktualisieren.

rag_vector_db.vertex_feature_store.feature_view_resource_name

string

Die Vertex AI Feature Store-FeatureView, zu der das RAG-Corpus zugeordnet ist.

Format: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

Wenn Ihre RagCorpus mit einer Vertex AI Feature Store-Konfiguration erstellt wurde und dieses Feld noch nie festgelegt wurde, können Sie es aktualisieren.

rag_vector_db.vertex_vector_search.index

string

Dies ist der Ressourcenname des Vektorsuchindex, der mit dem RAG-Korpus verwendet wird.

Format: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Wenn Ihre RagCorpus mit einer Vector Search-Konfiguration erstellt wurde und dieses Feld noch nie festgelegt wurde, können Sie es aktualisieren.

rag_vector_db.vertex_vector_search.index_endpoint

string

Dies ist der Ressourcenname des Endpunkts des Vektorsuchindex, der mit dem RAG-Korpus verwendet wird.

Format: projects/{project}/locations/{location}/indexes/{index}

Wenn Ihre RagCorpus mit einer Vector Search-Konfiguration erstellt wurde und dieses Feld noch nie festgelegt wurde, können Sie es aktualisieren.

rag_vector_db.api_auth.api_key_config.api_key_secret_version

string

Der vollständige Ressourcenname des im Secret Manager gespeicherten Secrets, der Ihren Weaviate- oder Pinecone-API-Schlüssel enthält, hängt von der von Ihnen ausgewählten Vektordatenbank ab.

Format: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

RAG-Korpora auflisten

In dieser Tabelle sind die Parameter aufgeführt, die zum Auflisten von RAG-Korpora verwendet werden.

Parameter

page_size

Optional: int

Die Standardgröße der Listenseite

page_token

Optional: string

Das Standardtoken der Listenseite Wird normalerweise aus [ListRagCorporaResponse.next_page_token][] des vorherigen [VertexRagDataService.ListRagCorpora][]-Aufrufs abgerufen.

RAG-Korpus abrufen

In dieser Tabelle sind die Parameter aufgeführt, die zum Abrufen eines RAG-Korpus verwendet werden.

Parameter

name

string

Der Name der RagCorpus-Ressource. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

RAG-Korpus löschen

In dieser Tabelle sind die Parameter aufgeführt, die zum Löschen eines RAG-Corpus verwendet werden.

Parameter

name

string

Der Name der RagCorpus-Ressource. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

Parameter für die Dateiverwaltung

Informationen zu einer RAG-Datei finden Sie unter Dateiverwaltung.

RAG-Datei hochladen

In dieser Tabelle sind die Parameter aufgeführt, die zum Hochladen einer RAG-Datei verwendet werden.

Anfragetext
Parameter

parent

string

Der Name der RagCorpus-Ressource. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

rag_file

Erforderlich: RagFile

Die Datei, die hochgeladen werden soll.

upload_rag_file_config

Erforderlich: UploadRagFileConfig

Die Konfiguration für die RagFile, die in die RagCorpus hochgeladen werden soll.

RagFile

display_name

Erforderlich: string

Der Anzeigename der RAG-Datei.

description

Optional: string

Die Beschreibung der RAG-Datei.

UploadRagFileConfig

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

Anzahl der Tokens, die jeder Block hat.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

Die Überschneidung zwischen den Blöcken.

RAG-Dateien importieren

In dieser Tabelle sind die Parameter aufgeführt, die zum Importieren einer RAG-Datei verwendet werden.

Parameter

parent

Erforderlich: string

Der Name der RagCorpus-Ressource.

Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

gcs_source

oneof import_source: GcsSource

Cloud Storage-Speicherort

Es wird der Import einzelner Dateien sowie ganzer Cloud Storage-Verzeichnisse unterstützt.

gcs_source.uris

list von string

Cloud Storage-URI, der die Uploaddatei enthält

google_drive_source

oneof import_source: GoogleDriveSource

Speicherort für Google Drive

Es können sowohl einzelne Dateien als auch Google Drive-Ordner importiert werden.

slack_source

oneof import_source: SlackSource

Der Slack-Kanal, in den die Datei hochgeladen wird.

jira_source

oneof import_source: JiraSource

Die Jira-Abfrage, in die die Datei hochgeladen wird.

share_point_sources

oneof import_source: SharePointSources

Die SharePoint-Quellen, in die die Datei hochgeladen wird.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

Anzahl der Tokens, die jeder Block hat.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

Die Überschneidung zwischen den Blöcken.

rag_file_parsing_config

Optional: RagFileParsingConfig

Gibt die Parsekonfiguration für RagFiles an.

Wenn dieses Feld nicht festgelegt ist, verwendet RAG den Standardparser.

max_embedding_requests_per_min

Optional: int32

Die maximale Anzahl von Abfragen pro Minute, die dieser Job an das im Corpus angegebene Einbettungsmodell stellen darf. Dieser Wert ist für diesen Job spezifisch und wird nicht für andere Importjobs verwendet. Rufen Sie die Seite „Kontingente“ des Projekts auf, um einen geeigneten Wert festzulegen.

Wenn nichts angegeben ist, wird der Standardwert 1.000 QPM verwendet.

GoogleDriveSource

resource_ids.resource_id

Erforderlich: string

Die ID der Google Drive-Ressource.

resource_ids.resource_type

Erforderlich: string

Der Typ der Google Drive-Ressource.

SlackSource

channels.channels

Wiederholt: SlackSource.SlackChannels.SlackChannel

Informationen zum Slack-Kanal, einschließlich ID und Zeitraum für den Import.

channels.channels.channel_id

Erforderlich: string

Die Slack-Kanal-ID.

channels.channels.start_time

Optional: google.protobuf.Timestamp

Der Startzeitstempel für die zu importierenden Nachrichten.

channels.channels.end_time

Optional: google.protobuf.Timestamp

Der Endzeitstempel für die zu importierenden Nachrichten.

channels.api_key_config.api_key_secret_version

Erforderlich: string

Der vollständige Ressourcenname des Secrets, das in Secret Manager gespeichert ist und ein Slack-Kanalzugriffstoken mit Zugriff auf die Slack-Kanal-IDs enthält.
Weitere Informationen finden Sie unter https://api.slack.com/tutorials/tracks/getting-a-token.

Format: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

JiraSource

jira_queries.projects

Wiederholt: string

Eine Liste der Jira-Projekte, die vollständig importiert werden sollen.

jira_queries.custom_queries

Wiederholt: string

Eine Liste der zu importierenden benutzerdefinierten Jira-Abfragen. Informationen zu JQL (Jira Query Language) finden Sie unter
Jira-Support.

jira_queries.email

Erforderlich: string

Die E-Mail-Adresse für Jira.

jira_queries.server_uri

Erforderlich: string

Die Jira-Server-URI.

jira_queries.api_key_config.api_key_secret_version

Erforderlich: string

Der vollständige Ressourcenname des Secrets, das im Secret Manager gespeichert ist und den Jira API-Schlüssel enthält, der Zugriff auf die Slack-Channel-IDs hat.
Weitere Informationen: https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/

Format: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

SharePointSources

share_point_sources.sharepoint_folder_path

oneof in folder_source: string

Der Pfad des SharePoint-Ordners, aus dem heruntergeladen werden soll.

share_point_sources.sharepoint_folder_id

oneof in folder_source: string

Die ID des SharePoint-Ordners, aus dem heruntergeladen werden soll.

share_point_sources.drive_name

oneof in drive_source: string

Der Name des Laufwerks, von dem heruntergeladen werden soll.

share_point_sources.drive_id

oneof in drive_source: string

Die ID des Laufwerks, von dem heruntergeladen werden soll.

share_point_sources.client_id

string

Die Anwendungs-ID der im Microsoft Azure-Portal registrierten App.
Die Anwendung muss außerdem mit den MS Graph-Berechtigungen „Files.ReadAll“, „Sites.ReadAll“ und „BrowserSiteLists.Read.All“ konfiguriert sein.

share_point_sources.client_secret.api_key_secret_version

Erforderlich: string

Der vollständige Ressourcenname des im Secret Manager gespeicherten Secrets, das das Anwendungssecret für die in Azure registrierte App enthält.

Format: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

share_point_sources.tenant_id

string

Eindeutige Kennung der Azure Active Directory-Instanz.

share_point_sources.sharepoint_site_name

string

Der Name der SharePoint-Website, von der heruntergeladen werden soll. Dies kann der Websitename oder die Website-ID sein.

RagFileParsingConfig

layout_parser

oneof parser: RagFileParsingConfig.LayoutParser

Der Layout-Parser, der für RagFile verwendet werden soll.

layout_parser.processor_name

string

Der vollständige Ressourcenname eines Document AI-Prozessors oder einer Document AI-Prozessorversion.

Format:
projects/{project_id}/locations/{location}/processors/{processor_id}
projects/{project_id}/locations/{location}/processors/{processor_id}/processorVersions/{processor_version_id}

layout_parser.max_parsing_requests_per_min

string

Die maximale Anzahl von Anfragen, die der Job pro Minute an den Document AI-Prozessor senden darf.

Weitere Informationen finden Sie unter https://cloud.google.com/document-ai/quotas und auf der Seite „Kontingent“ für Ihr Projekt. Wenn nichts angegeben ist, wird der Standardwert 120 QPM verwendet.

RAG-Datei abrufen

In dieser Tabelle sind die Parameter aufgeführt, die zum Abrufen einer RAG-Datei verwendet werden.

Parameter

name

string

Der Name der RagFile-Ressource. Format: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

RAG-Datei löschen

In dieser Tabelle sind die Parameter aufgeführt, die zum Löschen einer RAG-Datei verwendet werden.

Parameter

name

string

Der Name der RagFile-Ressource. Format: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

Abruf und Vorhersage

In diesem Abschnitt sind die Abruf- und Vorhersageparameter aufgeführt.

Abrufparameter

In dieser Tabelle sind die Parameter für die retrieveContexts API aufgeführt.

Parameter

parent

Erforderlich: string

Der Ressourcenname des Standorts, für den RagContexts abgerufen werden soll.
Die Nutzer müssen die Berechtigung haben, einen Aufruf im Projekt auszuführen.

Format: projects/{project}/locations/{location}

vertex_rag_store

VertexRagStore

Die Datenquelle für Vertex RagStore.

query

Erforderlich: RagQuery

Abrufabfrage für eine einzelne RAG.

VertexRagStore
VertexRagStore

rag_resources

Liste: RagResource

Die Darstellung der RAG-Quelle. Sie können damit nur den Korpus oder RagFiles angeben. Es wird nur ein Korpus oder mehrere Dateien aus einem Korpus unterstützt.

rag_resources.rag_corpus

Optional: string

RagCorpora-Ressourcenname.

Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}

rag_resources.rag_file_ids

Liste: string

Eine Liste mit RagFile-Ressourcen.

Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file}

RagQuery

text

string

Die Abfrage im Textformat, um relevante Kontexte abzurufen.

rag_retrieval_config

Optional: RagRetrievalConfig

Die Abrufkonfiguration für die Abfrage.

RagRetrievalConfig

top_k

Optional: int32

Die Anzahl der Kontexte, die abgerufen werden sollen.

hybrid_search.alpha

Optional: float

Der Alphawert steuert die Gewichtung zwischen Ergebnissen der dichten und der dünnen Vektorsuche. Der Bereich ist [0, 1], wobei 0 nur die sparse Vektorsuche und 1 nur die dichte Vektorsuche bedeutet. Der Standardwert ist 0,5, was eine ausgewogene Suche nach dünn besetzten und dicht besetzten Vektoren bedeutet.

Die Hybridsuche ist nur für Weaviate verfügbar.

filter.vector_distance_threshold

oneof vector_db_threshold: double

Es werden nur Kontexte mit einer Vektordistanz zurückgegeben, die kleiner als der Grenzwert ist.

filter.vector_similarity_threshold

oneof vector_db_threshold: double

Es werden nur Kontexte mit einer Vektorähnlichkeit zurückgegeben, die größer als der Schwellenwert ist.

ranking.rank_service.model_name

Optional: string

Der Modellname des Rangdienstes.

Beispiel: semantic-ranker-512@latest

ranking.llm_ranker.model_name

Optional: string

Der Name des Modells, der für das Ranking verwendet wird.

Beispiel: gemini-1.5-pro

Vorhersageparameter

In dieser Tabelle sind die Parameter für die Vorhersage aufgeführt.

GenerateContentRequest

tools.retrieval.vertex_rag_store

VertexRagStore

Legen Sie fest, dass eine Datenquelle verwendet werden soll, die vom Vertex AI RAG-Speicher unterstützt wird.

Weitere Informationen finden Sie unter VertexRagStore.

Beispiele für die Korpusverwaltung

In diesem Abschnitt finden Sie Beispiele dafür, wie Sie Ihren RAG-Corpus mit der API verwalten.

Beispiel für einen RAG-Korpus erstellen

Dieses Codebeispiel zeigt, wie Sie einen RAG-Corpus erstellen.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • CORPUS_DISPLAY_NAME: Der Anzeigename von RagCorpus.
  • CORPUS_DESCRIPTION: Die Beschreibung von RagCorpus.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora

JSON-Text der Anfrage:

{
  "display_name" : "CORPUS_DISPLAY_NAME",
  "description": "CORPUS_DESCRIPTION",
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" | Select-Object -Expand Content
Sie sollten einen erfolgreichen Statuscode (2xx) erhalten.

Im folgenden Beispiel wird gezeigt, wie Sie mithilfe der REST API einen RAG-Korpus erstellen.

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  CORPUS_DISPLAY_NAME: The display name of the <code>RagCorpus</code>.
    // CreateRagCorpus
    // Input: LOCATION, PROJECT_ID, CORPUS_DISPLAY_NAME
    // Output: CreateRagCorpusOperationMetadata
    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora \
    -d '{
          "display_name" : "CORPUS_DISPLAY_NAME"
      }'

Vertex AI SDK für Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# display_name = "test_corpus"
# description = "Corpus Description"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

# Configure embedding model (Optional)
embedding_model_config = rag.EmbeddingModelConfig(
    publisher_model="publishers/google/models/text-embedding-004"
)

corpus = rag.create_corpus(
    display_name=display_name,
    description=description,
    embedding_model_config=embedding_model_config,
)
print(corpus)
# Example response:
# RagCorpus(name='projects/1234567890/locations/us-central1/ragCorpora/1234567890',
# display_name='test_corpus', description='Corpus Description', embedding_model_config=...
# ...

Beispiel für einen RAG-Korpus aktualisieren

Sie können Ihren RAG-Korpus mit einem neuen Anzeigenamen, einer neuen Beschreibung und einer neuen Vektordatenbankkonfiguration aktualisieren. Die folgenden Parameter in Ihrem RAG-Corpus können Sie jedoch nicht ändern:

  • Der Typ der Vektordatenbank. Sie können beispielsweise die Vektordatenbank nicht von Weaviate zu Vertex AI Feature Store ändern.
  • Wenn Sie die Option „Verwaltete Datenbank“ verwenden, können Sie die Konfiguration der Vektordatenbank nicht aktualisieren.

In diesen Beispielen wird gezeigt, wie ein RAG-Korpus aktualisiert wird.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • CORPUS_ID: Die Korpus-ID Ihres RAG-Korpus.
  • CORPUS_DISPLAY_NAME: Der Anzeigename von RagCorpus.
  • CORPUS_DESCRIPTION: Die Beschreibung von RagCorpus.
  • INDEX_NAME: Der Ressourcenname der Vector Search Index. Format: projects/{project}/locations/{location}/indexes/{index}
  • INDEX_ENDPOINT_NAME: Der Ressourcenname der Vector Search Index Endpoint. Format: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

HTTP-Methode und URL:

PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID

JSON-Text der Anfrage:

{
  "display_name" : "CORPUS_DISPLAY_NAME",
  "description": "CORPUS_DESCRIPTION",
  "rag_vector_db_config": {
     "vertex_vector_search": {
         "index": "INDEX_NAME",
         "index_endpoint": "INDEX_ENDPOINT_NAME",
     }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID" | Select-Object -Expand Content
Sie sollten einen erfolgreichen Statuscode (2xx) erhalten.

Beispiel für die Auflistung von RAG-Korpora

Dieses Codebeispiel zeigt, wie alle RAG-Korpora aufgelistet werden.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • PAGE_SIZE: Die Standardgröße der Listenseite Sie können die Anzahl der RagCorpora anpassen, die pro Seite zurückgegeben werden sollen, indem Sie den Parameter page_size aktualisieren.
  • PAGE_TOKEN: Das Standardtoken der Listenseite Wird normalerweise mit ListRagCorporaResponse.next_page_token des vorherigen VertexRagDataService.ListRagCorpora-Aufrufs abgerufen.

HTTP-Methode und URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"

PowerShell

Führen Sie folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
Sie sollten einen erfolgreichen Statuscode (2xx) und eine Liste von RagCorpora unter dem angegebenen PROJECT_ID erhalten.

Vertex AI SDK für Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

corpora = rag.list_corpora()
print(corpora)
# Example response:
# ListRagCorporaPager<rag_corpora {
#   name: "projects/[PROJECT_ID]/locations/us-central1/ragCorpora/2305843009213693952"
#   display_name: "test_corpus"
#   create_time {
# ...

Beispiel für einen RAG-Korpus abrufen

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_ID: Die ID der Ressource RagCorpus.

HTTP-Methode und URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

PowerShell

Führen Sie folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
Eine erfolgreiche Antwort gibt die Ressource RagCorpus zurück.

Die Befehle get und list werden in einem Beispiel verwendet, um zu veranschaulichen, wie RagCorpus das Feld rag_embedding_model_config innerhalb des vector_db_config verwendet, das auf das von Ihnen ausgewählte Einbettungsmodell verweist.

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
// GetRagCorpus
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID
// Output: RagCorpus
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID

// ListRagCorpora
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/

Vertex AI SDK für Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

corpus = rag.get_corpus(name=corpus_name)
print(corpus)
# Example response:
# RagCorpus(name='projects/[PROJECT_ID]/locations/us-central1/ragCorpora/1234567890',
# display_name='test_corpus', description='Corpus Description',
# ...

Beispiel für einen RAG-Korpus löschen

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_ID: Die ID der Ressource RagCorpus.

HTTP-Methode und URL:

DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

PowerShell

Führen Sie folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
Eine erfolgreiche Antwort gibt DeleteOperationMetadata zurück.

Vertex AI SDK für Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag.delete_corpus(name=corpus_name)
print(f"Corpus {corpus_name} deleted.")
# Example response:
# Successfully deleted the RagCorpus.
# Corpus projects/[PROJECT_ID]/locations/us-central1/ragCorpora/123456789012345 deleted.

Beispiele für die Dateiverwaltung

In diesem Abschnitt finden Sie Beispiele für die Verwendung der API zum Verwalten von RAG-Dateien.

Beispiel für eine RAG-Datei hochladen

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  LOCAL_FILE_PATH: The local path to the file to be uploaded.
  DISPLAY_NAME: The display name of the RAG file.
  DESCRIPTION: The description of the RAG file.

Verwenden Sie den folgenden Befehl, um Ihre Anfrage zu senden:

  curl -X POST \
    -H "X-Goog-Upload-Protocol: multipart" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -F metadata="{'rag_file': {'display_name':' DISPLAY_NAME', 'description':'DESCRIPTION'}}" \
    -F file=@LOCAL_FILE_PATH \
    "https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"

Vertex AI SDK für Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
# path = "path/to/local/file.txt"
# display_name = "file_display_name"
# description = "file description"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_file = rag.upload_file(
    corpus_name=corpus_name,
    path=path,
    display_name=display_name,
    description=description,
)
print(rag_file)
# RagFile(name='projects/[PROJECT_ID]/locations/us-central1/ragCorpora/1234567890/ragFiles/09876543',
#  display_name='file_display_name', description='file description')

Beispiel für den Import von RAG-Dateien

Dateien und Ordner können aus Google Drive oder Cloud Storage importiert werden.

response.skipped_rag_files_count bezieht sich auf die Anzahl der Dateien, die beim Import übersprungen wurden. Eine Datei wird übersprungen, wenn die folgenden Bedingungen erfüllt sind:

  1. Die Datei wurde bereits importiert.
  2. Die Datei hat sich nicht geändert.
  3. Die Blockkonfiguration für die Datei hat sich nicht geändert.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_ID: Die ID der Ressource RagCorpus.
  • GCS_URIS: Eine Liste der Cloud Storage-Standorte. Beispiel: gs://my-bucket1, gs://my-bucket2.
  • CHUNK_SIZE: Optional: Anzahl der Tokens, die jeder Block haben sollte.
  • CHUNK_OVERLAP: Optional: Die Anzahl der Tokens überschneiden sich zwischen Blöcken.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

JSON-Text der Anfrage:

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "rag_file_chunking_config": {
      "chunk_size": CHUNK_SIZE,
      "chunk_overlap": CHUNK_OVERLAP
    }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
Eine erfolgreiche Antwort gibt die Ressource ImportRagFilesOperationMetadata zurück.

Im folgenden Beispiel wird gezeigt, wie eine Datei aus Cloud Storage importiert wird. Mit dem Steuerfeld max_embedding_requests_per_min können Sie die Rate begrenzen, mit der die RAG-Engine das Einbettungsmodell während des ImportRagFiles-Indexierungsvorgangs aufruft. Der Standardwert für das Feld ist 1000 Aufrufe pro Minute.

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  GCS_URIS: A list of Cloud Storage locations. Example: gs://my-bucket1.
  CHUNK_SIZE: Number of tokens each chunk should have.
  CHUNK_OVERLAP: Number of tokens overlap between chunks.
  EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID, GCS_URIS
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import \
-d '{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "rag_file_chunking_config": {
      "chunk_size": CHUNK_SIZE,
      "chunk_overlap": CHUNK_OVERLAP
    },
    "max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
  }
}'

// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID

Im folgenden Beispiel wird gezeigt, wie Sie eine Datei aus Google Drive importieren. Mit dem Steuerfeld max_embedding_requests_per_min können Sie die Rate begrenzen, mit der die RAG Engine das Einbettungsmodell während des ImportRagFiles-Indexierungsvorgangs aufruft. Der Standardwert für das Feld ist 1000 Aufrufe pro Minute.

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  FOLDER_RESOURCE_ID: The resource ID of your Google Drive folder.
  CHUNK_SIZE: Number of tokens each chunk should have.
  CHUNK_OVERLAP: Number of tokens overlap between chunks.
  EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID, FOLDER_RESOURCE_ID
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import \
-d '{
  "import_rag_files_config": {
    "google_drive_source": {
      "resource_ids": {
        "resource_id": "FOLDER_RESOURCE_ID",
        "resource_type": "RESOURCE_TYPE_FOLDER"
      }
    },
    "max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
  }
}'

// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID

Vertex AI SDK für Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
# paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]  # Supports Google Cloud Storage and Google Drive Links

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

response = rag.import_files(
    corpus_name=corpus_name,
    paths=paths,
    chunk_size=512,  # Optional
    chunk_overlap=100,  # Optional
    max_embedding_requests_per_min=900,  # Optional
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.

Beispiel für die Auflistung von RAG-Dateien

Dieses Codebeispiel zeigt, wie RAG-Dateien aufgelistet werden.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_ID: Die ID der Ressource RagCorpus.
  • PAGE_SIZE: Die Standardgröße der Listenseite Sie können die Anzahl der RagFiles anpassen, die pro Seite zurückgegeben werden sollen, indem Sie den Parameter page_size aktualisieren.
  • PAGE_TOKEN: Das Standardtoken der Listenseite Wird normalerweise mit ListRagFilesResponse.next_page_token des vorherigen VertexRagDataService.ListRagFiles-Aufrufs abgerufen.

HTTP-Methode und URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"

PowerShell

Führen Sie folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
Sie sollten einen erfolgreichen Statuscode (2xx) zusammen mit einer Liste von RagFiles unter dem angegebenen RAG_CORPUS_ID erhalten.

Vertex AI SDK für Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

files = rag.list_files(corpus_name=corpus_name)
for file in files:
    print(file.display_name)
    print(file.name)
# Example response:
# g-drive_file.txt
# projects/1234567890/locations/us-central1/ragCorpora/111111111111/ragFiles/222222222222
# g_cloud_file.txt
# projects/1234567890/locations/us-central1/ragCorpora/111111111111/ragFiles/333333333333

Beispiel für eine RAG-Datei abrufen

Dieses Codebeispiel zeigt, wie Sie eine RAG-Datei abrufen.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_ID: Die ID der Ressource RagCorpus.
  • RAG_FILE_ID: Die ID der Ressource RagFile.

HTTP-Methode und URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

PowerShell

Führen Sie folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
Eine erfolgreiche Antwort gibt die Ressource RagFile zurück.

Vertex AI SDK für Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# file_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}/ragFiles/{rag_file_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_file = rag.get_file(name=file_name)
print(rag_file)
# Example response:
# RagFile(name='projects/1234567890/locations/us-central1/ragCorpora/11111111111/ragFiles/22222222222',
# display_name='file_display_name', description='file description')

Beispiel für eine RAG-Datei löschen

In diesem Codebeispiel wird gezeigt, wie Sie eine RAG-Datei löschen.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_ID: Die ID der Ressource RagCorpus.
  • RAG_FILE_ID: Die ID der Ressource RagFile. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}.

HTTP-Methode und URL:

DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

PowerShell

Führen Sie folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
Eine erfolgreiche Antwort gibt die Ressource DeleteOperationMetadata zurück.

Vertex AI SDK für Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# file_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}/ragFiles/{rag_file_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag.delete_file(name=file_name)
print(f"File {file_name} deleted.")
# Example response:
# Successfully deleted the RagFile.
# File projects/1234567890/locations/us-central1/ragCorpora/1111111111/ragFiles/2222222222 deleted.

Abrufabfrage

Wenn ein Nutzer eine Frage stellt oder einen Prompt bereitstellt, durchsucht die Abrufkomponente in RAG in ihrer Wissensdatenbank nach relevanten Informationen.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • PROJECT_ID: Ihre Projekt-ID.
  • RAG_CORPUS_RESOURCE: Name der RagCorpus-Ressource. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • VECTOR_DISTANCE_THRESHOLD: Es werden nur Kontexte mit einer Vektordistanz zurückgegeben, die kleiner als der Grenzwert ist.
  • TEXT: Der Abfragetext, um relevante Kontexte abzurufen.
  • SIMILARITY_TOP_K: Die Anzahl der Top-Kontexte, die abgerufen werden sollen.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts

JSON-Text der Anfrage:

{
 "vertex_rag_store": {
    "rag_resources": {
      "rag_corpus": "RAG_CORPUS_RESOURCE"
    },
    "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD
  },
  "query": {
   "text": "TEXT",
   "similarity_top_k": SIMILARITY_TOP_K
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content
Sie sollten einen erfolgreichen Statuscode (2xx) und eine Liste der zugehörigen RagFiles erhalten.

Vertex AI SDK für Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/[PROJECT_ID]/locations/us-central1/ragCorpora/[rag_corpus_id]"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

response = rag.retrieval_query(
    rag_resources=[
        rag.RagResource(
            rag_corpus=corpus_name,
            # Optional: supply IDs from `rag.list_files()`.
            # rag_file_ids=["rag-file-1", "rag-file-2", ...],
        )
    ],
    text="Hello World!",
    similarity_top_k=10,  # Optional
    vector_distance_threshold=0.5,  # Optional
    # vector_search_alpha=0.5, # Optional - Only supported for Weaviate
)
print(response)
# Example response:
# contexts {
#   contexts {
#     source_uri: "gs://your-bucket-name/file.txt"
#     text: "....
#   ....

Generierung

Das LLM generiert anhand der abgerufenen Kontexte eine fundierte Antwort.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • MODEL_ID: LLM-Modell für die Inhaltsgenerierung. Beispiel: gemini-1.5-pro-002
  • GENERATION_METHOD: LLM-Methode zum Generieren von Inhalten. Optionen: generateContent, streamGenerateContent
  • INPUT_PROMPT: Der Text, der zur Inhaltsgenerierung an das LLM gesendet wird. Versuchen Sie, einen Prompt zu verwenden, der für die hochgeladenen Rap-Dateien relevant ist.
  • RAG_CORPUS_RESOURCE: Name der RagCorpus-Ressource. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • SIMILARITY_TOP_K: Optional: Die Anzahl der Top-Kontexte, die abgerufen werden sollen.
  • VECTOR_DISTANCE_THRESHOLD: Optional: Kontexte mit einer Vektorentfernung, die kleiner als der Grenzwert ist, werden zurückgegeben.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD

JSON-Text der Anfrage:

{
 "contents": {
  "role": "user",
  "parts": {
    "text": "INPUT_PROMPT"
  }
 },
 "tools": {
  "retrieval": {
   "disable_attribution": false,
   "vertex_rag_store": {
    "rag_resources": {
      "rag_corpus": "RAG_CORPUS_RESOURCE"
    },
    "similarity_top_k": SIMILARITY_TOP_K,
    "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD
   }
  }
 }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content
Eine erfolgreiche Antwort gibt den generierten Inhalt mit Zitationen zurück.

Vertex AI SDK für Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.


from vertexai.preview import rag
from vertexai.preview.generative_models import GenerativeModel, Tool
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_retrieval_tool = Tool.from_retrieval(
    retrieval=rag.Retrieval(
        source=rag.VertexRagStore(
            rag_resources=[
                rag.RagResource(
                    rag_corpus=corpus_name,
                    # Optional: supply IDs from `rag.list_files()`.
                    # rag_file_ids=["rag-file-1", "rag-file-2", ...],
                )
            ],
            similarity_top_k=3,  # Optional
            vector_distance_threshold=0.5,  # Optional
        ),
    )
)

rag_model = GenerativeModel(
    model_name="gemini-1.5-flash-001", tools=[rag_retrieval_tool]
)
response = rag_model.generate_content("Why is the sky blue?")
print(response.text)
# Example response:
#   The sky appears blue due to a phenomenon called Rayleigh scattering.
#   Sunlight, which contains all colors of the rainbow, is scattered
#   by the tiny particles in the Earth's atmosphere....
#   ...

Nächste Schritte