פריסה של תהליכים בכל פלטפורמה לאירוח אפליקציות

אפשר לפרוס תהליכים של Firebase Genkit כשירותי אינטרנט באמצעות כל שירות שיכול לארח קובץ בינארי של Go. לדוגמה, בדף הזה נסביר את התהליך הכללי לפריסה של תהליך לדוגמה שמוגדר כברירת מחדל, ונציין איפה צריך לבצע פעולות ספציפיות לספק.

  1. יוצרים ספרייה לפרויקט לדוגמה של Genkit:

    mkdir -p ~/tmp/genkit-cloud-project
    cd ~/tmp/genkit-cloud-project
    

    אם אתם מתכוונים להשתמש בסביבת פיתוח משולבת (IDE), פותחים אותה בספרייה הזו.

  2. מפעילים מודול Go בספריית הפרויקט:

    go mod init example/cloudrun
    
  3. מפעילים את Genkit בפרויקט:

    genkit init
    

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

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

  4. עורכים את הקובץ לדוגמה (main.go או genkit.go) כדי לציין במפורש את היציאה שבה שרת הזרימה צריך להאזין:

    if err := genkit.Init(ctx,
    	&genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
    	log.Fatal(err)
    }
    

    אם הספק דורש להאזין ביציאה ספציפית, חשוב להגדיר את Genkit בהתאם.

  5. כדאי להטמיע אימות והרשאה כדי לפקח על הגישה לתהליכים שאתם מתכננים לפרוס.

    מכיוון שרוב שירותי ה-AI הגנרטיבי מתבססים על חיוב לפי שימוש בנתונים, סביר להניח שלא תרצו לאפשר גישה פתוחה לנקודות הקצה (endpoints) שבהן מפעילים אותן. חלק משירותי האירוח מספקים שכבת אימות כחזית לאפליקציות שפרוסות בהם, ואפשר להשתמש בה למטרה הזו.

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

    Gemini (AI מבית Google)

    1. מוודאים ש-Google AI זמין באזור שלכם.

    2. יוצרים מפתח API ל-Gemini API באמצעות Google AI Studio.

    3. מאפשרים את הגישה למפתח ה-API בסביבה הפרוסה.

      רוב המארחים של האפליקציות מספקים מערכת כלשהי לטיפול מאובטח בסודות, כמו מפתחות API. לרוב, הסודות האלה זמינים לאפליקציה שלכם בצורת משתני סביבה. אם תוכלו להקצות את מפתח ה-API למשתנה GOOGLE_GENAI_API_KEY, Genkit ישתמש בו באופן אוטומטי. אחרת, צריך לשנות את הקריאה ל-googleai.Init() כדי להגדיר את המפתח באופן מפורש. (אבל אל תטמיעו את המפתח ישירות בקוד! משתמשים במתקני ניהול הסודות שספק האירוח מספק).

    Gemini‏ (Vertex AI)

    1. במסוף Cloud, מפעילים את Vertex AI API בפרויקט.

    2. בדף IAM, יוצרים חשבון שירות כדי לגשת ל-Vertex AI API, אם עדיין אין לכם חשבון כזה.

      מקצים לחשבון את התפקיד Vertex AI User.

    3. מגדירים את Application Default Credentials בסביבת האירוח.

    4. מגדירים את הפלאגין עם מזהה הפרויקט ב-Google Cloud והמיקום שבו רוצים להשתמש ב-Vertex AI API. אפשר לעשות זאת על ידי הגדרת משתני הסביבה GCLOUD_PROJECT ו-GCLOUD_LOCATION בסביבת האירוח, או בקריאה ל-vertexai.Init().

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

  7. אופציונלי: מנסים את התהליך בממשק המשתמש למפתחים:

    1. מגדירים את הסביבה המקומית לספק המודל שבחרתם:

      Gemini (AI מבית Google)

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      Gemini‏ (Vertex AI)

      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      gcloud auth application-default login
      
    2. מפעילים את ממשק המשתמש:

      genkit start
      
    3. בממשק המשתמש של המפתח (http://localhost:4000/), מריצים את התהליך:

      1. לוחצים על menuSuggestionFlow.

      2. בכרטיסייה Input JSON, נותנים נושא למודל:

        "banana"
        
      3. לוחצים על Run.

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