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.

RagVectorDbConfig
Parameter

rag_managed_db

oneof vector_db: RagVectorDbConfig.RagManagedDb

Wenn keine Vektordatenbank angegeben ist, ist rag_managed_db die Standardvektordatenbank.

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_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 Secrets, das im Secret Manager gespeichert ist und Ihren Pinecone API-Schlüssel enthält.

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.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_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 Vektorsuchindex-Endpunkts, 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 Secrets, das im Secret Manager gespeichert ist und Ihren Pinecone API-Schlüssel enthält.

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.

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.

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.

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.

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

Diese Codebeispiele zeigen, wie Sie einen RAG-Korpus 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 des RAG-Korpus.
  • CORPUS_DESCRIPTION: Die Beschreibung des RAG-Korpus.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/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 namens „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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"

Powershell

Speichern Sie den Anfragetext in einer Datei namens „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/v1/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.

  // 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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora \
  -d '{
        "display_name" : "CORPUS_DISPLAY_NAME"
    }'

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 Python API.

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • CORPUS_DISPLAY_NAME: Der Anzeigename des RAG-Korpus.
  • CORPUS_DESCRIPTION: Die Beschreibung des RAG-Korpus.
from vertexai import rag
import vertexai

PROJECT_ID = "PROJECT_ID"
display_name = "CORPUS_DISPLAY_NAME"
description = "CORPUS_DESCRIPTION"

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

# Configure embedding model
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 des RAG-Korpus.
  • CORPUS_DESCRIPTION: Die Beschreibung des RAG-Korpus.
  • INDEX_NAME: Der Ressourcenname des Index für die Vektorsuche. Format: projects/{project}/locations/{location}/indexes/{index}.
  • INDEX_ENDPOINT_NAME: Der Ressourcenname des Indexendpunkts der Vektorsuche. Format: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}.

HTTP-Methode und URL:

PATCH https://LOCATION-aiplatform.googleapis.com/v1/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 namens „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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID"

Powershell

Speichern Sie den Anfragetext in einer Datei namens „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/v1/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

Diese Codebeispiele zeigen, wie Sie alle RAG-Korpora auflisten.

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 RAG-Korpora 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/v1/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 dazu diesen Befehl aus:

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

Powershell

Führen Sie dazu diesen Befehl aus:

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

Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/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 der RAG-Korpora unter dem angegebenen PROJECT_ID erhalten.

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 Python API.

from vertexai import rag
import vertexai

PROJECT_ID = "PROJECT_ID"
LOCATION = "us-central1"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

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

Diese Codebeispiele zeigen, wie Sie 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 RAG-Korpusressource.

HTTP-Methode und URL:

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

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie dazu diesen Befehl aus:

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

Powershell

Führen Sie dazu diesen Befehl aus:

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

Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/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 von 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.
  ```

```sh
  // 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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/
  ```

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 Python API.

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_ID: Die ID der RAG-Korpusressource.
from vertexai import rag
import vertexai

PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION"
corpus_name = "projects/{PROJECT_ID}/locations/{LOCATION}/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

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

Diese Codebeispiele zeigen, wie Sie 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 RagCorpus-Ressource.

HTTP-Methode und URL:

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

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie dazu diesen Befehl aus:

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

Powershell

Führen Sie dazu diesen Befehl aus:

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

Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content

Eine erfolgreiche Antwort gibt DeleteOperationMetadata zurück.

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 Python API.

from vertexai import rag
import vertexai

PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

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

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. import rag

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

Diese Codebeispiele zeigen, wie Sie eine RAG-Datei hochladen.

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 Korpus-ID Ihres RAG-Korpus.
  • LOCAL_FILE_PATH: Der lokale Pfad zur hochzuladenden Datei.
  • DISPLAY_NAME: Der Anzeigename der RAG-Datei.
  • DESCRIPTION: Die Beschreibung der RAG-Datei.

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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"

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 Python API.

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_ID: Die Korpus-ID Ihres RAG-Korpus.
  • LOCAL_FILE_PATH: Der lokale Pfad zur hochzuladenden Datei.
  • DISPLAY_NAME: Der Anzeigename der RAG-Datei.
  • DESCRIPTION: Die Beschreibung der RAG-Datei.
from vertexai import rag
import vertexai

PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/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="LOCATION")

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. Mit response.metadata können Sie sich Informationen zu Teilausfällen, zur Anfragezeit und zur Antwortzeit im response-Objekt des SDKs ansehen.

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 Korpus-ID Ihres RAG-Korpus.
  • FOLDER_RESOURCE_ID: Die Ressourcen-ID Ihres Drive-Ordners.
  • GCS_URIS: Eine Liste der Cloud Storage-Standorte. Beispiel: gs://my-bucket1.
  • CHUNK_SIZE: Anzahl der Tokens, die jeder Block haben sollte.
  • CHUNK_OVERLAP: Anzahl der Tokens, die sich zwischen Blöcken überschneiden.
  • EMBEDDING_MODEL_QPM_RATE: Die QPM-Rate, mit der der Zugriff von RAG auf Ihr Einbettungsmodell begrenzt wird. Beispiel: 1.000.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/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 namens „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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

Powershell

Speichern Sie den Anfragetext in einer Datei namens „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/v1/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: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_ID: Die Korpus-ID Ihres RAG-Korpus.
  • GCS_URIS: Eine Liste der Cloud Storage-Standorte. Beispiel: gs://my-bucket1.
  • CHUNK_SIZE: Anzahl der Tokens, die jeder Block haben sollte.
  • CHUNK_OVERLAP: Anzahl der Tokens, die sich zwischen Blöcken überschneiden.
  • EMBEDDING_MODEL_QPM_RATE: Die QPM-Rate, mit der der Zugriff von RAGs auf Ihr Einbettungsmodell eingeschränkt wird. Beispiel: 1.000.
// 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/v1/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
  }
}'

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: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_ID: Die Korpus-ID Ihres RAG-Korpus.
  • FOLDER_RESOURCE_ID: Die Ressourcen-ID Ihres Drive-Ordners.
  • CHUNK_SIZE: Anzahl der Tokens, die jeder Block haben sollte.
  • CHUNK_OVERLAP: Anzahl der Tokens, die sich zwischen Blöcken überschneiden.
  • EMBEDDING_MODEL_QPM_RATE: Die QPM-Rate, mit der der Zugriff von RAG auf Ihr Einbettungsmodell begrenzt wird. Beispiel: 1.000.
// 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/v1/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
  }
}'

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 Python API.

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_ID: Die Korpus-ID Ihres RAG-Korpus.
  • FOLDER_RESOURCE_ID: Die Ressourcen-ID Ihres Drive-Ordners.
  • CHUNK_SIZE: Anzahl der Tokens, die jeder Block haben sollte.
  • CHUNK_OVERLAP: Anzahl der Tokens, die sich zwischen Blöcken überschneiden.
  • EMBEDDING_MODEL_QPM_RATE: Die QPM-Rate, mit der der Zugriff von RAG auf Ihr Einbettungsmodell begrenzt wird. Beispiel: 1.000.
from vertexai import rag
import vertexai

PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/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="LOCATION")

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

Diese Codebeispiele zeigen, 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 RagCorpus-Ressource.
  • 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 mit ListRagFilesResponse.next_page_token des vorherigen VertexRagDataService.ListRagFiles-Aufrufs abgerufen.

HTTP-Methode und URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/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 dazu diesen Befehl aus:

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

Powershell

Führen Sie dazu diesen Befehl aus:

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

Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/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.

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 Python API.

Ersetzen Sie die folgenden Variablen im Codebeispiel:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_ID: Die ID der RagCorpus-Ressource.
  • 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 mit ListRagFilesResponse.next_page_token des vorherigen VertexRagDataService.ListRagFiles-Aufrufs abgerufen.
from vertexai import rag
import vertexai

PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

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

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

Diese Codebeispiele zeigen, 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 RagCorpus-Ressource.
  • RAG_FILE_ID: Die ID der RagFile-Ressource.

HTTP-Methode und URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/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 dazu diesen Befehl aus:

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

Powershell

Führen Sie dazu diesen Befehl aus:

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

Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/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.

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 Python API.

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

PROJECT_ID = "PROJECT_ID"
file_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

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

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

Beispiel für eine RAG-Datei löschen

Diese Codebeispiele zeigen, 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 RagCorpus-Ressource.
  • RAG_FILE_ID: Die ID der RagFile-Ressource. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}.

HTTP-Methode und URL:

DELETE https://LOCATION-aiplatform.googleapis.com/v1/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 dazu diesen Befehl aus:

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

Powershell

Führen Sie dazu diesen Befehl aus:

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

Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content

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 Python API.

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

PROJECT_ID = "PROJECT_ID"
file_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

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

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:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_RESOURCE: Der 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/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts

JSON-Text anfordern:

{
"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
  }
}

curl

Speichern Sie den Anfragetext in einer Datei namens „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/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"

Powershell

Speichern Sie den Anfragetext in einer Datei namens „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/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content

Sie sollten einen erfolgreichen Statuscode (2xx) und eine Liste der zugehörigen RagFiles erhalten.

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 Python API.

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_RESOURCE: Der 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.
from vertexai import rag
import vertexai

PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/[PROJECT_ID]/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

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

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="TEXT",
    similarity_top_k=SIMILARITY_TOP_K,  # Optional
    vector_distance_threshold=VECTOR_DISTANCE_THRESHOLD,  # Optional
)
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 für die Inhaltsgenerierung. 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: Der 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 Vektordistanz, die kleiner als der Grenzwert ist, werden zurückgegeben.
  • USER: Ihr Nutzername.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/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 namens „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/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD"

Powershell

Speichern Sie den Anfragetext in einer Datei namens „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/v1/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.

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 Python API.

  • 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 für die Inhaltsgenerierung. 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: Der 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 Vektordistanz, die kleiner als der Grenzwert ist, werden zurückgegeben.
from vertexai import rag
from vertexai.generative_models import GenerativeModel, Tool
import vertexai

PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

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

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

rag_model = GenerativeModel(
    model_name="MODEL_ID", 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