Zum Hauptinhalt springen

Vertex AI SDK

Pass-through-Endpunkte für Vertex AI - rufen Sie anbieterspezifische Endpunkte im nativen Format auf (keine Übersetzung).

FeatureUnterstütztNotizen
Kostenverfolgungunterstützt alle Modelle auf dem Endpunkt /generateContent
Protokollierungfunktioniert über alle Integrationen hinweg
EndbenutzerverfolgungSagen Sie uns Bescheid, wenn Sie dies benötigen
Streaming

Unterstützte Endpunkte

LiteLLM unterstützt 2 Vertex AI Pass-Through-Routen

  1. /vertex_ai → leitet weiter zu https://{vertex_location}-aiplatform.googleapis.com/
  2. /vertex_ai/discovery → leitet weiter zu https://discoveryengine.googleapis.com

Verwendung

Ersetzen Sie einfach https://REGION-aiplatform.googleapis.com durch LITELLM_PROXY_BASE_URL/vertex_ai

LiteLLM unterstützt 3 Flows zum Aufrufen von Vertex AI-Endpunkten über Pass-Through

  1. Spezifische Anmeldeinformationen: Administrator legt Pass-Through-Anmeldeinformationen für ein bestimmtes Projekt/Region fest.

  2. Standardanmeldeinformationen: Administrator legt Standardanmeldeinformationen fest.

  3. Clientseitige Anmeldeinformationen: Benutzer kann clientseitige Anmeldeinformationen an Vertex AI senden (Standardverhalten - wenn keine Standard- oder zugeordneten Anmeldeinformationen gefunden werden, wird die Anfrage direkt weitergeleitet).

Beispielverwendung

model_list:
- model_name: gemini-1.0-pro
litellm_params:
model: vertex_ai/gemini-1.0-pro
vertex_project: adroit-crow-413218
vertex_region: us-central1
vertex_credentials: /path/to/credentials.json
use_in_pass_through: true # 👈 KEY CHANGE

Beispielverwendung

curl https://:4000/vertex_ai/vertex_ai/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/${MODEL_ID}:generateContent \
-H "Content-Type: application/json" \
-H "x-litellm-api-key: Bearer sk-1234" \
-d '{
"contents":[{
"role": "user",
"parts":[{"text": "How are you doing today?"}]
}]
}'

Schnellstart

Rufen wir den Vertex AI /generateContent Endpunkt auf

  1. Fügen Sie Vertex AI-Anmeldeinformationen zu Ihrer Umgebung hinzu
export DEFAULT_VERTEXAI_PROJECT="" # "adroit-crow-413218"
export DEFAULT_VERTEXAI_LOCATION="" # "us-central1"
export DEFAULT_GOOGLE_APPLICATION_CREDENTIALS="" # "/Users/Downloads/adroit-crow-413218-a956eef1a2a8.json"
  1. LiteLLM Proxy starten
litellm

# RUNNING on http://0.0.0.0:4000
  1. Testen Sie es!

Rufen wir den Token-Zählungs-Endpunkt des Google AI Studio auf

curl https://:4000/vertex-ai/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/gemini-1.0-pro:generateContent \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234" \
-d '{
"contents":[{
"role": "user",
"parts":[{"text": "How are you doing today?"}]
}]
}'

Unterstützte API-Endpunkte

  • Gemini API
  • Embeddings API
  • Imagen API
  • Code Completion API
  • Batch-Vorhersage-API
  • Tuning-API
  • CountTokens API

Authentifizierung bei Vertex AI

Der LiteLLM Proxy Server unterstützt zwei Methoden zur Authentifizierung bei Vertex AI

  1. Vertex-Anmeldeinformationen clientseitig an den Proxy-Server übergeben

  2. Vertex AI-Anmeldeinformationen auf dem Proxy-Server einstellen

Verwendungsbeispiele

Gemini API (Content generieren)

curl https://:4000/vertex_ai/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/gemini-1.5-flash-001:generateContent \
-H "Content-Type: application/json" \
-H "x-litellm-api-key: Bearer sk-1234" \
-d '{"contents":[{"role": "user", "parts":[{"text": "hi"}]}]}'

Embeddings API

curl https://:4000/vertex_ai/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/textembedding-gecko@001:predict \
-H "Content-Type: application/json" \
-H "x-litellm-api-key: Bearer sk-1234" \
-d '{"instances":[{"content": "gm"}]}'

Imagen API

curl https://:4000/vertex_ai/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/imagen-3.0-generate-001:predict \
-H "Content-Type: application/json" \
-H "x-litellm-api-key: Bearer sk-1234" \
-d '{"instances":[{"prompt": "make an otter"}], "parameters": {"sampleCount": 1}}'

Count Tokens API

curl https://:4000/vertex_ai/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/gemini-1.5-flash-001:countTokens \
-H "Content-Type: application/json" \
-H "x-litellm-api-key: Bearer sk-1234" \
-d '{"contents":[{"role": "user", "parts":[{"text": "hi"}]}]}'

Tuning API

Erstellen eines Fine-Tuning-Jobs

curl https://:4000/vertex_ai/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/gemini-1.5-flash-001:tuningJobs \
-H "Content-Type: application/json" \
-H "x-litellm-api-key: Bearer sk-1234" \
-d '{
"baseModel": "gemini-1.0-pro-002",
"supervisedTuningSpec" : {
"training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl"
}
}'

Erweitert

Voraussetzungen

Verwenden Sie dies, um zu vermeiden, dass Entwickler den rohen Anthropic API-Schlüssel erhalten, ihnen aber dennoch die Verwendung von Anthropic-Endpunkten ermöglichen.

Verwendung mit virtuellen Schlüsseln

  1. Umgebung einrichten
export DATABASE_URL=""
export LITELLM_MASTER_KEY=""

# vertex ai credentials
export DEFAULT_VERTEXAI_PROJECT="" # "adroit-crow-413218"
export DEFAULT_VERTEXAI_LOCATION="" # "us-central1"
export DEFAULT_GOOGLE_APPLICATION_CREDENTIALS="" # "/Users/Downloads/adroit-crow-413218-a956eef1a2a8.json"
litellm

# RUNNING on http://0.0.0.0:4000
  1. Virtuellen Schlüssel generieren
curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'x-litellm-api-key: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{}'

Erwartete Antwort

{
...
"key": "sk-1234ewknldferwedojwojw"
}
  1. Testen Sie es!
curl https://:4000/vertex_ai/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/gemini-1.0-pro:generateContent \
-H "Content-Type: application/json" \
-H "x-litellm-api-key: Bearer sk-1234" \
-d '{
"contents":[{
"role": "user",
"parts":[{"text": "How are you doing today?"}]
}]
}'

Senden Sie tags in den Request-Headern

Verwenden Sie dies, wenn Sie möchten, dass tags in der LiteLLM-Datenbank und bei Logging-Callbacks verfolgt werden

Übergeben Sie tags im Request-Header als kommaseparierte Liste. Im folgenden Beispiel werden die folgenden Tags verfolgt

tags: ["vertex-js-sdk", "pass-through-endpoint"]
curl https://:4000/vertex_ai/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/gemini-1.0-pro:generateContent \
-H "Content-Type: application/json" \
-H "x-litellm-api-key: Bearer sk-1234" \
-H "tags: vertex-js-sdk,pass-through-endpoint" \
-d '{
"contents":[{
"role": "user",
"parts":[{"text": "How are you doing today?"}]
}]
}'