ক্লাউড রান ব্যবহার করে প্রবাহ স্থাপন করুন

আপনি ক্লাউড রান ব্যবহার করে এইচটিটিপিএস এন্ডপয়েন্ট হিসাবে জেনকিট প্রবাহ স্থাপন করতে পারেন। ক্লাউড রানে কন্টেইনার ভিত্তিক স্থাপনা সহ বিভিন্ন স্থাপনার বিকল্প রয়েছে; এই পৃষ্ঠাটি ব্যাখ্যা করবে কিভাবে সরাসরি কোড থেকে আপনার প্রবাহ স্থাপন করতে হয়।

আপনি শুরু করার আগে

  • Google Cloud CLI ইনস্টল করুন।
  • আপনার জেনকিটের প্রবাহের ধারণা এবং সেগুলি কীভাবে লিখতে হয় তার সাথে পরিচিত হওয়া উচিত। এই পৃষ্ঠাটি অনুমান করে যে আপনার ইতিমধ্যেই ফ্লো রয়েছে যা আপনি স্থাপন করতে চান।
  • এটি সহায়ক হবে, তবে প্রয়োজনীয় নয়, যদি আপনি ইতিমধ্যে Google ক্লাউড এবং ক্লাউড রান আগে ব্যবহার করে থাকেন।

1. একটি Google ক্লাউড প্রকল্প সেট আপ করুন৷

আপনার যদি ইতিমধ্যে একটি Google ক্লাউড প্রকল্প সেট আপ না থাকে তবে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. ক্লাউড কনসোল ব্যবহার করে একটি নতুন Google ক্লাউড প্রকল্প তৈরি করুন বা একটি বিদ্যমান একটি চয়ন করুন৷

  2. প্রকল্পটিকে একটি বিলিং অ্যাকাউন্টের সাথে লিঙ্ক করুন, যা ক্লাউড রানের জন্য প্রয়োজনীয়৷

  3. আপনার প্রকল্প ব্যবহার করতে Google ক্লাউড CLI কনফিগার করুন:

    gcloud init

2. স্থাপনার জন্য আপনার নোড প্রকল্প প্রস্তুত করুন

আপনার প্রবাহ স্থাপনযোগ্য হওয়ার জন্য, আপনাকে আপনার প্রকল্প কোডে কিছু ছোট পরিবর্তন করতে হবে:

package.json-এ স্টার্ট এবং বিল্ড স্ক্রিপ্ট যোগ করুন

ক্লাউড রানে একটি Node.js প্রকল্প স্থাপন করার সময়, স্থাপনার সরঞ্জামগুলি আপনার প্রকল্পের একটি start স্ক্রিপ্ট এবং ঐচ্ছিকভাবে, একটি build স্ক্রিপ্ট আশা করে। একটি সাধারণ টাইপস্ক্রিপ্ট প্রকল্পের জন্য, নিম্নলিখিত স্ক্রিপ্টগুলি সাধারণত পর্যাপ্ত হয়:

"scripts": {
  "start": "node lib/index.js",
  "build": "tsc"
},

কনফিগার করতে এবং ফ্লো সার্ভার শুরু করতে কোড যোগ করুন

আপনার start স্ক্রিপ্ট দ্বারা চালিত ফাইলটিতে, startFlowServer এ একটি কল যোগ করুন। এই পদ্ধতিটি ওয়েব এন্ডপয়েন্ট হিসাবে আপনার প্রবাহ পরিবেশন করার জন্য একটি এক্সপ্রেস সার্ভার সেট আপ করা শুরু করবে।

আপনি যখন কল করবেন, আপনি যে প্রবাহগুলি পরিবেশন করতে চান তা নির্দিষ্ট করুন:

ai.startFlowServer({
  flows: [menuSuggestionFlow],
});

এছাড়াও কিছু ঐচ্ছিক পরামিতি রয়েছে যা আপনি নির্দিষ্ট করতে পারেন:

  • port : শোনার জন্য নেটওয়ার্ক পোর্ট। অনির্দিষ্ট থাকলে, সার্ভারটি PORT এনভায়রনমেন্ট ভেরিয়েবলে সংজ্ঞায়িত পোর্টে শোনে, এবং যদি PORT সেট না থাকে, ডিফল্ট 3400 এ।
  • cors : ফ্লো সার্ভারের CORS নীতি । আপনি যদি একটি ওয়েব অ্যাপ্লিকেশন থেকে এই শেষ পয়েন্টগুলি অ্যাক্সেস করেন তবে আপনাকে সম্ভবত এটি নির্দিষ্ট করতে হবে।
  • pathPrefix : একটি ঐচ্ছিক পাথ উপসর্গ যা আপনার ফ্লো এন্ডপয়েন্টের আগে যোগ করতে হবে।
  • jsonParserOptions : এক্সপ্রেসের JSON বডি পার্সারে পাস করার বিকল্প

ঐচ্ছিক: একটি অনুমোদন নীতি সংজ্ঞায়িত করুন

সমস্ত স্থাপন করা প্রবাহের জন্য কিছু ধরণের অনুমোদনের প্রয়োজন হওয়া উচিত; অন্যথায়, আপনার সম্ভাব্য-ব্যয়বহুল জেনারেটিভ AI ফ্লো যে কারো দ্বারা অপ্রয়োজনীয় হবে।

আপনি যখন ক্লাউড রানের সাথে আপনার প্রবাহ স্থাপন করেন, তখন অনুমোদনের জন্য আপনার কাছে দুটি বিকল্প থাকে:

  • ক্লাউড আইএএম-ভিত্তিক অনুমোদন : আপনার শেষ পয়েন্টগুলিতে গেট অ্যাক্সেস করতে Google ক্লাউডের স্থানীয় অ্যাক্সেস ম্যানেজমেন্ট সুবিধাগুলি ব্যবহার করুন৷ এই শংসাপত্রগুলি প্রদানের তথ্যের জন্য ক্লাউড রান ডক্সে প্রমাণীকরণ দেখুন৷

  • অনুমোদন নীতি কোডে সংজ্ঞায়িত : কাস্টম কোড ব্যবহার করে অনুমোদনের তথ্য যাচাই করতে জেনকিট প্রবাহের অনুমোদন নীতি বৈশিষ্ট্য ব্যবহার করুন। এটি প্রায়শই, কিন্তু অগত্যা নয়, টোকেন-ভিত্তিক অনুমোদন।

আপনি যদি কোডে একটি অনুমোদন নীতি সংজ্ঞায়িত করতে চান, তাহলে প্রবাহ সংজ্ঞায় authPolicy প্যারামিটার ব্যবহার করুন:

const myFlow = ai.defineFlow(
  {
    name: "myFlow",
    authPolicy: (auth, input) => {
      if (!auth) {
        throw new Error("Authorization required.");
      }
      // Custom checks go here...
    },
  },
  async () => {
    // ...
  }
);

অনুমোদন নীতির auth প্যারামিটার অনুরোধ বস্তুর auth বৈশিষ্ট্য থেকে আসে। আপনি সাধারণত এক্সপ্রেস মিডলওয়্যার ব্যবহার করে এই সম্পত্তি সেট করেন। অনুমোদন এবং সততা দেখুন।

এপিআই শংসাপত্রগুলি স্থাপন করা প্রবাহের জন্য উপলব্ধ করুন৷

একবার মোতায়েন হয়ে গেলে, আপনার প্রবাহকে তারা নির্ভর করে এমন যেকোনো দূরবর্তী পরিষেবার সাথে প্রমাণীকরণের জন্য কিছু উপায় প্রয়োজন। বেশিরভাগ ফ্লোতে তারা যে মডেল API পরিষেবা ব্যবহার করে তা অ্যাক্সেস করার জন্য ন্যূনতম শংসাপত্রের প্রয়োজন হবে৷

এই উদাহরণের জন্য, আপনার বেছে নেওয়া মডেল প্রদানকারীর উপর নির্ভর করে নিম্নলিখিতগুলির মধ্যে একটি করুন:

মিথুন (Google AI)

  1. আপনার অঞ্চলে Google AI উপলব্ধ রয়েছে তা নিশ্চিত করুন৷

  2. Google AI স্টুডিও ব্যবহার করে Gemini API-এর জন্য একটি API কী তৈরি করুন

  3. ক্লাউড রান পরিবেশে API কী উপলব্ধ করুন:

    1. ক্লাউড কনসোলে, সিক্রেট ম্যানেজার এপিআই সক্ষম করুন।
    2. সিক্রেট ম্যানেজার পৃষ্ঠায়, আপনার API কী সহ একটি নতুন গোপনীয়তা তৈরি করুন।
    3. আপনি সিক্রেটটি তৈরি করার পরে, একই পৃষ্ঠায়, সিক্রেট ম্যানেজার সিক্রেট অ্যাকসেসরের ভূমিকা সহ আপনার ডিফল্ট কম্পিউট পরিষেবা অ্যাকাউন্টের গোপনীয়তায় অ্যাক্সেস দিন। (আপনি আইএএম পৃষ্ঠায় ডিফল্ট কম্পিউট পরিষেবা অ্যাকাউন্টের নাম দেখতে পারেন।)

    পরবর্তী ধাপে, আপনি যখন আপনার পরিষেবা স্থাপন করবেন, তখন আপনাকে এই গোপনীয়তার নাম উল্লেখ করতে হবে।

মিথুন (Vertex AI)

  1. ক্লাউড কনসোলে, আপনার প্রকল্পের জন্য Vertex AI API সক্ষম করুন

  2. IAM পৃষ্ঠায়, নিশ্চিত করুন যে ডিফল্ট কম্পিউট পরিষেবা অ্যাকাউন্টটিকে Vertex AI ব্যবহারকারীর ভূমিকা দেওয়া হয়েছে।

এই টিউটোরিয়ালের জন্য আপনাকে সেট আপ করার জন্য একমাত্র গোপনীয়তাটি হল মডেল প্রদানকারীর জন্য, তবে সাধারণভাবে, আপনার প্রবাহ ব্যবহার করা প্রতিটি পরিষেবার জন্য আপনাকে অবশ্যই একই রকম কিছু করতে হবে।

3. ক্লাউড রানে প্রবাহ স্থাপন করুন

আপনি স্থাপনার জন্য আপনার প্রকল্প প্রস্তুত করার পরে, আপনি gcloud টুল ব্যবহার করে এটি স্থাপন করতে পারেন।

মিথুন (Google AI)

gcloud run deploy --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest

মিথুন (Vertex AI)

gcloud run deploy

ডিপ্লয়মেন্ট টুল আপনাকে যেকোনো তথ্যের জন্য অনুরোধ করবে।

আপনি অননুমোদিত আহবানের অনুমতি দিতে চান কিনা জিজ্ঞাসা করা হলে:

  • আপনি যদি IAM ব্যবহার না করেন এবং পরিবর্তে কোডে একটি অনুমোদন নীতি সংজ্ঞায়িত করেন তবে Y উত্তর দিন৷
  • IAM শংসাপত্রের প্রয়োজনের জন্য আপনার পরিষেবা কনফিগার করতে N উত্তর দিন।

ঐচ্ছিক: স্থাপন করা প্রবাহ চেষ্টা করুন

স্থাপনা শেষ হওয়ার পরে, টুলটি পরিষেবা URL মুদ্রণ করবে। আপনি এটি curl দিয়ে পরীক্ষা করতে পারেন:

curl -X POST https://<service-url>/menuSuggestionFlow \
  -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
  -H "Content-Type: application/json" -d '{"data": "banana"}'