יצירה וניהול של נקודות קצה

בדף הזה מוסבר איך ליצור ולנהל נקודות קצה ל-API של Gemini on Google Distributed Cloud במודל מחובר.

דרישות מוקדמות

בקטע הזה מוסבר על השלבים שצריך לבצע פעם אחת כדי לפרוס את Gemini בנקודות קצה של API שמחוברות ל-GDC. משלימים את השלבים במכונת ההפעלה.

כדי להשלים את השלבים שמפורטים בקטע הזה, צריך להשתמש בחשבון אדמין IT עם התפקיד Edge Container Zone Viewer. אחרי שמבצעים את השלבים בקטע הזה, צריך לספק את המידע שנאסף, כולל אישור ה-CA וכתובת ה-IP של שרת ה-DNS, לאדמין של הפרויקט ב- Google Cloud שמבצע את פריסת נקודת קצה ל-API של Gemini ב-GDC במודל מחובר כמו שמתואר במאמר פריסת נקודת קצה ל-API של Gemini ב-GDC במודל מחובר.

השלמת הפעלת החומרה

לפני שמבצעים את השלבים בדף הזה, צריך:

  • מבצעים פריסה של הציוד שאושר על ידי Google, כמו שמתואר בדרישות ההתקנה.

  • כדי ליצור את האשכולות הנדרשים שמחוברים ל-Distributed Cloud, אפשר להיעזר בנציג Google.

הקצאת התפקידים הנדרשים

אתם צריכים להגדיר את התפקידים הנדרשים הבאים:

קבלת מידע על אזור היעד של Distributed Cloud במודל מחובר

כדי לקבל את השם של אזור היעד שלכם ב-Distributed Cloud במודל מחובר:

  1. מקבלים את השם של מזהה הארגון Google Cloud של היעד:

    gcloud organizations list
    
  2. כדי להציג רשימה של אזורים מחוברים של Distributed Cloud בארגון Google Cloud :

    gcloud alpha edge-cloud zones list \
       --organization ORGANIZATION_ID \
       --location REGION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ORGANIZATION_ID: המזהה של הארגון Google Cloud שמשמש כיעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud במהלך תקופת ה-Public Preview, האזור הנתמך היחיד הוא us-west2.
  3. לקבל מידע מפורט על אזור היעד:

    gcloud alpha edge-cloud zones describe ZONE \
       --organization ORGANIZATION_ID \
       --location REGION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ZONE: אזור היעד של Distributed Cloud במודל מחובר.
    • ORGANIZATION_ID: המזהה של הארגון Google Cloud שמשמש כיעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud במהלך תקופת ה-Public Preview, האזור הנתמך היחיד הוא us-west2.

קבלת מידע על המכונות המוסמכות באזור המחובר של Distributed Cloud

כדי לקבל את השמות של המכונות המוסמכות שלכם באזור המחובר של Distributed Cloud:

  1. מפרטים את המכונות של Distributed Cloud במודל מחובר באזור היעד של Distributed Cloud במודל מחובר, כמו שמתואר במאמר רשימת מכונות באזור.

  2. מקבלים מידע מפורט על מכונת היעד, כמו שמתואר במאמר קבלת מידע על מכונה.

הפעלה של שירותי AI Platform API ו-Vertex AI API מקומיים

כדי להשלים את השלבים שבקטע הזה, צריך להשתמש בחשבון אדמין ב-IT עם התפקיד Edge Container Zonal Project Admin.

  1. מפעילים את פרויקט היעד באזור המחובר של Distributed Cloud: Google Cloud

    gcloud alpha edge-cloud projects enable PROJECT_ID \
       --organization ORGANIZATION_ID \
       --location REGION \
       --zone ZONE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • ORGANIZATION_ID: המזהה של הארגון Google Cloud שמשמש כיעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
    • ZONE: אזור היעד של Distributed Cloud במודל מחובר.
  2. מפעילים את השירות AI Platform בפרויקט היעד: Google Cloud

    gcloud services enable aiplatform.googleapis.com --project PROJECT_ID
    

    מחליפים את PROJECT_ID במזהה של פרויקט היעד. Google Cloud

  3. מפעילים את שירות Vertex AI API באזור המחובר של Distributed Cloud:

    gcloud alpha edge-cloud services enable aiplatform.googleapis.com --project PROJECT_ID \
       --location REGION \
       --zone ZONE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
    • ZONE: אזור היעד של Distributed Cloud במודל מחובר.

הגדרת נקודת הקצה לפתרון DNS

  1. מקבלים את כתובת ה-DNS המנוהל, הדומיין ברמה העליונה (TLD) והאישור של רשות האישורים (CA) לאזור המחובר של Distributed Cloud.

    gcloud alpha edge-cloud zones describe ZONE \
      --organization ORGANIZATION_ID \
      --location REGION \
      --format="value(certificateAuthorities)" \
      > CA_CERTIFICATE_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ORGANIZATION_ID: המזהה של הארגון Google Cloud שמשמש כיעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
    • ZONE: אזור היעד של Distributed Cloud במודל מחובר.
    • CA_CERTIFICATE_FILE: הקובץ שבו נשמר פלט מטען הייעודי (payload) של האישור מהפקודה. בהמשך תשתמשו בקובץ הזה כדי ליצור את המפתח של חשבון השירות.

    פלט דומה לזה שמופיע בהמשך מאוחסן בקובץ:

    -----BEGIN CERTIFICATE-----
    MIIDATCCAemgAwIBAgIRAOsIG15loHwPBpjQe9FZYUAwDQYJKoZIhvcNAQELBQAw
    GjEYMBYGA1UEAxMPZ2RjZS1jbHVzdGVyLWNhMB4XDTI1MDcyOTEyMTAwNloXDTQ5
    MDcyMzEyMTAwNlowGjEYMBYGA1UEAxMPZ2RjZS1jbHVzdGVyLWNhMIIBIjANBgkq
    hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3YdoASubyzHdgZ0vIU5g1dxdFRT1T4wc
    o9FaRXftSTDfiNVNKj/vC+De9EZokpyLZkdZNep6p0TLJAsPZYq+yiTCiaJ6Ihwy
    3LBn8j2PessSIte2LUhkft1yCQqfkgpYfKcjM3IauIXETS961m0uJb4sntgLJ4nM
    Scb5vpW1f70D1V27bqnEsE7+rbxzeFTosHC+DGBcLqIE0ptdionm/4xoltH7yv2O
    qKfcc/46TyPwGRzxifEdNzjKZ1kRdTThESfW+L7TQNv6VF5TC4FPksYX/ID/X7Fz
    G9BRey0mikvc4J7qQIeyMRlpIKqRh/1FCdRDC9vVEQipT2Ls0MwwTwIDAQABo0Iw
    QDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUmES2
    pyMLOnnsKug8amFmenOaTr8wDQYJKoZIhvcNAQELBQADggEBADn71zo7cNFZ0kQE
    C2lS6b0DLz4Nd1yCz5fGDvxzcTRdOT60wyq/TAx1YlYse33cGk/cQ7RkVsM56UX1
    T8RMvi09UcEQG3wFrYuU62ZjXF1a3RrOnHxyvVdyvbUYAO5gvzBQrj4tMZYX9kL3
    6H/9FwXuHVyqWAm0xpWvZfszwJjY4C1VxoDwmRiZPYzTrWI6/rY0QmORgcZXLnPL
    OVufbAX30aRGdTRnVXxE0fKmXwzbtbSHilU5hJT7EQWMvV5hJfyNqdXG0gbrhrsk
    sB0yRjk5PHQd9pOMcXcYIgfNnUEcQl4qeSll3g5cZ+cRrcTO1USFLRo8dcbQpJ6Y
    6ykzvKs=
    -----END CERTIFICATE-----
    createTime: '2025-08-25T20:46:50.269384028Z'
    dnsServers:
    - ipAddress: DNS_SERVER_ADDRESS
    tld: TOP_LEVEL_DOMAIN
    name: organizations/ORGANIZATION_ID/locations/REGION/zones/ZONE
    state: STATE_RUNNING
    
  2. יוצרים את הגדרות ה-DNS לנקודת הקצה באופן הבא, באמצעות כתובת ה-IP של שרת ה-DNS ושם הדומיין ברמה העליונה (TLD) שהתקבלו בשלב הקודם. צריך להריץ את הפקודה הזו ממכונה שנמצאת באותה רשת מקומית כמו המכונה שאושרה לשימוש ב-API שמחובר ל-Gemini ב-GDC.

    mkdir /etc/systemd/resolved.conf.d
    echo '[Resolve]
    DNS=DNS_SERVER_ADDRESS
    Domains=~TOP_LEVEL_DOMAIN' > /etc/systemd/resolved.conf.d/dns.conf
    sudo systemctl restart systemd-resolved
    

    מחליפים את מה שכתוב בשדות הבאים:

    • DNS_SERVER_ADDRESS: כתובת ה-IP של שרת ה-DNS.
    • TOP_LEVEL_DOMAIN: הדומיין ברמה העליונה של נקודת הקצה.

פריסת נקודת קצה ל-API של Gemini ב-GDC במודל מחובר

כדי לפרוס נקודת קצה של API מקושרת ל-Gemini on GDC, צריך לבצע את הפעולות הבאות באמצעות חשבון אדמין של Google Cloud פרויקט:

  1. יוצרים את נקודת הקצה:

    gcloud beta ai endpoints create \
       --project=PROJECT_ID \
       --region=REGION \
       --gdc-zone=ZONE \
       --display-name=ENDPOINT_NAME \
       --endpoint-id=ENDPOINT_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
    • ZONE: אזור היעד של Distributed Cloud במודל מחובר.
    • ENDPOINT_NAME: שם משמעותי לנקודת הקצה הזו.
    • ENDPOINT_ID: (אופציונלי) מזהה ייחודי של נקודת הקצה הזו. אם לא מציינים מזהה, נוצר מזהה אקראי.
  2. פריסת המודל:

    gcloud beta ai endpoints deploy-model ENDPOINT_ID \
      --display-name=ENDPOINT_NAME \
      --model=MODEL_PUBLIC_ID \
      --region=REGION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ENDPOINT_ID: המזהה של נקודת הקצה של היעד.
    • ENDPOINT_NAME: השם של נקודת הקצה של היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
    • MODEL_PUBLIC_ID: המזהה של המודל שגלוי לציבור. רשימה של הדגמים הנתמכים מופיעה במאמר דגמים נתמכים.
  3. מציגים את נקודות הקצה שנפרסו:

    gcloud beta ai endpoints list \
      --project=PROJECT_ID \
      --region=REGION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud

    חשוב לזכור את המזהה של נקודת הקצה של היעד.

  4. מקבלים את כתובת נקודת הקצה:

    gcloud beta ai endpoints describe ENDPOINT_ID \
      --project=PROJECT_ID \
      --region=REGION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ENDPOINT_ID: המזהה של נקודת הקצה של היעד.
    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
  5. יוצרים את חשבון השירות לנקודת הקצה באזור המחובר של Distributed Cloud:

    gcloud alpha edge-cloud service-accounts create SERVICE_ACCOUNT \
      --project PROJECT_ID \
      --location REGION \
      --zone ZONE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • SERVICE_ACCOUNT: שם בעל משמעות שמזהה באופן ייחודי את חשבון השירות הזה. השם הזה יכול לכלול רק אותיות קטנות, מספרים, '-' או '.', והוא חייב להתחיל ולהסתיים בתו אלפאנומרי. אסור להשתמש באותיות רישיות.
    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
    • ZONE: אזור היעד של Distributed Cloud במודל מחובר.
  6. מקבלים את מדיניות ניהול הזהויות והרשאות הגישה (IAM) של אזור היעד המחובר ל-Distributed Cloud:

    gcloud alpha edge-cloud zones get-iam-policy ZONE \
      --project PROJECT_ID \
      --location REGION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ZONE: אזור היעד של Distributed Cloud במודל מחובר.
    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
  7. מקצים לחשבון השירות את התפקיד AI Platform Developer:

    gcloud alpha edge-cloud zones set-iam-policy POLICY_FILE \
      --project PROJECT_ID \
      --location REGION \
      --zone ZONE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • POLICY_FILE: קובץ JSON או YAML שמכיל את מדיניות הקצאת התפקידים.
    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
    • ZONE: אזור היעד של Distributed Cloud במודל מחובר.

    דוגמה למדיניות בפורמט JSON:

    {
      "bindings": [
         {
            "role": "roles/aiplatform.geminiDeveloper",
            "members": [
               {
                  "serviceAccount": "projects/PROJECT_ID/locations/REGION/serviceAccounts/SERVICE_ACCOUNT"
               }
            ]
         }
      ],
      "etag": ""
    }
    

    דוגמה למדיניות בפורמט YAML:

    bindings:
    - role: roles/aiplatform.geminiDeveloper
      members:
      - serviceAccount: projects/PROJECT_ID/locations/REGION/serviceAccounts/SERVICE_ACCOUNT
    etag: ""
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
    • SERVICE_ACCOUNT: שם בעל משמעות שמזהה באופן ייחודי את חשבון השירות הזה.
  8. מגדירים אימות באמצעות אחת מהשיטות שמתוארות בסעיפים הבאים.

הגדרת אימות באמצעות טוקן bearer

כדי להגדיר אימות של נקודת קצה באמצעות טוקן מסוג bearer, צריך לבצע את השלבים שמפורטים בקטע הזה.

  1. יוצרים מפתח לחשבון השירות:

    gcloud alpha edge-cloud service-accounts keys create SA_KEY_FILE \
      --service-account SERVICE_ACCOUNT \
      --project PROJECT_ID \
      --location REGION \
      --ca-cert-path CA_CERTIFICATE_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • SA_KEY_FILE: הקובץ שבו יישמר המפתח שנוצר לחשבון השירות.
    • SERVICE_ACCOUNT: חשבון השירות שיצרתם קודם במדריך הזה.
    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
    • CA_CERTIFICATE_FILE: קובץ אישור CA שיצרתם קודם.
  2. מקבלים את כתובת ה-URL המלאה של נקודת הקצה:

    gcloud beta ai endpoints describe ENDPOINT_ID \
      --project=PROJECT_ID \
      --region=REGION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ENDPOINT_ID: מזהה נקודת הקצה של היעד.
    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
  3. הדפסת אסימון הזהות של חשבון השירות. צריך להריץ את הפקודה הזו ממכונה שנמצאת באותה רשת מקומית כמו המכונה המוסמכת של Gemini ב-GDC במודל מחובר connected API.

    gcloud alpha edge-cloud auth print-identity-token \
      --cred-file=SA_KEY_FILE \
      --audience=ENDPOINT_URL
    

    מחליפים את מה שכתוב בשדות הבאים:

    • SA_KEY_FILE: קובץ המפתח של חשבון השירות שיצרתם קודם.
    • ENDPOINT_URL: כתובת ה-URL המוגדרת במלואה של נקודת הקצה, כולל הסיומת של הדומיין העליון.

הגדרת אימות באמצעות מפתח API

כדי להגדיר אימות של נקודת קצה באמצעות מפתח API, צריך לבצע את השלבים שבקטע הזה.

  1. יוצרים את מפתח ה-API:

    gcloud alpha edge-cloud api-keys create API_KEY_ID \
      --service-account SERVICE_ACCOUNT \
      --project PROJECT_ID \
      --location REGION \
      --zone ZONE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • API_KEY_ID: מזהה ייחודי של מפתח ה-API הזה.
    • SERVICE_ACCOUNT: חשבון השירות שיצרתם קודם במדריך הזה.
    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
    • ZONE: אזור היעד של Distributed Cloud במודל מחובר.
  2. מאחזרים את מטען הייעודי (payload) של מפתח ה-API:

    gcloud alpha edge-cloud api-keys describe API_KEY_ID \
      --project=PROJECT_ID \
      --location=REGION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • API_KEY_ID: המזהה של מפתח ה-API שהגדרתם בשלב הקודם.
    • SERVICE_ACCOUNT: חשבון השירות שבו השתמשתם כדי ליצור את מפתח ה-API.
    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud

הצגת רשימה של נקודות קצה של Gemini API שנפרסו ב-GDC במודל מחובר

כדי להציג את Gemini שהופעל בנקודות קצה של API שמקושרות ל-GDC, צריך:

gcloud beta ai endpoints list \
    --project=PROJECT_ID \
    --region=REGION \
    --gdc-zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
  • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
  • ZONE: אזור היעד של Distributed Cloud במודל מחובר.

קבלת מידע על נקודת קצה של API שמקושרת ל-Gemini ב-GDC

כדי לקבל מידע על נקודת קצה של API שמקושרת ל-GDC ופריסתם בה את Gemini, פועלים לפי השלבים הבאים:

gcloud beta ai endpoints describe ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION
   

מחליפים את מה שכתוב בשדות הבאים:

  • ENDPOINT_ID: המזהה של נקודת הקצה של היעד.
  • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
  • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud

אינטראקציה עם נקודת קצה ל-API של Gemini on Google Distributed Cloud במודל מחובר

נקודת קצה ל-API של Gemini ב-GDC במודל מחובר תומכת באינטראקציה דרך ChatCompletions API ו-ListAvailableModels API. משתמשים בממשקי ה-API האלה כדי לבצע אינטראקציה פרוגרמטית עם נקודת הקצה.

הנה דוגמה לבקשה דרך ChatCompletions API. אסימון ה-bearer שנוצר בבקשה הזו תקף ל-12 שעות.

  1. מגדירים את המשתנים הבאים בסביבת המעטפת:

    MODEL_PROMPT_ID="MODEL_PROMPT_ID"
    USER_CONTENT="Who invented the light bulb?"
    PROJECT="PROJECT_ID"
    LOCATION="REGION"
    IG_FQDN="inference-gateway.vai.ZONE.google.private.goog"
    CRED_FILE="SA_KEY_FILE"
    API_ENDPOINT="https://${IG_FQDN}/v1/projects/${PROJECT}/locations/${LOCATION}/chat/completions"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • MODEL_NAME: השם של מודל היעד.
    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
    • SA_KEY_FILE: קובץ המפתח של חשבון השירות שיצרתם קודם.
  2. בניית המטען הייעודי (payload):

    REQUEST_BODY=$(cat <<EOF
    {
    "model": "${MODEL_PROMPT_ID}",
    "messages": [
       {
          "role": "system",
          "content": "Pizza for everyone!"
       },
       {
          "role": "user",
          "content": "${USER_CONTENT}"
       }
    ],
    "stream": false
    }
    EOF
    )
    
  3. מבצעים אימות לנקודת הקצה באחת מהשיטות הבאות:

    • מדפיסים את הטוקן למוכ"ז. צריך להריץ את הפקודה הזו ממכונה שנמצאת באותה רשת מקומית כמו מכונת Gemini on GDC במודל מחובר עם אישור לחיבור API:
     BEARER_TOKEN=$(gcloud alpha edge-cloud auth print-identity-token --cred-file="${CRED_FILE}" --audience="https://${IG_FQDN}")
     echo $BEARER_TOKEN
    
    • מדפיסים את מפתח ה-API. אפשר להריץ את הפקודה הזו מרחוק ממכונה שלא נמצאת באותה רשת מקומית כמו מכונה עם אישור API מחובר של Gemini ב-GDC:
     API_KEY=$(gcloud alpha edge-cloud api-keys describe "${API_KEY_ID}" --project "${PROJECT}" --location "${LOCATION}" --format="value(key)")
     echo $API_KEY
    
  4. שולחים את הבקשה לנקודת הקצה באחת מהשיטות הבאות.

    • שולחים את הבקשה עם טוקן bearer לאימות. צריך להריץ את הפקודה הזו ממכונה שנמצאת באותה רשת מקומית כמו המכונה המוסמכת של Gemini on GDC במודל מחובר שמחוברת ל-API:
    curl -k -X POST \
    "${API_ENDPOINT}" \
    -d "${REQUEST_BODY}" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${BEARER_TOKEN}" \
    -H "x-goog-user-project: projects/${PROJECT}"
    
    • שולחים את הבקשה עם אימות באמצעות מפתח API. אפשר להריץ את הפקודה הזו מרחוק ממכונה שלא נמצאת באותה רשת מקומית כמו מכונה עם אישור API מחובר של Gemini ב-GDC:
     curl -k -X POST \
     "${API_ENDPOINT}" \
     -d "${REQUEST_BODY}" \
     -H "Content-Type: application/json" \
     -H "x-goog-api-key: ${API_KEY}"
    

דוגמה לבקשת API מולטימודאלית עם מטען ייעודי (payload) של תמונת JPEGChatCompletions

הנה דוגמה למטען ייעודי (payload) של בקשת API מרובת-אופנים עם תמונת JPEG כקלט:ChatCompletions

  1. בניית המטען הייעודי (payload):

    BASE64_IMAGE=$(base64 -w 0 JPEG_FILE)
    REQUEST_BODY=$(cat <<EOF
    {
    "model": "${MODEL_PROMPT_ID}",
    "messages": [
       {
          "role": "user",
          "content": [
                {
                   "type": "text",
                   "text": "What is this image?"
                },
                {
                   "type": "image_url",
                   "image_url": {
                      "url": "data:image/jpeg;base64,${BASE64_IMAGE}"
                   }
                }
          ]
       }
    ]
    }
    EOF
    
    )
    
  2. שולחים את הבקשה לנקודת הקצה. צריך להריץ את הפקודה הזו ממחשב שנמצא באותה רשת מקומית כמו מחשב Gemini ב-GDC במודל מחובר שמחובר ל-API מאושר.

    curl -k -X POST \
    "${API_ENDPOINT}" \
    -d "${REQUEST_BODY}" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${BEARER_TOKEN}" \
    -H "x-goog-user-project: projects/${PROJECT}"
    

דוגמה לבקשת API מולטי-מודאלית עם מטען ייעודי (payload) של מסמך PDFChatCompletions

הנה דוגמה למטען ייעודי (payload) של בקשת ChatCompletions API מולטי-מודאלית עם מסמך PDF כקלט:

  1. בניית המטען הייעודי (payload):

    BASE64_PDF=$(base64 -w 0 PDF_FILE)
    REQUEST_BODY=$(cat <<EOF
    {
    "model": "${MODEL_PROMPT_ID}",
    "messages": [
       {
          "role": "user",
          "content": [
                {
                   "type": "text",
                   "text": "Please summarize this document."
                },
                {
                   "type": "input_document",
                   "input_document": {
                      "data": "data:application/pdf;base64,${BASE64_PDF}",
                      "format": "pdf"
                   }
                }
          ]
       }
    ]
    }
    EOF
    
    )
    
  2. שולחים את הבקשה לנקודת הקצה. צריך להריץ את הפקודה הזו ממחשב שנמצא באותה רשת מקומית כמו מחשב Gemini ב-GDC במודל מחובר שמחובר ל-API מאושר.

    curl -k -X POST \
    "${API_ENDPOINT}" \
    -d "${REQUEST_BODY}" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${BEARER_TOKEN}" \
    -H "x-goog-user-project: projects/${PROJECT}"
    

דוגמה לבקשת API רב-מודיאלית ChatCompletions עם מטען ייעודי (payload) של אודיו

הנה דוגמה למטען ייעודי (payload) של בקשת API ChatCompletions עם קובץ אודיו כקלט:

  1. בניית המטען הייעודי (payload):

    BASE64_AUDIO=$(base64 -w 0 AUDIO_FILE)
    REQUEST_BODY=$(cat <<EOF
    {
    "model": "${MODEL_PROMPT_ID}",
    "messages": [
       {
          "role": "user",
          "content": [
                {
                   "type": "text",
                   "text": "Transcribe this speech for me."
                },
                {
                   "type": "input_audio",
                   "input_audio": {
                      "data": "data:audio/mp3;base64,${BASE64_AUDIO}",
                      "format": "mp3"
                   }
                }
          ]
       }
    ]
    }
    EOF
    
    )
    
  2. שולחים את הבקשה לנקודת הקצה. צריך להריץ את הפקודה הזו ממחשב שנמצא באותה רשת מקומית כמו מחשב Gemini ב-GDC במודל מחובר שמחובר ל-API מאושר.

    curl -k -X POST \
    "${API_ENDPOINT}" \
    -d "${REQUEST_BODY}" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${BEARER_TOKEN}" \
    -H "x-goog-user-project: projects/${PROJECT}"
    

דוגמה לבקשת API רב-אופנית ChatCompletions עם מטען ייעודי (payload) של סרטון

זוהי דוגמה למטען ייעודי (payload) של בקשת API מולטי-מודאלית ChatCompletions עם קובץ וידאו כקלט:

  1. בניית המטען הייעודי (payload):

    BASE64_VIDEO=$(base64 -w 0 VIDEO_FILE)
    REQUEST_BODY=$(cat <<EOF
    {
    "model": "${MODEL_PROMPT_ID}",
    "messages": [
       {
          "role": "user",
          "content": [
                {
                   "type": "text",
                   "text": "Could you summarize this video for me?"
                },
                {
                   "type": "input_video",
                   "input_video": {
                      "data": "data:video/wmv;base64,${BASE64_VIDEO}",
                      "format": "wmv"
                   }
                }
          ]
       }
    ]
    }
    EOF
    
    )
    
  2. שולחים את הבקשה לנקודת הקצה. צריך להריץ את הפקודה הזו ממחשב שנמצא באותה רשת מקומית כמו מחשב Gemini ב-GDC במודל מחובר שמחובר ל-API מאושר.

    curl -k -X POST \
    "${API_ENDPOINT}" \
    -d "${REQUEST_BODY}" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${BEARER_TOKEN}" \
    -H "x-goog-user-project: projects/${PROJECT}"
    

דוגמה לבקשת API של ListAvailableModels

הנה דוגמה לבקשת ListAvailableModels API:

BEARER_TOKEN=$(gcloud alpha edge-cloud auth print-identity-token --cred-file="${CRED_FILE}" --audience="https://${IG_FQDN}")
# The request body -d parameter is intentionally omitted.
grpcurl -insecure \
  -H "Authorization: Bearer ${BEARER_TOKEN}" \
  -H "x-goog-user-project: projects/${PROJECT}" \
  "${IG_FQDN}" \
  cloud.gdc.ai.inference.inferencegateway.GeminiMetadataService.ListAvailableModels

מחיקת נקודת קצה ל-API של Gemini on Google Distributed Cloud במודל מחובר

כדי למחוק נקודת קצה ל-API שמקושרת ל-Gemini on GDC:

  1. ביטול הפריסה של המודל:

    gcloud beta ai endpoints undeploy-model ENDPOINT_ID \
      --region=REGION \
      --deployed-model-id=DEPLOYED_MODEL_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ENDPOINT_ID: המזהה של נקודת הקצה של היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud
    • DEPLOYED_MODEL_ID: המזהה של המודל שפריסתו הושלמה.
  2. מחיקת נקודת הקצה:

    gcloud beta ai endpoints delete ENDPOINT_ID \
       --project=PROJECT_ID \
       --region=REGION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ENDPOINT_ID: המזהה של נקודת הקצה של היעד.
    • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    • REGION: האזור שבו נוצר אזור היעד של Google Distributed Cloud במודל מחובר. Google Cloud

פתרון בעיות בנקודות קצה

אם נקודת קצה ל-API של Gemini ב-GDC במודל מחובר מושבתת, צריך לפנות לנציג Google כדי לפתור בעיות.