RAG Engine API

Die Vertex AI RAG Engine ist eine Komponente der Vertex AI-Plattform, die Retrieval-Augmented Generation (RAG) ermöglicht. Mit 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 LLM-Antworten generieren.

Parameterliste

In diesem Abschnitt wird Folgendes aufgeführt:

Parameter Beispiele
Siehe Parameter für die Korpusverwaltung. Beispiele für die Korpusverwaltung
Weitere Informationen finden Sie unter Parameter zur Dateiverwaltung. Beispiele für die Dateiverwaltung

Parameter für die Korpusverwaltung

Informationen zu einem RAG-Korpus finden Sie unter Korpusverwaltung.

RAG-Korpus erstellen

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

Hauptanfrage
Parameter

display_name

Erforderlich: string

Der Anzeigename des RAG-Korpus.

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

pinecone

oneof vector_db: RagVectorDbConfig.Pinecone

Gibt Ihre Pinecone-Instanz an.

pinecone.index_name

string

Dies ist der Name, mit dem der Pinecone-Index erstellt wird, der mit dem RAG-Korpus verwendet wird.

Dieser Wert kann nach dem Festlegen nicht mehr geändert werden. Sie können es im CreateRagCorpus-API-Aufruf leer lassen und in einem nachfolgenden UpdateRagCorpus-API-Aufruf auf einen nicht leeren Wert festlegen.

vertex_vector_search

oneof vector_db: RagVectorDbConfig.VertexVectorSearch

Gibt Ihre Instanz der Vertex Vektorsuche 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 dem Festlegen nicht mehr geändert werden. Sie können es im CreateRagCorpus-API-Aufruf leer lassen und in einem nachfolgenden UpdateRagCorpus-API-Aufruf auf einen nicht leeren Wert festlegen.

vertex_vector_search.index_endpoint

string

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

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

Dieser Wert kann nach dem Festlegen nicht mehr geändert werden. Sie können es im CreateRagCorpus-API-Aufruf leer lassen und in einem nachfolgenden UpdateRagCorpus-API-Aufruf auf einen nicht leeren Wert festlegen.

api_auth.api_key_config.api_key_secret_version

string

Dies ist der vollständige Ressourcenname des Secrets, das in Secret Manager gespeichert wird und Ihren Pinecone API-Schlüssel enthält.

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

Sie können es im CreateRagCorpus-API-Aufruf leer lassen und in einem nachfolgenden UpdateRagCorpus-API-Aufruf auf einen nicht leeren Wert festlegen.

rag_embedding_model_config.vertex_prediction_endpoint.endpoint

Optional: Unveränderlich: string

Das Einbettungsmodell, das für den RAG-Korpus verwendet werden soll. Dieser Wert kann nach dem Festlegen nicht mehr geändert werden. Wenn Sie das Feld leer lassen, verwenden wir text-embedding-005 als Einbettungsmodell.

RAG-Korpus aktualisieren

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

Hauptanfrage
Parameter

display_name

Optional: string

Der Anzeigename des RAG-Korpus.

description

Optional: string

Die Beschreibung des RAG-Korpus.

rag_vector_db.pinecone.index_name

string

Dies ist der Name, mit dem der Pinecone-Index erstellt wird, der mit dem RAG-Korpus verwendet wird.

Wenn die 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 die 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 Indexendpunkts der Vektorsuche, der mit dem RAG-Korpus verwendet wird.

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

Wenn die 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 in Secret Manager gespeichert wird 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

Diese Tabelle enthält die Parameter, 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

Diese Tabelle enthält die Parameter, die zum Löschen eines RAG-Korpus verwendet werden.

Parameter

name

string

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

Parameter zur 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.

Hauptanfrage
Parameter

parent

string

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

rag_file

Erforderlich: RagFile

Die hochzuladende Datei.

upload_rag_file_config

Erforderlich: UploadRagFileConfig

Die Konfiguration für die RagFile, die in den 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 Blöcken.

RAG-Dateien importieren

Diese Tabelle enthält die Parameter, 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.

Unterstützt den Import einzelner Dateien sowie ganzer Cloud Storage-Verzeichnisse.

gcs_source.uris

list von string

Cloud Storage-URI, der die Uploaddatei enthält

google_drive_source

oneof import_source: GoogleDriveSource

Google Drive-Speicherort.

Unterstützt den Import einzelner Dateien und von Google Drive-Ordnern.

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 Blöcken.

rag_file_parsing_config

Optional: RagFileParsingConfig

Gibt die Parsing-Konfiguration 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 für das im Korpus angegebene Einbettungsmodell ausführen darf. Dieser Wert gilt speziell für diesen Job und wird nicht für andere Importjobs verwendet. Rufen Sie die Seite „Kontingente“ im Projekt auf, um einen geeigneten Wert festzulegen.

Wenn kein Wert angegeben ist, wird ein Standardwert von 1.000 Abfragen pro Minute 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 der ID und des zu importierenden Zeitraums.

channels.channels.channel_id

Erforderlich: string

Die Slack-Kanal-ID.

channels.channels.start_time

Optional: google.protobuf.Timestamp

Der Startzeitstempel für zu importierende Nachrichten.

channels.channels.end_time

Optional: google.protobuf.Timestamp

Der Endzeitstempel für zu importierende Nachrichten.

channels.api_key_config.api_key_secret_version

Erforderlich: string

Der vollständige Ressourcenname des Secrets, das in Secret Manager gespeichert wird und ein Zugriffstoken für den Slack-Kanal enthält, das Zugriff auf die Slack-Channel-IDs hat.
Weitere Informationen: 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 aller 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-Unterstützung

jira_queries.email

Erforderlich: string

Die Jira-E-Mail-Adresse.

jira_queries.server_uri

Erforderlich: string

Der URI des Jira-Servers.

jira_queries.api_key_config.api_key_secret_version

Erforderlich: string

Der vollständige Ressourcenname des Secrets, das in Secret Manager gespeichert wird. Es enthält den Jira API-Schlüssel, 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 für die im Microsoft Azure-Portal registrierte Anwendung.
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 in Secret Manager gespeicherten Secrets, der das Anwendungs-Secret für die in Azure registrierte Anwendung 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 Name oder die ID der Website sein.

RagFileParsingConfig

layout_parser

oneof parser: RagFileParsingConfig.LayoutParser

Der Layoutparser, der für RagFiles verwendet werden soll.

layout_parser.processor_name

string

Der vollständige Ressourcenname eines Document AI-Prozessors oder einer 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.

Rufen Sie https://cloud.google.com/document-ai/quotas und die Seite „Kontingente“ für Ihr Projekt auf, um hier einen geeigneten Wert festzulegen. Wenn kein Wert angegeben ist, wird ein Standardwert von 120 Abfragen pro Minute verwendet.

RAG-Datei abrufen

Diese Tabelle enthält die Parameter, 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

Diese Tabelle enthält die Parameter zum Löschen einer RAG-Datei.

Parameter

name

string

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

Abruf und Vorhersage

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

Abrufparameter

Diese Tabelle enthält die Parameter für die retrieveContexts API.

Parameter

parent

Erforderlich: string

Der Ressourcenname des abzurufenden Standorts RagContexts.
Die Nutzer müssen berechtigt sein, einen Aufruf im Projekt zu starten.

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

vertex_rag_store

VertexRagStore

Die Datenquelle für Vertex RagStore.

query

Erforderlich: RagQuery

Einzelne RAG-Abfrageabfrage.

VertexRagStore
VertexRagStore

rag_resources

Liste: RagResource

Die Darstellung der RAG-Quelle. Es kann nur verwendet werden, um den Korpus oder RagFiles anzugeben. Unterstützt nur einen Korpus oder mehrere Dateien aus einem Korpus.

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 von RagFile-Ressourcen.

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

RagQuery

text

string

Die Abfrage im Textformat, um relevante Kontexte zu erhalten.

rag_retrieval_config

Optional: RagRetrievalConfig

Die Abrufkonfiguration für die Abfrage.

RagRetrievalConfig

top_k

Optional: int32

Die Anzahl der abzurufenden Kontexte.

filter.vector_distance_threshold

oneof vector_db_threshold: double

Gibt nur Kontexte mit einer Vektorentfernung zurück, die kleiner als der Grenzwert ist.

filter.vector_similarity_threshold

oneof vector_db_threshold: double

Gibt nur Kontexte zurück, deren Vektorähnlichkeit größer als der Schwellenwert ist.

ranking.rank_service.model_name

Optional: string

Der Modellname des Rankingdienstes.

Beispiel: semantic-ranker-512@latest

ranking.llm_ranker.model_name

Optional: string

Der Modellname, der für das Ranking verwendet wird.

Beispiel: gemini-2.0-flash

Vorhersageparameter

Diese Tabelle enthält die Vorhersageparameter.

GenerateContentRequest

tools.retrieval.vertex_rag_store

VertexRagStore

Legen Sie fest, dass eine Datenquelle verwendet wird, die auf dem RAG-Speicher von Vertex AI basiert.

Weitere Informationen finden Sie unter VertexRagStore.

Beispiele für die Korpusverwaltung

Dieser Abschnitt enthält Beispiele für die Verwendung der API zum Verwalten Ihres RAG-Korpus.

RAG-Korpusbeispiel 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 Vertex AI SDK for Python API.


from vertexai 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 backend_config
backend_config = rag.RagVectorDbConfig(
    rag_embedding_model_config=rag.RagEmbeddingModelConfig(
        vertex_prediction_endpoint=rag.VertexPredictionEndpoint(
            publisher_model="publishers/google/models/text-embedding-005"
        )
    )
)

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

RAG-Korpusbeispiel aktualisieren

Sie können Ihren RAG-Korpus mit einem neuen Anzeigenamen, einer neuen Beschreibung und der Konfiguration der Vektordatenbank aktualisieren. Sie können die folgenden Parameter in Ihrem RAG-Korpus jedoch nicht ändern:

  • Der Vektordatenbanktyp. Beispielsweise ist es nicht möglich, die Vektordatenbank von Weaviate in Vertex AI Feature Store zu ändern.
  • Wenn Sie die Option „Verwaltete Datenbank“ verwenden, können Sie die Konfiguration der Vektordatenbank nicht aktualisieren.

Diese Beispiele veranschaulichen, 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 Vektorsuchindex. 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.

RAG-Korporabeispiel auflisten

Diese Codebeispiele zeigen, 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: Das ist die Standardgröße der Listenseite. Sie können die Anzahl der RAG-Korpora, die pro Seite zurückgegeben werden sollen, anpassen, indem Sie den Parameter page_size aktualisieren.
  • PAGE_TOKEN: Das Standardtoken der Listenseite. Wird in der Regel 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 von RAG-Korpora unter der 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 Vertex AI SDK for Python API.


from vertexai 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 {
# ...

RAG-Korpusbeispiel abrufen

Diese Codebeispiele zeigen, wie Sie einen RAG-Korpus erhalten.

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 zeigen, wie RagCorpus das Feld rag_embedding_model_config in 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 Vertex AI SDK for Python API.


from vertexai 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',
# ...

RAG-Korpusbeispiel 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 Ressource RagCorpus.

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 Vertex AI SDK for Python API.


from vertexai 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

Dieser Abschnitt enthält Beispiele für die Verwendung der API zum Verwalten von RAG-Dateien.

Beispiel für eine RAG-Datei hochladen

Diese Codebeispiele zeigen, wie eine RAG-Datei hochgeladen 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.
  • RAG_CORPUS_ID: Die Korpus-ID Ihres RAG-Korpus.
  • LOCAL_FILE_PATH: Der lokale Pfad zur Datei, die hochgeladen werden soll.
  • 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 Vertex AI SDK for Python API.


from vertexai 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 Drive oder Cloud Storage importiert werden. Mit response.metadata können Sie Teilausfälle sowie die Anfrage- und Antwortzeit im SDK-Objekt response anzeigen.

response.skipped_rag_files_count bezieht sich auf die Anzahl der Dateien, die während des Imports ü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-Speicherorte. Beispiel: gs://my-bucket1.
  • CHUNK_SIZE: Anzahl der Tokens, die jeder Block haben soll.
  • CHUNK_OVERLAP: Anzahl der Tokens, die sich zwischen Blöcken überschneiden.
  • EMBEDDING_MODEL_QPM_RATE: Die QPM-Rate, um den Zugriff von RAG auf Ihr Einbettungsmodell einzuschränken. 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-Speicherorte. Beispiel: gs://my-bucket1.
  • CHUNK_SIZE: Anzahl der Tokens, die jeder Block haben soll.
  • CHUNK_OVERLAP: Anzahl der Tokens, die sich zwischen Blöcken überschneiden.
  • EMBEDDING_MODEL_QPM_RATE: Die QPM-Rate, um den RAGs-Zugriff auf Ihr Einbettungsmodell einzuschränken. 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 soll.
  • CHUNK_OVERLAP: Anzahl der Tokens, die sich zwischen Blöcken überschneiden.
  • EMBEDDING_MODEL_QPM_RATE: Die QPM-Rate, um den Zugriff von RAG auf Ihr Einbettungsmodell einzuschränken. 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 Vertex AI SDK for Python API.


from vertexai 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,
    transformation_config=rag.TransformationConfig(
        rag.ChunkingConfig(chunk_size=512, chunk_overlap=100)
    ),
    import_result_sink="gs://sample-existing-folder/sample_import_result_unique.ndjson",  # Optional, this has to be an existing storage bucket folder, and file name has to be unique (non-existent).
    max_embedding_requests_per_min=900,  # Optional
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.

Beispiel für das Auflisten 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 Ressource RagCorpus.
  • PAGE_SIZE: Das ist die Standardgröße der Listenseite. Sie können die Anzahl von RagFiles anpassen, die pro Seite zurückgegeben werden sollen, indem Sie den Parameter page_size aktualisieren.
  • PAGE_TOKEN: Das Standardtoken der Listenseite. 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 Vertex AI SDK for Python API.


from vertexai 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

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

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 Vertex AI SDK for Python API.


from vertexai 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 das Löschen einer RAG-Datei

Diese Codebeispiele zeigen, wie eine RAG-Datei gelöscht 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.
  • 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 Vertex AI SDK for Python API.


from vertexai 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:

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

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 Vertex AI SDK for Python API.


from vertexai 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!",
    rag_retrieval_config=rag.RagRetrievalConfig(
        top_k=10,
        filter=rag.utils.resources.Filter(vector_distance_threshold=0.5),
    ),
)
print(response)
# Example response:
# contexts {
#   contexts {
#     source_uri: "gs://your-bucket-name/file.txt"
#     text: "....
#   ....

Generierung

Das LLM generiert mithilfe 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-2.0-flash-001.
  • 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 Ressource RagCorpus. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • SIMILARITY_TOP_K (optional): Die Anzahl der abzurufenden wichtigsten Kontexte.
  • VECTOR_DISTANCE_THRESHOLD: Optional: Kontexte mit einer Vektorentfernung, 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 Vertex AI SDK for Python API.


from vertexai import rag
from vertexai.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", ...],
                )
            ],
            rag_retrieval_config=rag.RagRetrievalConfig(
                top_k=10,
                filter=rag.utils.resources.Filter(vector_distance_threshold=0.5),
            ),
        ),
    )
)

rag_model = GenerativeModel(
    model_name="gemini-2.0-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