Skip to content

Latest commit

 

History

History
203 lines (127 loc) · 12.3 KB

File metadata and controls

203 lines (127 loc) · 12.3 KB

מקרה מבחן: חשיפת REST API בניהול API כשרת MCP

ניהול API של Azure הוא שירות המספק שער על גבי נקודות הקצה של ה-API שלכם. האופן שבו הוא פועל הוא שניהול API של Azure פועל כפרוקסי מול ה-APIs שלכם ויכול להחליט מה לעשות עם הבקשות הנכנסות.

באמצעותו, אתם מוסיפים מגוון תכונות כגון:

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

למה MCP + ניהול API של Azure?

פרוטוקול הקשר של מודלים (Model Context Protocol) הופך במהירות לסטנדרט עבור אפליקציות AI סוכניות ואיך לחשוף כלים ונתונים באופן קבוע. ניהול API של Azure הוא הבחירה הטבעית כאשר צריך "לנהל" APIs. שרתי MCP משתלבים לרוב עם APIs אחרים כדי לפתור בקשות לכלי מסוים, לדוגמה. לכן השילוב בין ניהול API של Azure ל-MCP הגיוני מאוד.

סקירה כללית

במקרה שימוש ספציפי זה נלמד לחשוף נקודות קצה של API כשרת MCP. באמצעות כך, נוכל להפוך את נקודות הקצה הללו לחלק מאפליקציה סוכנית תוך ניצול תכונות ניהול API של Azure.

תכונות מרכזיות

  • אתם בוחרים את שיטות הנקודה הקצה שברצונכם לחשוף ככלים.
  • התכונות הנוספות שתקבלו תלויות במה שתגדירו במדור המדיניות עבור ה-API שלכם. כאן נראה איך להוסיף הגבלת קצב.

שלב מקדים: ייבוא API

אם כבר יש לכם API בניהול API של Azure, מצוין, אפשר לדלג על שלב זה. אם לא, עברו לקישור הזה, ייבוא API לניהול API של Azure.

חשיפת API כשרת MCP

כדי לחשוף את נקודות הקצה של ה-API, נעקוב אחרי השלבים הבאים:

  1. נווטו ל-Azure Portal ולכתובת הבאה https://portal.azure.com/?Microsoft_Azure_ApiManagement=mcp
    נווטו למופע ניהול ה-API שלכם.

  2. בתפריט שמאלי, בחרו APIs > MCP Servers > + יצירת שרת MCP חדש.

  3. ב-API, בחרו REST API לחשיפה כשרת MCP.

  4. בחרו פעולה או יותר של API לחשוף ככלים. ניתן לבחור את כל הפעולות או פעולות ספציפיות בלבד.

    בחר שיטות לחשיפה

  5. בחרו צור.

  6. נווטו לאפשרות התפריט APIs ו-MCP Servers, אמורים לראות את המצב הבא:

    ראה את שרת MCP בחלון הראשי

    שרת MCP נוצר והפעולות של ה-API מוצגות ככלים. שרת MCP מופיע בחלונית שרתי MCP. עמודת ה-URL מציגה את נקודת הקצה של שרת MCP שניתן לקרוא לה לצורך בדיקות או בתוך אפליקציית לקוח.

אופציונלי: קביעת מדיניות

ניהול API של Azure מתבסס על מושג המדיניות, שבו מגדירים חוקים שונים לנקודות הקצה שלכם כמו הגבלת קצב או מטמון סמנטי. מדיניות אלו מוגדרות בקוד XML.

כך ניתן להגדיר מדיניות להגבלת קצב בשרת MCP שלכם:

  1. בפורטל, תחת APIs, בחרו MCP Servers.

  2. בחרו את שרת MCP שיצרתם.

  3. בתפריט שמאל, תחת MCP, בחרו מדיניות.

  4. בעורך המדיניות, הוסיפו או ערכו את המדיניות שבה תרצו להשתמש בכלי השרת MCP. המדיניות מוגדרת בפורמט XML. לדוגמה, ניתן להוסיף מדיניות להגבלת קריאות לכלי שרת MCP (בדוגמה זו, 5 קריאות למספר 30 שניות לכל כתובת IP של לקוח). הנה קוד ב-XML שיגרום להגבלת קצב:

     <rate-limit-by-key calls="5" 
       renewal-period="30" 
       counter-key="@(context.Request.IpAddress)" 
       remaining-calls-variable-name="remainingCallsPerIP" 
    />

    להלן תמונה של עורך המדיניות:

    עורך מדיניות

נסו את זה

בואו נוודא ששרת MCP שלנו פועל כמצופה.

לצורך זאת נשתמש ב-Visual Studio Code ו-GitHub Copilot במצב סוכנות. נוסיף את שרת MCP ל-mcp.json וכך Visual Studio Code ישמש כלקוח עם יכולות סוכניות והמשתמשים הסופיים יוכלו להקליד פקודה ולקיים אינטראקציה עם השרת.

כך מוסיפים את שרת MCP ב-Visual Studio Code:

  1. השתמשו בפקודה MCP: הוסף שרת מתפריט הפקודות.

  2. כאשר תתבקשו, בחרו את סוג השרת: HTTP (HTTP או Server Sent Events).

  3. הזינו את כתובת ה-URL של שרת MCP בניהול API. לדוגמה: https://.azure-api.net/-mcp/sse (לנקודת קצה SSE) או https://.azure-api.net/-mcp/mcp (לנקודת קצה MCP), שימו לב להבדל בין האמצעי /sse או /mcp.

  4. הזינו מזהה שרת לבחירתכם. זוהי ערך לא קריטי אך יעזור לכם לזכור מהו מופע השרת הזה.

  5. בחרו אם לשמור את ההגדרות בהגדרות סביבת העבודה או בהגדרות המשתמש.

  • הגדרות סביבת עבודה - קונפיגורציית השרת נשמרת בקובץ .vscode/mcp.json הזמין רק בסביבת העבודה הנוכחית.

    mcp.json

    "servers": {
        "APIM petstore" : {
            "type": "sse",
            "url": "url-to-mcp-server/sse"
        }
    }

    או אם תבחרו בהזרמת HTTP כאמצעי, זה יהיה מעט שונה:

    "servers": {
        "APIM petstore" : {
            "type": "http",
            "url": "url-to-mcp-server/mcp"
        }
    }
  • הגדרות משתמש - קונפיגורציית השרת תתווסף לקובץ settings.json העולמי שלכם וזמין בכל סביבת עבודה. הקונפיגורציה נראית כך:

    הגדרת משתמש

  1. עליכם להוסיף גם קונפיגורציה, כותרת כדי לוודא שהתהליך מאומת כראוי מול ניהול API של Azure. הוא משתמש בכותרת בשם Ocp-Apim-Subscription-Key.

    • כך ניתן להוסיף אותה להגדרות:

    הוספת כותרת לאימות, זה יגרום להצגת הנחיה לבקשת מפתח API אותה תוכלו למצוא ב-Azure Portal עבור מופע ניהול API של Azure שלכם.

    • כדי להוסיף זאת ל-mcp.json במקום, תוכלו להוסיף כך:
    "inputs": [
      {
        "type": "promptString",
        "id": "apim_key",
        "description": "API Key for Azure API Management",
        "password": true
      }
    ]
    "servers": {
        "APIM petstore" : {
            "type": "http",
            "url": "url-to-mcp-server/mcp",
            "headers": {
                "Ocp-Apim-Subscription-Key": "Bearer ${input:apim_key}"
            }
        }
    }

שימוש במצב סוכנות

כעת הכול מוגדר, בין אם בהגדרות או בקובץ .vscode/mcp.json. בואו ננסה.

יופיע כפתור כלים כמו הבא, בו יוצגו הכלים החשופים מהשרת שלכם:

כלים מהשרת

  1. לחצו על אייקון הכלים ותראו רשימה של כלים כך:

    כלים

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

    get information from order 2
    

    כעת יוצג לכם אייקון כלים שיבקש מכם להמשיך ולהפעיל את הכלי. בחרו להמשיך להריץ את הכלי, כעת תראו פלט כך:

    תוצאה מהפקודה

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

מקורות

כך תוכלו ללמוד עוד:

מה הלאה


כתב ויתור: מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. אמנם אנו שואפים לדיוק, יש לקחת בחשבון כי תרגומים אוטומטיים עלולים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפת המקור שלו נחשב למקור הסמכותי. למידע קריטי מומלץ לבצע תרגום מקצועי על ידי אדם. אנו לא נושאים באחריות לכל אי הבנה או פרשנות שגויה הנובעות משימוש בתרגום זה.