שילוב של Cloud SQL עם Vertex AI

בדף הזה מוסבר איך לשלב את Cloud SQL עם Vertex AI.

השילוב הזה מאפשר להחיל מודלים גדולים של שפה (LLM), שמתארחים ב-Vertex AI, על מסד נתונים של Cloud SQL ל-SQL Server 2025.

שילוב של Cloud SQL עם Vertex AI מאפשר להחיל על הנתונים את היכולות הסמנטיות והחיזויות של מודלים של למידת מכונה (ML). השילוב הזה מרחיב את תחביר ה-SQL עם הפונקציה generate embeddings לשליחת שאילתות למודלים.

משתמשים בפונקציה generate embeddings כדי שמודל ההטמעה יוכל לתרגם הנחיות טקסט לווקטורים מספריים. אחר כך אפשר להשתמש בהטמעות הווקטוריות האלה כקלט לסוגי נתונים וקטוריים. למידע נוסף, אפשר לעיין במסמכי התיעוד של Microsoft בנושא חיפוש וקטורים ואינדקסים של וקטורים במנוע של SQL Database.

מידע נוסף על Vertex AI זמין במאמר מבוא ל-Vertex AI.

גרסאות ומסדי נתונים נתמכים

שילוב של Vertex AI נתמך במהדורות Cloud SQL Enterprise Plus ו-Cloud SQL Enterprise ובכל גרסאות מסד הנתונים של SQL Server 2025.

סוגי מודלים נתמכים

השילוב של Vertex AI עם Cloud SQL תומך בנקודות קצה של מודלים מהמקורות הבאים:

  • Vertex AI
  • Hugging Face
  • OpenAI

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. מפעילים את ממשקי ה-API הנדרשים. Google Cloud

    המסוף

    1. עוברים אל APIs & Services.
    2. ברשימת הפרויקטים, בוחרים את הפרויקט הרצוי.
    3. אם ספריית ה-API לא פתוחה, בתפריט הניווט בוחרים באפשרות ספרייה.
    4. לוחצים על ממשקי ה-API שרוצים להפעיל. כדי לבצע את התהליך הזה, צריך להפעיל את האפשרויות הבאות:

      • Cloud SQL Admin API
      • Vertex AI API
      • Compute Engine API
      • אופציונלי: אם משתמשים במודל של צד שלישי, נדרש Secret Manager API.
    5. אחרי שבוחרים כל API, לוחצים על הפעלה.

    gcloud

    1. פותחים את Cloud Shell, שנותן גישה למשאבי Google Cloud הפרויקט ישירות מהדפדפן.
    2. כדי להפעיל את ממשקי ה-API הנדרשים, משתמשים בפקודה gcloud services enable:
      gcloud services enable sqladmin.googleapis.com \
        aiplatform.googleapis.com \
        compute.googleapis.com \
        secretmanager.googleapis.com
      
    3. הפקודה הזו מפעילה את ממשקי ה-API הבאים:
      • Cloud SQL Admin API
      • Vertex AI API
      • Compute Engine API
      • אופציונלי: אם משתמשים במודל של צד שלישי, צריך להשתמש ב-Secret Manager API.

  7. נותנים לחשבון השירות של Cloud SQL הרשאות לניהול זהויות והרשאות גישה (IAM) כדי לגשת אל Vertex AI.
  8. gcloud

    כדי להוסיף את ההרשאות של Vertex AI לחשבון השירות של Cloud SQL בפרויקט שבו נמצאת מכונת Cloud SQL, משתמשים בפקודה gcloud projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role="roles/aiplatform.user"
    

    מחליפים את הפרטים הבאים:
    • PROJECT_ID: מזהה הפרויקט שכולל את נקודת הקצה של Vertex AI. ב-Cloud SQL, המערכת משתמשת בנקודת הקצה הזו כדי לגשת למודל ה-LLM שמארח ב-Vertex AI.
    • SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות של Cloud SQL.

      כדי למצוא את כתובת האימייל הזו, משתמשים בפקודה gcloud sql instances describe:

      gcloud sql instances describe INSTANCE_NAME | grep EmailAddress
      

      מחליפים את INSTANCE_NAME בשם של מופע Cloud SQL.

  9. צריך לוודא שלמשתמש ב-Cloud SQL שעובד עם מודלים להטמעה הוענקו הרשאות הגישה הבאות למסד הנתונים:
    • כדי לאפשר למשתמש במסד נתונים ליצור או לשנות מודלים, צריך להעניק למשתמש ב-Cloud SQL את ההרשאה EXECUTE בפרוצדורות המאוחסנות הבאות:
      • [msdb].gcloudsql_ml_create_external_model: יוצר אובייקט של מודל חיצוני שמכיל את המיקום, שיטת האימות והמטרה של נקודת קצה להסקת מסקנות של מודל AI.
      • [msdb].gcloudsql_ml_alter_external_model: מאפשרת לשנות את אובייקט המודל החיצוני.
      • [msdb].gcloudsql_ml_drop_external_model: מסיר את אובייקט המודל החיצוני מהמסד.
    • כדי להפעיל את הפרוצדורות המאוחסנות שצוינו קודם, צריך את ההרשאות הבאות במסד הנתונים של היעד:
      • CREATE EXTERNAL MODEL
      • ALTER EXTERNAL MODEL
    • הוראות להענקת ההרשאות האלה מופיעות במסמכי העזרה של מיקרוסופט בנושא הפקודה Create external model והמינוח.

      מידע על הרשאות סופר-משתמש ב-Cloud SQL זמין במאמר מידע על משתמשי SQL Server ועל פרוצדורות מאוחסנות.

  10. אם רוצים להשתמש במודל חיצוני של צד שלישי, צריך שיהיה מפתח API תקף למודל שמאוחסן במיקום ב-Secret Manager שאפשר לגשת אליו ממופע Cloud SQL.
  11. אם משתמשים במודל חיצוני של צד שלישי, מופע Cloud SQL חייב להשתמש בכתובת IP ציבורית. מופעים של כתובות IP פרטיות לא יכולים לגשת למודלים חיצוניים של צד שלישי. גישה לשירותים פרטיים ו-Private Service Connect נתמכים רק בשילוב עם Vertex AI.

הפעלה של שילוב מסד נתונים עם Vertex AI

כדי להפעיל שילוב של מסד נתונים עם Vertex AI, פועלים לפי השלבים הבאים:

  1. יוצרים או מעדכנים מכונה של Cloud SQL כדי שהמכונה תוכל להשתלב עם Vertex AI.

    gcloud

    יצירת המופע

    כדי ליצור את מכונת Cloud SQL, משתמשים בפקודה gcloud sql instances create.

    gcloud sql instances create INSTANCE_NAME \
    --database-version=DATABASE_VERSION \
    --tier=MACHINE_TYPE \
    --region=REGION_NAME \
    --enable-google-ml-integration

    מחליפים את הפרטים הבאים:

    • INSTANCE_NAME: השם של המכונה.
    • DATABASE_VERSION: גרסת מסד הנתונים של המופע, למשל SQLSERVER_2025_ENTERPRISE.
    • MACHINE_TYPE: סוג המכונה של המופע, למשל db-perf-optimized-N-8..
    • REGION_NAME: האזור של המכונה, למשל us-central1.

    עדכון המכונה

    כדי לעדכן את המכונה, משתמשים בפקודה gcloud sql instances patch.

    gcloud sql instances patch INSTANCE_NAME \
    --enable-google-ml-integration

    REST v1

    יצירת המופע

    משתמשים בדוגמה הזו כדי ליצור את המופע. רשימה מלאה של הפרמטרים של הקריאה הזו מופיעה בדף instances:insert. מידע על הגדרות של מופעים, כולל ערכים תקינים לאזור, זמין במאמר בנושא הגדרות של מופעים.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע.
    • INSTANCE_NAME: השם של המכונה.
    • REGION_NAME: שם האזור של המכונה.
    • DATABASE_VERSION: מחרוזת enum של גרסת מסד הנתונים, כמו SQLSERVER_2025_ENTERPRISE.
    • PASSWORD: הסיסמה של המשתמש במסד הנתונים root.
    • MACHINE_TYPE: מחרוזת enum של סוג המכונה (רמת השירות), למשל db-custom-[CPUS]-[MEMORY_MBS]. מידע נוסף זמין במאמר בנושא רמות של מכונות.
    • EDITION_TYPE: מהדורת Cloud SQL, למשל ENTERPRISE.

    בנוסף, צריך לכלול בבקשה את האובייקט enableGoogleMlIntegration. מגדירים את הפרמטרים הבאים, לפי הצורך:

    • enableGoogleMlIntegration: כשהפרמטר הזה מוגדר ל-true, מופעים של Cloud SQL יכולים להתחבר ל-Vertex AI כדי להעביר בקשות לתחזיות בזמן אמת ולתובנות ל-AI.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

    תוכן בקשת JSON:

    {
      "name": "INSTANCE_NAME",
      "region": "REGION_NAME",
      "databaseVersion": "DATABASE_VERSION",
      "rootPassword": "PASSWORD",
      "settings": {
        "tier": "MACHINE_TYPE",
        "edition": "EDITION_TYPE",
        "enableGoogleMlIntegration": "true" | "false"
        
      }
    }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2019-09-25T22:19:33.735Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    עדכון המכונה

    משתמשים בדוגמה הזו כדי לעדכן את המכונה. רשימה מלאה של הפרמטרים של הקריאה הזו מופיעה בדף instances.patch.

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

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע
    • INSTANCE_NAME: השם של המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

    תוכן בקשת JSON:

    {
      "settings": {
        "enableGoogleMlIntegration": true,
        
       }
    }

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-16T02:32:12.281Z",
      "operationType": "UPDATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_NAME",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    REST v1beta4

    יצירת המופע

    משתמשים בדוגמה הזו כדי ליצור את המופע. רשימה מלאה של הפרמטרים של הקריאה הזו מופיעה בדף instances:insert. מידע על הגדרות של מופעים, כולל ערכים תקינים לאזור, זמין במאמר בנושא הגדרות של מופעים.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע.
    • INSTANCE_NAME: השם של המכונה.
    • REGION_NAME: שם האזור של המכונה.
    • DATABASE_VERSION: מחרוזת enum של גרסת מסד הנתונים, כמו SQLSERVER_2025_ENTERPRISE.
    • PASSWORD: הסיסמה של המשתמש במסד הנתונים root.
    • MACHINE_TYPE: מחרוזת enum של סוג המכונה (רמת השירות), למשל db-custom-[CPUS]-[MEMORY_MBS]. מידע נוסף זמין במאמר בנושא רמות של מכונות.
    • EDITION_TYPE: מהדורת Cloud SQL, למשל ENTERPRISE.

    בנוסף, צריך לכלול בבקשה את האובייקט enableGoogleMlIntegration. מגדירים את הפרמטרים הבאים, לפי הצורך:

    • enableGoogleMlIntegration: כשהפרמטר הזה מוגדר ל-true, מופעים של Cloud SQL יכולים להתחבר ל-Vertex AI כדי להעביר בקשות לתחזיות בזמן אמת ולתובנות ל-AI.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances

    תוכן בקשת JSON:

    {
      "name": "INSTANCE_NAME",
      "region": "REGION_NAME",
      "databaseVersion": "DATABASE_VERSION",
      "rootPassword": "PASSWORD",
      "settings": {
        "tier": "MACHINE_TYPE",
        "edition": "EDITION_TYPE",
        "enableGoogleMlIntegration": "true" | "false"
        
      }
    }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2019-09-25T22:19:33.735Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    עדכון המכונה

    משתמשים בדוגמה הזו כדי לעדכן את המכונה. רשימה מלאה של הפרמטרים של הקריאה הזו מופיעה בדף instances.patch.

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

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע
    • INSTANCE_NAME: השם של המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

    תוכן בקשת JSON:

    {
      "settings": {
        "enableGoogleMlIntegration": true,
        
       }
    }

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-16T02:32:12.281Z",
      "operationType": "UPDATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_NAME",
      "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

הוספת הרשאות ל-Secret Manager

אם רוצים להשתמש במודל ממקור חיצוני, כמו OpenAI או Hugging Face, צריך לאחסן את מפתח ה-API של מקור המודל ב-Secret Manager.

לאחר מכן, צריך לתת למופע Cloud SQL גישה למפתח ה-API של מקור המודל ב-Secret Manager. כדי לקבל גישה, מריצים את הפקודה הבאה:


SA_NAME=$(gcloud sql instances describe INSTANCE_NAME --format="value(serviceAccountEmailAddress)");

gcloud secrets add-iam-policy-binding SECRET_NAME \
    --member="serviceAccount:${SA_NAME}" \
    --role="roles/secretmanager.secretAccessor"

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

  • INSTANCE_NAME: השם של מכונת Cloud SQL.
  • SECRET_NAME: השם של הסוד כפי שמשתמשים בו ב-Secret Manager.

אובייקטים של מודלים חיצוניים

כדי לגשת למודל ממקור חיצוני, צריך ליצור אובייקט מודל לשימוש ב-SQL Server. ‫Cloud SQL מספק שלוש פרוצדורות מאוחסנות שמאפשרות ליצור, לשנות ולהסיר אובייקט של מודל חיצוני:

  • gcloudsql_ml_create_external_model
  • gcloudsql_ml_alter_external_model
  • gcloudsql_ml_drop_external_model

יצירת מודל חיצוני

כדי ליצור מודל, מריצים את gcloudsql_ml_create_external_model הפרוצדורה המאוחסנת שנמצאת במסד הנתונים msdb:

EXECUTE [msdb].[dbo].[gcloudsql_ml_create_external_model]
@db = [DB_NAME],
@model_name = MODEL_NAME,
@model_provider = 'MODEL_PROVIDER',
@model = 'MODEL',
@model_url = MODEL_URL,
@secret_url = SECRET_URL

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

  • DB_NAME: מסד הנתונים היעד שבו רוצים ליצור את המודל החיצוני.
  • MODEL_NAME: השם של המודל החיצוני החדש.
  • MODEL_PROVIDER: השם של ספק המודל, למשל אחד מהשמות הבאים:
    • Vertex AI
    • OpenAI
    • Hugging Face
  • MODEL_URL: כתובת ה-URL של נקודת הקצה של המודל.

    בדוגמה הבאה נעשה שימוש בפורמט הבא:

        https://region-aiplatform.googleapis.com/v1/projects/project-id/locations/region/publishers/google/models/model:predict
        

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

    • REGION: האזור שבו נמצאת נקודת הקצה של המודל.
    • PROJECT_ID: מזהה הפרויקט שבו נמצאת נקודת הקצה של המודל.
    • MODEL: שם המודל.
  • MODEL: מודל ה-AI שמופעל. לדוגמה, text-embedding-005.
  • SECRET_URL: אם Vertex AI הוא ספק המודל, הפרמטר הזה חייב להיות ריק. אם משתמשים במודל חיצוני, הערך הזה צריך להפנות למיקום של מפתח ה-API ב-Secret Manager.

    כתובת URL לדוגמה מבוססת על הפורמט הבא:

        https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_NAME/versions/VERSION
        

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

    • PROJECT_ID: מזהה הפרויקט שבו נמצא הסוד.
    • SECRET_NAME: השם של הסוד כפי שמשתמשים בו ב-Secret Manager.
    • VERSION: מספר הגרסה של הסוד.

שינוי מודל חיצוני

כדי לשנות אובייקט של מודל חיצוני, מריצים את gcloudsql_ml_alter_external_model הפרוצדורה המאוחסנת שנמצאת במסד הנתונים msdb:

EXECUTE [msdb].[dbo].[gcloudsql_ml_alter_external_model]
@db = [DB_NAME],
@model_name = MODEL_NAME,
@model_provider = 'MODEL_PROVIDER',
@model = 'MODEL',
@model_url = MODEL_URL,
@secret_url = SECRET_URL

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

  • DB_NAME: מסד הנתונים של היעד שבו קיים המודל שרוצים לשנות.
  • MODEL_NAME: השם של המודל הקיים.
  • MODEL_PROVIDER: השם של ספק המודל, למשל אחד מהשמות הבאים:
    • Vertex AI
    • OpenAI
    • Hugging Face
  • MODEL_URL: כתובת ה-URL של נקודת הקצה של המודל.

    בדוגמה הבאה נעשה שימוש בפורמט הבא:

        https://region-aiplatform.googleapis.com/v1/projects/project-id/locations/region/publishers/google/models/model:predict
        

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

    • REGION: האזור שבו נמצאת נקודת הקצה של המודל.
    • PROJECT_ID: מזהה הפרויקט שבו נמצאת נקודת הקצה של המודל.
    • MODEL: שם המודל.
  • MODEL: מודל ה-AI שמופעל. לדוגמה, gemini-embedding-001.
  • SECRET_URL: אם Vertex AI הוא ספק המודל, הפרמטר הזה צריך להיות ריק. אם משתמשים במודל חיצוני, הערך הזה צריך להפנות למיקום של מפתח ה-API ב-Secret Manager.

    כתובת URL לדוגמה מבוססת על הפורמט הבא:

        https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_NAME/versions/VERSION
        

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

    • PROJECT_ID: מזהה הפרויקט שבו נמצא הסוד.
    • SECRET_NAME: השם של הסוד כפי שמשתמשים בו ב-Secret Manager.
    • VERSION: מספר הגרסה של הסוד.

השבתת השילוב עם Vertex AI

כדי להשבית את השילוב של Vertex AI במכונת Cloud SQL, מריצים את הפקודה הבאה:

gcloud sql instances patch [instance-name] --no-enable-google-ml-integration

מחליפים את INSTANCE_NAME בשם של מופע Cloud SQL.

הסרת מודל חיצוני ב-SQL Server

כדי להסיר מודל חיצוני מ-SQL Server, מריצים את הפרוצדורה המאוחסנת gcloudsql_ml_drop_external_model שנמצאת במסד הנתונים msdb:

EXECUTE [msdb].[dbo].[gcloudsql_ml_drop_external_model]
@db = [DB_NAME],
@model_name = MODEL_NAME

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

  • DB_NAME: מסד הנתונים של היעד שבו קיים המודל החיצוני שרוצים להסיר.
  • MODEL_NAME: השם של המודל החיצוני שרוצים להסיר.

הפעלת מודל חיצוני

אחרי שמפעילים את השילוב של Vertex AI במכונה של Cloud SQL ויוצרים אובייקט של מודל לשימוש ב-SQL Server, אפשר להפעיל את הפונקציה AI_GENERATE_EMBEDDINGS של SQL Server כדי ליצור הטבעות וקטוריות של הנתונים.

כדי ליצור הטבעות וקטוריות באמצעות המודל החיצוני, מריצים את הפקודה הבאה:

SELECT AI_GENERATE_EMBEDDINGS(N'Test Text' USE MODEL MODEL_NAME)

מחליפים את MODEL_NAME בשם המודל שרוצים להשתמש בו.

למשתמש הראשי שמבצע את הפעולה צריכות להיות הרשאות EXECUTE ON EXTERNAL MODEL שהוקצו לו באמצעות תפקיד או הרשאה מתאימים.

מידע נוסף זמין במאמר בנושא הענקת הרשאות למודלים חיצוניים במסמכי העזרה של Microsoft.

מגבלות על גודל המודל

בדגמים מסוימים, כמו gemini-embedding-01, יש מידות פלט גבוהות יותר כברירת מחדל ממה ש-SQL Server יכול לתמוך בו עבור וקטורים של float32, שיש להם מקסימום של 1,998 מידות. במקרים שבהם יש צורך בכך, צריך להשתמש ב-float16 (תכונת תצוגה מקדימה של מיקרוסופט) עבור סוג הבסיס הווקטורי, שמציע עד 3,996 מימדים וקטוריים, או לספק את פרמטר המימדים בבקשת AI_GENERATE_EMBEDDINGS כדי לצמצם את המימדיות.

מידע נוסף זמין במאמר בנושא תמיכה בנתונים מסוג float עם דיוק חצי בנתונים מסוג וקטור.

לדוגמה, ראו את המאמר הבא:

DECLARE @params JSON = N'{"dimensions": "DIMENSIONS"}';
SELECT AI_GENERATE_EMBEDDINGS('This article introduces AI concepts.' USE MODEL MODEL_NAME PARAMETERS @params)

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

  • DIMENSIONS: המאפיינים שרוצים להשתמש בהם במודל, כמו 1536. הערך הזה מתקבל כמחרוזת.
  • MODEL_NAME: שם המודל שרוצים להשתמש בו.

פתרון בעיות

אלה הודעות השגיאה האפשריות שאתם עשויים לקבל:

הקשר הודעת השגיאה שהתקבלה סיבה אפשרית
CREATE/ALTER תהליך ‫"The specified model provider is not valid." (ספק המודל שצוין לא תקין). סופק ספק מודלים שלא נתמך.
CREATE/ALTER תהליך "כתובת ה-URL הסודית שצוינה לא תקפה עבור ספק המודל הזה". ב-Vertex AI, כתובת ה-URL של הסוד חייבת להיות ריקה. לספקי מודלים אחרים, כתובת ה-URL הסודית לא יכולה להיות ריקה.
CREATE/ALTER/DROP תהליך ‫"The specified model name is not valid" (שם הדגם שצוין לא תקין). השדה 'שם הדגם' הוא שדה חובה.
CREATE/ALTER תהליך ‫"The specified model URL is not valid" (כתובת ה-URL של המודל שצוינה לא תקינה). השדה 'כתובת URL של הדגם' הוא שדה חובה.
CREATE/ALTER/DROP תהליך ‫"The specified DB name is not valid" (שם מסד הנתונים שצוין לא תקין). חובה למלא את שם מסד הנתונים.
שיחה אחת (AI_GENERATE_EMBEDDINGS) קודי שגיאה שונים, כולל 400, 403, 404, 405, 500. אם נתקלים בבעיות בניסיון להפעיל את הפונקציה AI_GENERATE_EMBEDDINGS, מוחזרים רק קודי שגיאה. זו מגבלה ידועה של מיקרוסופט.
שיחה אחת (AI_GENERATE_EMBEDDINGS) ‫"The HTTP response does not contain valid JSON." (תגובת ה-HTTP לא מכילה JSON תקין). קוד שגיאה שמבקש לנסות שוב, כמו 429 או 500, הוחזר מסוכן למידת מכונה. עם זאת, הלקוח מקבל את הודעת הטקסט הזו במקום. זו מגבלה ידועה של מיקרוסופט.

קודי שגיאה

הפונקציה AI_GENERATE_EMBEDDINGS מספקת רק קודי שגיאה, ולא הודעות. בטבלה הבאה מפורטות סיבות אפשריות לחלק מקודי השגיאה:

קוד שגיאה סיבה אפשרית
400 Bad Request
  • סוג המודל לא נתמך.
  • מטען ייעודי (payload) של JSON שנוצר בצורה לא נכונה.
  • כתובת ה-URL של סוג המודל לא תקינה.
401 Unauthorized במודל של הצד השלישי חסר מפתח API תקין.
403 Forbidden
  • למופע Cloud SQL אין הרשאות מתאימות לגישה ל-Vertex AI.
  • למופע Cloud SQL חסרות הרשאות מתאימות לגישה ל-Secret Manager.
  • מפתח ה-API לא מעניק הרשאה למודל של הצד השלישי שצוין.
  • ‫Vertex AI לא מופעל בפרויקט.
404 Not Found
  • ה-secret_url שצוין לא קיים.
  • ה-model_url שצוין לא קיים.
405 Method Not Allowed צוינה שיטה שאינה POST.
413 Request Body Too Large גודל הבקשה גדול ממגבלת 1MB.
429 Too Many Requests שגיאה שנגרמה בגלל חריגה ממכסת השימוש מספק המודל.
500 Internal Server Error
  • שגיאות לא מזוהות מספק המודל.
  • תשובה לא צפויה מספק המודל.

המאמרים הבאים