1. ওভারভিউ
কোডল্যাবগুলির এই সিরিজ (স্ব-গতিসম্পন্ন, হাতে-কলমে টিউটোরিয়াল) ডেভেলপারদের তাদের অ্যাপ্লিকেশনগুলি স্থাপন করার সময় তাদের কাছে থাকা বিভিন্ন বিকল্পগুলি বুঝতে সাহায্য করা। এই কোডল্যাবে, আপনি শিখবেন কিভাবে পাইথনের সাথে Google ক্লাউড ট্রান্সলেশন API ব্যবহার করতে হয় এবং হয় স্থানীয়ভাবে চালাতে হয় বা ক্লাউড সার্ভারহীন কম্পিউট প্ল্যাটফর্মে (অ্যাপ ইঞ্জিন, ক্লাউড ফাংশন, বা ক্লাউড রান) স্থাপন করতে হয়। এই টিউটোরিয়ালের রেপোতে পাওয়া নমুনা অ্যাপটি শুধুমাত্র ছোট কনফিগারেশন পরিবর্তনের সাথে আটটি ভিন্ন উপায়ে স্থাপন করা যেতে পারে:
- স্থানীয় ফ্লাস্ক সার্ভার (পাইথন 2)
- স্থানীয় ফ্লাস্ক সার্ভার (পাইথন 3)
- অ্যাপ ইঞ্জিন (পাইথন 2)
- অ্যাপ ইঞ্জিন (পাইথন 3)
- ক্লাউড ফাংশন (পাইথন 3)
- ক্লাউড রান (ডকারের মাধ্যমে পাইথন 2)
- ক্লাউড রান (ডকারের মাধ্যমে পাইথন 3)
- ক্লাউড রান (ক্লাউড বিল্ডপ্যাকের মাধ্যমে পাইথন 3)
এই কোডল্যাবটি উপরের বোল্ড প্ল্যাটফর্মে এই অ্যাপটি স্থাপন করার উপর ফোকাস করে।
আপনি কিভাবে শিখবেন
- Google ক্লাউড API ব্যবহার করুন, বিশেষ করে ক্লাউড অনুবাদ API (উন্নত/v3)
- স্থানীয়ভাবে একটি মৌলিক ওয়েব অ্যাপ্লিকেশন চালান বা একটি ক্লাউড সেভারলেস কম্পিউট প্ল্যাটফর্মে স্থাপন করুন
আপনি কি প্রয়োজন হবে
- একটি সক্রিয় ক্লাউড বিলিং অ্যাকাউন্ট সহ একটি Google ক্লাউড প্রকল্প৷
- স্থানীয়ভাবে চালানোর জন্য ফ্লাস্ক ইনস্টল করা হয়েছে, অথবা ক্লাউড-ভিত্তিক স্থাপনার জন্য একটি ক্লাউড সেভারলেস কম্পিউট প্ল্যাটফর্ম সক্রিয় করা হয়েছে
- মৌলিক পাইথন দক্ষতা
- মৌলিক অপারেটিং সিস্টেম কমান্ডের কাজের জ্ঞান
সমীক্ষা
আপনি কিভাবে এই টিউটোরিয়াল ব্যবহার করবেন?
পাইথনের সাথে আপনার অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?
আপনি Google ক্লাউড পরিষেবাগুলি ব্যবহার করার সাথে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবেন?
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
- প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না এবং আপনি যে কোনো সময় এটি আপডেট করতে পারেন।
- সমস্ত Google ক্লাউড প্রজেক্ট জুড়ে প্রোজেক্ট আইডি অবশ্যই অনন্য হতে হবে এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে প্রজেক্ট আইডি উল্লেখ করতে হবে (এবং এটি সাধারণত
PROJECT_ID
হিসাবে চিহ্নিত করা হয়), তাই আপনি যদি এটি পছন্দ না করেন তবে অন্য একটি এলোমেলো তৈরি করুন, অথবা, আপনি নিজের চেষ্টা করে দেখতে পারেন এটি উপলব্ধ কিনা। তারপর প্রকল্প তৈরি হওয়ার পরে এটি "হিমায়িত" হয়। - একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। রিসোর্স বন্ধ করতে যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন, কোডল্যাবের শেষে পাওয়া যেকোনো "ক্লিন-আপ" নির্দেশাবলী অনুসরণ করুন। Google ক্লাউডের নতুন ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
3. অনুবাদ API সক্ষম করুন৷
ক্লাউড এপিআই সক্ষম করা হচ্ছে
এই বিভাগে, আপনি কীভাবে সাধারণভাবে Google API সক্রিয় করবেন তা শিখবেন। আমাদের নমুনা অ্যাপের জন্য, আপনি ক্লাউড ট্রান্সলেশন API , ক্লাউড রান এবং ক্লাউড আর্টিফ্যাক্ট রেজিস্ট্রি সক্ষম করবেন।
ভূমিকা
আপনি আপনার অ্যাপ্লিকেশনে যে Google API ব্যবহার করতে চান তা নির্বিশেষে, সেগুলি অবশ্যই সক্ষম হতে হবে। নিম্নলিখিত উদাহরণটি ক্লাউড ভিশন API সক্ষম করার দুটি উপায় দেখায়৷ আপনি কীভাবে একটি ক্লাউড এপিআই সক্ষম করবেন তা শেখার পরে, আপনি অন্যান্য APIগুলি সক্ষম করতে সক্ষম হবেন কারণ প্রক্রিয়াটি একই রকম।
বিকল্প 1: ক্লাউড শেল বা আপনার কমান্ড-লাইন ইন্টারফেস থেকে
ক্লাউড কনসোল থেকে এপিআই সক্ষম করা আরও সাধারণ, কিছু বিকাশকারী কমান্ড লাইন থেকে সবকিছু করতে পছন্দ করে। এটি করার জন্য, আপনাকে একটি API এর "পরিষেবার নাম" সন্ধান করতে হবে। এটি একটি URL এর মত দেখাচ্ছে: SERVICE_NAME
.googleapis.com
। আপনি এগুলিকে সমর্থিত পণ্যের চার্টে খুঁজে পেতে পারেন, অথবা আপনি Google Discovery API- এর মাধ্যমে প্রোগ্রাম্যাটিকভাবে তাদের জন্য অনুসন্ধান করতে পারেন৷
এই তথ্য দিয়ে সজ্জিত, ক্লাউড শেল ব্যবহার করে (অথবা gcloud
কমান্ড-লাইন টুল ইনস্টল সহ আপনার স্থানীয় উন্নয়ন পরিবেশ), আপনি একটি API সক্রিয় করতে পারেন, নিম্নরূপ:
gcloud services enable SERVICE_NAME.googleapis.com
উদাহরণস্বরূপ, এই কমান্ডটি ক্লাউড ভিশন API সক্ষম করে:
gcloud services enable vision.googleapis.com
এই কমান্ডটি অ্যাপ ইঞ্জিন সক্ষম করে:
gcloud services enable appengine.googleapis.com
আপনি একটি অনুরোধের সাথে একাধিক API সক্রিয় করতে পারেন। উদাহরণস্বরূপ, এই কমান্ড লাইনটি ক্লাউড রান, ক্লাউড আর্টিফ্যাক্ট রেজিস্ট্রি এবং ক্লাউড অনুবাদ API সক্ষম করে:
gcloud services enable artifactregistry.googleapis.com run.googleapis.com translate.googleapis.com
বিকল্প 2: ক্লাউড কনসোল থেকে
আপনি এপিআই ম্যানেজারে ভিশন API সক্ষম করতে পারেন। ক্লাউড কনসোল থেকে, API ম্যানেজারে যান এবং লাইব্রেরি নির্বাচন করুন।
আপনি যদি ক্লাউড ভিশন এপিআই সক্ষম করতে চান, অনুসন্ধান বারে "ভিশন" প্রবেশ করা শুরু করুন এবং আপনি যা প্রবেশ করেছেন তার সাথে মেলে এমন কিছু প্রদর্শিত হবে:
আপনি যে APIটি সক্ষম করতে চাইছেন সেটি নির্বাচন করুন এবং সক্ষম করুন ক্লিক করুন:
খরচ
যদিও অনেক Google API ফি ছাড়াই ব্যবহার করা যেতে পারে, Google ক্লাউড পণ্য এবং API-এর ব্যবহার বিনামূল্যে নয় । ক্লাউড API সক্রিয় করার সময়, আপনাকে একটি সক্রিয় বিলিং অ্যাকাউন্টের জন্য বলা হতে পারে৷ যাইহোক, এটি লক্ষ করা গুরুত্বপূর্ণ যে কিছু Google ক্লাউড পণ্যে একটি "সর্বদা বিনামূল্যে" স্তর (দৈনিক/মাসিক) বৈশিষ্ট্যযুক্ত, যা আপনাকে বিলিং চার্জ বহন করার জন্য অতিক্রম করতে হবে; অন্যথায়, আপনার ক্রেডিট কার্ড (বা নির্দিষ্ট বিলিং যন্ত্র) চার্জ করা হবে না।
ব্যবহারকারীদের যেকোন এপিআই সক্ষম করার আগে মূল্যের তথ্য উল্লেখ করা উচিত, বিশেষ করে এটির একটি বিনামূল্যের স্তর আছে কিনা এবং যদি তাই হয় তবে এটি কী। আপনি যদি ক্লাউড ভিশন API সক্ষম করে থাকেন তবে আপনি এর মূল্য তথ্য পৃষ্ঠাটি পরীক্ষা করবেন। ক্লাউড ভিশনের একটি বিনামূল্যের কোটা আছে, এবং যতক্ষণ পর্যন্ত আপনি সামগ্রিকভাবে (প্রতি মাসের মধ্যে) এর সীমার মধ্যে থাকবেন, ততক্ষণ আপনার কোনো চার্জ নেওয়া উচিত নয়।
Google API-এর মধ্যে মূল্য এবং বিনামূল্যের স্তর পরিবর্তিত হয়। উদাহরণ:
- গুগল ক্লাউড/জিসিপি — প্রতিটি পণ্যের বিল আলাদাভাবে করা হয় এবং সাধারণত প্রতি vCPU চক্র, স্টোরেজ গ্রাহক, মেমরি ব্যবহার বা প্রতি-ব্যবহারে অর্থ প্রদান করা হয়; উপরে বিনামূল্যে স্তর তথ্য দেখুন.
- Google মানচিত্র — এপিআইগুলির একটি স্যুট বৈশিষ্ট্যযুক্ত এবং ব্যবহারকারীদের সামগ্রিক $200USD বিনামূল্যের মাসিক ক্রেডিট অফার করে৷
- Google Workspace (পূর্বে G Suite) APIs — বিনামূল্যে ব্যবহার প্রদান করে (নির্দিষ্ট সীমা পর্যন্ত) একটি Workspace মাসিক সাবস্ক্রিপশন ফি দ্বারা আচ্ছাদিত, তাই Gmail, Google Drive, Calendar, Docs, Sheets এবং Slides API-এর ব্যবহারের জন্য কোনও সরাসরি বিলিং নেই।
বিভিন্ন Google পণ্য আলাদাভাবে বিল করা হয়, তাই সেই তথ্যের জন্য আপনার API এর ডকুমেন্টেশন উল্লেখ করতে ভুলবেন না।
সারাংশ
এখন যেহেতু আপনি সাধারণভাবে Google API গুলিকে কীভাবে সক্ষম করবেন তা জানেন, API ম্যানেজারে যান এবং ক্লাউড ট্রান্সলেশন API, ক্লাউড রান এবং ক্লাউড আর্টিফ্যাক্ট রেজিস্ট্রি সক্ষম করুন (যদি আপনি ইতিমধ্যে না থাকেন)৷ আপনি প্রাক্তনটি সক্ষম করুন কারণ আমাদের অ্যাপ্লিকেশন এটি ব্যবহার করে। আপনি পরবর্তীটি সক্ষম করেন কারণ আপনার ক্লাউড রান পরিষেবা শুরু করার জন্য স্থাপন করার আগে আমাদের কন্টেইনার চিত্রগুলি এখানে সংরক্ষণ করা হয়, এই কারণেই আপনাকে এটি সক্ষম করতে হবে৷ আপনি যদি এগুলিকে gcloud
টুল দিয়ে সক্ষম করতে চান তবে আপনার টার্মিনাল থেকে পরিবর্তে নিম্নলিখিত কমান্ডটি ইস্যু করুন:
gcloud services enable artifactregistry.googleapis.com run.googleapis.com translate.googleapis.com
যদিও এর মাসিক কোটা সামগ্রিক "সর্বদা বিনামূল্যে" স্তরের সারাংশ পৃষ্ঠায় তালিকাভুক্ত করা হয় না, অনুবাদ API-এর মূল্য পৃষ্ঠায় বলা হয়েছে যে সমস্ত ব্যবহারকারী প্রতি মাসে একটি নির্দিষ্ট পরিমাণ অনুবাদিত অক্ষর পান৷ আপনি যদি সেই থ্রেশহোল্ডের নিচে থাকেন তাহলে আপনাকে API থেকে কোনো চার্জ নেওয়া উচিত নয়। যদি অন্য কোন Google ক্লাউড সম্পর্কিত চার্জ থাকে, সেগুলি "ক্লিন আপ" বিভাগে শেষে আলোচনা করা হবে৷
4. নমুনা অ্যাপ কোড পান
রেপোতে স্থানীয়ভাবে বা ক্লাউড শেলে কোডটি ক্লোন করুন ( git clone
কমান্ড ব্যবহার করে), অথবা নীচের স্ক্রিনশটে দেখানো হিসাবে জিপ ফাইলটি এর সবুজ কোড বোতাম থেকে ডাউনলোড করুন:
এখন আপনার কাছে সবকিছু আছে, এই নির্দিষ্ট টিউটোরিয়ালটি করার জন্য ফোল্ডারটির একটি সম্পূর্ণ অনুলিপি তৈরি করুন, কারণ এতে সম্ভবত ফাইলগুলি মুছে ফেলা বা পরিবর্তন করা জড়িত। আপনি যদি একটি ভিন্ন স্থাপনা করতে চান, আপনি মূলটি অনুলিপি করে আবার শুরু করতে পারেন যাতে আপনাকে এটিকে আবার ক্লোন করতে বা ডাউনলোড করতে না হয়।
5. নমুনা অ্যাপের সফর
নমুনা অ্যাপটি হল একটি সাধারণ Google অনুবাদ ডেরিভেটিভ যা ব্যবহারকারীদের ইংরেজিতে পাঠ্য লিখতে এবং স্প্যানিশ ভাষায় সেই পাঠ্যের সমতুল্য অনুবাদ পেতে অনুরোধ করে। এখন main.py
ফাইলটি খুলুন যাতে আমরা দেখতে পারি এটি কীভাবে কাজ করে। লাইসেন্সিং সম্পর্কে মন্তব্য করা লাইনগুলি বাদ দিয়ে, এটি উপরের এবং নীচের মত দেখাচ্ছে:
from flask import Flask, render_template, request
import google.auth
from google.cloud import translate
app = Flask(__name__)
_, PROJECT_ID = google.auth.default()
TRANSLATE = translate.TranslationServiceClient()
PARENT = 'projects/{}'.format(PROJECT_ID)
SOURCE, TARGET = ('en', 'English'), ('es', 'Spanish')
# . . . [translate() function definition] . . .
if __name__ == '__main__':
import os
app.run(debug=True, threaded=True, host='0.0.0.0',
port=int(os.environ.get('PORT', 8080)))
- আমদানিগুলি ফ্লাস্ক কার্যকারিতা,
google.auth
মডিউল এবং ক্লাউড অনুবাদ API ক্লায়েন্ট লাইব্রেরি নিয়ে আসে। - গ্লোবাল ভেরিয়েবল ফ্লাস্ক অ্যাপ, ক্লাউড প্রোজেক্ট আইডি, ট্রান্সলেশন এপিআই ক্লায়েন্ট, ট্রান্সলেশন এপিআই কলের জন্য প্যারেন্ট "লোকেশন পাথ" এবং সোর্স এবং টার্গেট ল্যাঙ্গুয়েজ প্রতিনিধিত্ব করে। এই ক্ষেত্রে, এটি ইংরেজি (
en
) এবং স্প্যানিশ (es
), কিন্তু ক্লাউড অনুবাদ API দ্বারা সমর্থিত অন্যান্য ভাষার কোডগুলিতে এই মানগুলিকে নির্দ্বিধায় পরিবর্তন করুন৷ - এই অ্যাপটি স্থানীয়ভাবে চালানোর জন্য টিউটোরিয়ালে নীচের অংশে বড়
if
ব্লক ব্যবহার করা হয়েছে—এটি আমাদের অ্যাপ পরিবেশন করতে ফ্লাস্ক ডেভেলপমেন্ট সার্ভার ব্যবহার করে। এই বিভাগটি এখানে ক্লাউড রান ডিপ্লয়মেন্ট টিউটোরিয়ালের জন্যও রয়েছে যদি ওয়েব সার্ভারটি কন্টেইনারে বান্ডিল না থাকে। আপনাকে কনটেইনারে সার্ভারটি বান্ডলিং সক্ষম করতে বলা হয়েছে, কিন্তু আপনি যদি এটি উপেক্ষা করেন তবে অ্যাপ কোডটি ফ্লাস্ক ডেভেলপমেন্ট সার্ভার ব্যবহার করে ফিরে আসে। (এটি অ্যাপ ইঞ্জিন বা ক্লাউড ফাংশনগুলির সাথে কোনও সমস্যা নয় কারণ সেগুলি সোর্স-ভিত্তিক প্ল্যাটফর্ম, যার অর্থ Google ক্লাউড একটি ডিফল্ট ওয়েব সার্ভার সরবরাহ করে এবং চালায়৷)
অবশেষে, main.py
এর মাঝখানে হল অ্যাপ্লিকেশনটির হৃদয়, translate()
ফাংশন:
@app.route('/', methods=['GET', 'POST'])
def translate(gcf_request=None):
"""
main handler - show form and possibly previous translation
"""
# Flask Request object passed in for Cloud Functions
# (use gcf_request for GCF but flask.request otherwise)
local_request = gcf_request if gcf_request else request
# reset all variables (GET)
text = translated = None
# if there is data to process (POST)
if local_request.method == 'POST':
text = local_request.form['text']
data = {
'contents': [text],
'parent': PARENT,
'target_language_code': TARGET[0],
}
# handle older call for backwards-compatibility
try:
rsp = TRANSLATE.translate_text(request=data)
except TypeError:
rsp = TRANSLATE.translate_text(**data)
translated = rsp.translations[0].translated_text
# create context & render template
context = {
'orig': {'text': text, 'lc': SOURCE},
'trans': {'text': translated, 'lc': TARGET},
}
return render_template('index.html', **context)
প্রাথমিক ফাংশনটি ব্যবহারকারীর ইনপুট নেওয়ার কাজ করে এবং হেভি-লিফটিং করার জন্য অনুবাদ API-কে কল করে। আসুন এটি ভেঙে দেওয়া যাক:
-
local_request
ভেরিয়েবল ব্যবহার করে ক্লাউড ফাংশন থেকে অনুরোধ আসছে কিনা তা পরীক্ষা করে দেখুন। ক্লাউড ফাংশন তার নিজস্ব ফ্লাস্ক রিকোয়েস্ট অবজেক্ট পাঠায় যেখানে অন্য সব (স্থানীয়ভাবে চলছে বা অ্যাপ ইঞ্জিন বা ক্লাউড রানে স্থাপন করা) সরাসরি ফ্লাস্ক থেকে অনুরোধ অবজেক্ট পাবে। - ফর্মের জন্য মৌলিক ভেরিয়েবল রিসেট করুন। এটি প্রাথমিকভাবে GET অনুরোধের জন্য কারণ POST অনুরোধে এইগুলি প্রতিস্থাপনকারী ডেটা থাকবে৷
- যদি এটি একটি পোস্ট হয়, অনুবাদ করার জন্য পাঠ্যটি ধরুন এবং API মেটাডেটা প্রয়োজনীয়তা উপস্থাপন করে একটি JSON কাঠামো তৈরি করুন৷ তারপর API-কে কল করুন, যদি ব্যবহারকারী একটি পুরানো লাইব্রেরি নিযুক্ত করে থাকে তবে API-এর পূর্ববর্তী সংস্করণে ফিরে আসে।
- নির্বিশেষে, টেমপ্লেট প্রেক্ষাপটে প্রকৃত ফলাফল (POST) বা কোন ডেটা (GET) ফর্ম্যাট করুন এবং রেন্ডার করুন।
অ্যাপ্লিকেশনটির ভিজ্যুয়াল অংশটি টেমপ্লেট index.html
ফাইলে রয়েছে। এটি পূর্বে অনূদিত ফলাফল দেখায় (অন্যথায় ফাঁকা) তারপরে ফর্মটি অনুবাদ করার জন্য কিছু জিজ্ঞাসা করে:
<!doctype html>
<html><head><title>My Google Translate 1990s</title><body>
<h2>My Google Translate (1990s edition)</h2>
{% if trans['text'] %}
<h4>Previous translation</h4>
<li><b>Original</b>: {{ orig['text'] }} (<i>{{ orig['lc'][0] }}</i>)</li>
<li><b>Translated</b>: {{ trans['text'] }} (<i>{{ trans['lc'][0] }}</i>)</li>
{% endif %}
<h4>Enter <i>{{ orig['lc'][1] }}</i> text to translate to <i>{{ trans['lc'][1] }}</i>:</h4>
<form method="POST"><input name="text"><input type="submit"></form>
</body></html>
6. পাইথন 3 ইমেজ তৈরি করতে ডকার সেট করুন
এখন Dockerfile
ফাইলটি খুলুন, যা লাইসেন্সের তথ্য ছাড়াই এইরকম দেখায়:
#FROM python:3-slim
FROM python:2-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
ENTRYPOINT ["python", "main.py"]
যেমন আপনি বলতে পারেন, ডিফল্টভাবে, এটি পাইথন 2-এর জন্য সেটআপ করা FROM
, তাই আসুন এটিকে হয় python:2-slim
থেকে python:3-slim
এ সম্পাদনা করে বা উপরের লাইনটিকে আনকমেন্ট করে পুরানো FROM
লাইনটি মুছে ফেলি। আপনার কাজ শেষ হয়ে গেলে, Dockerfile
এইরকম হওয়া উচিত:
FROM python:3-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
ENTRYPOINT ["python", "main.py"]
7. পরিষেবাটি স্থাপন করুন
এখন আপনি এই কমান্ডটি চালিয়ে ক্লাউড রানে আপনার অনুবাদ পরিষেবা স্থাপন করতে প্রস্তুত:
gcloud run deploy translate --source . --allow-unauthenticated --platform managed
আউটপুট নিম্নলিখিত হিসাবে দেখা উচিত, এবং পরবর্তী পদক্ষেপের জন্য কিছু প্রম্পট প্রদান করুন:
$ gcloud run deploy translate --source . --allow-unauthenticated --platform managed Please specify a region: [1] asia-east1 [2] asia-east2 . . . (other regions) . . . [28] us-west4 [29] cancel Please enter your numeric choice: REGION_CHOICE To make this the default region, run `gcloud config set run/region REGION`. Deploying from source requires an Artifact Registry repository to store build artifacts. A repository named [cloud-run-source-deploy] in region [REGION] will be created. Do you want to continue (Y/n)? This command is equivalent to running "gcloud builds submit --pack image=[IMAGE] ." and "gcloud run deploy translate --image [IMAGE]" Building . . . and deploying container to Cloud Run service [translate] in project [PROJECT_ID] region [REGION] ✓ Building and deploying... Done. ✓ Creating Container Repository... ✓ Uploading sources... ✓ Building Container... Logs are available at [https://console.cloud.google.com/cloud-build/builds/60e1b 9bb-b991-4b4e-8d8a-HASH?project=PROJECT_NUMBER]. ✓ Creating Revision... ✓ Routing traffic... ✓ Setting IAM Policy... Done. Service [translate] revision [translate-00001-xyz] has been deployed and is serving 100 percent of traffic. Service URL: https://SVC_NAME-HASH-REG_ABBR.a.run.app
এখন যেহেতু আপনার অ্যাপটি বিশ্বব্যাপী বিশ্বব্যাপী উপলব্ধ, আপনি এটিকে আপনার প্রোজেক্ট আইডি সমন্বিত URL-এ পৌঁছাতে সক্ষম হবেন যেমনটি স্থাপনার আউটপুটে দেখানো হয়েছে:
এটা কাজ দেখতে কিছু অনুবাদ!
8. উপসংহার
অভিনন্দন! আপনি শিখেছেন কীভাবে ক্লাউড ট্রান্সলেশন এপিআই সক্ষম করতে হয়, প্রয়োজনীয় শংসাপত্রগুলি পান এবং পাইথন 3 ক্লাউড রানে একটি সাধারণ ওয়েব অ্যাপ স্থাপন করতে হয়!
পরিষ্কার করুন
ক্লাউড ট্রান্সলেশন API আপনাকে প্রতি মাসে একটি নির্দিষ্ট পরিমাণ অনুবাদিত অক্ষর বিনামূল্যে সম্পাদন করতে দেয়৷ অ্যাপ ইঞ্জিনেরও একটি বিনামূল্যের কোটা রয়েছে, এবং ক্লাউড ফাংশন এবং ক্লাউড রানের ক্ষেত্রেও এটি প্রযোজ্য। কোনটি অতিক্রম করলে আপনাকে চার্জ দিতে হবে। আপনি যদি পরবর্তী কোডল্যাবে চালিয়ে যাওয়ার পরিকল্পনা করেন তবে আপনাকে আপনার অ্যাপটি বন্ধ করতে হবে না।
যাইহোক, যদি আপনি এখনও পরবর্তী টিউটোরিয়ালে যেতে প্রস্তুত না হন বা উদ্বিগ্ন হন যে ইন্টারনেট আপনি এইমাত্র যে অ্যাপটি স্থাপন করেছেন সেটি আবিষ্কার করে, আপনার অ্যাপ ইঞ্জিন অ্যাপটি অক্ষম করুন , আপনার ক্লাউড ফাংশন মুছুন , বা এড়াতে আপনার ক্লাউড রান পরিষেবা অক্ষম করুন দায়বদ্ধ চার্জ। আপনি যখন পরবর্তী কোডল্যাবে যাওয়ার জন্য প্রস্তুত হন, আপনি এটি পুনরায় সক্ষম করতে পারেন৷ অন্যদিকে, আপনি যদি এই অ্যাপ্লিকেশন বা অন্যান্য কোডল্যাবগুলি চালিয়ে যেতে না চান এবং সবকিছু সম্পূর্ণরূপে মুছে ফেলতে চান তবে আপনি আপনার প্রকল্পটি বন্ধ করতে পারেন৷
এছাড়াও, একটি Google ক্লাউড সার্ভারহীন কম্পিউট প্ল্যাটফর্মে স্থাপন করার জন্য সামান্য বিল্ড এবং স্টোরেজ খরচ হয়। ক্লাউড স্টোরেজের মতো ক্লাউড বিল্ডের নিজস্ব ফ্রি কোটা রয়েছে। বৃহত্তর স্বচ্ছতার জন্য, ক্লাউড বিল্ড আপনার অ্যাপ্লিকেশান ইমেজ তৈরি করে, যা পরে ক্লাউড কন্টেইনার রেজিস্ট্রি বা আর্টিফ্যাক্ট রেজিস্ট্রিতে সংরক্ষিত হয়, এর উত্তরসূরি৷ সেই ছবির সঞ্চয়স্থান সেই কোটার কিছু অংশ ব্যবহার করে যেমনটি পরিষেবাতে সেই ছবিটি স্থানান্তর করার সময় নেটওয়ার্ক প্রস্থান করে। যাইহোক, আপনি এমন একটি অঞ্চলে বাস করতে পারেন যেখানে এই ধরনের বিনামূল্যের স্তর নেই, তাই সম্ভাব্য খরচ কমাতে আপনার স্টোরেজ ব্যবহার সম্পর্কে সচেতন থাকুন।
9. অতিরিক্ত সম্পদ
নিম্নলিখিত বিভাগগুলিতে, আপনি এই টিউটোরিয়ালটি সম্পূর্ণ করার মাধ্যমে আপনার অর্জিত জ্ঞানকে বাড়ানোর জন্য অতিরিক্ত পড়ার উপাদানের পাশাপাশি প্রস্তাবিত অনুশীলনগুলি খুঁজে পেতে পারেন।
অতিরিক্ত অধ্যয়ন
এখন আপনার বেল্টের নীচে অনুবাদ API-এর সাথে আপনার কিছু অভিজ্ঞতা আছে, আসুন আপনার দক্ষতা আরও বিকাশের জন্য কিছু অতিরিক্ত অনুশীলন করি। আপনার শেখার পথ চালিয়ে যেতে, নিম্নলিখিতগুলি করতে আমাদের নমুনা অ্যাপটি পরিবর্তন করুন:
- স্থানীয়ভাবে চালানোর জন্য বা Google ক্লাউড সার্ভারহীন কম্পিউট প্ল্যাটফর্মে স্থাপন করার জন্য এই কোডল্যাবের অন্যান্য সংস্করণগুলি সম্পূর্ণ করুন (দেখুন রেপো README )।
- অন্য একটি প্রোগ্রামিং ভাষা ব্যবহার করে এই টিউটোরিয়ালটি সম্পূর্ণ করুন।
- বিভিন্ন উৎস বা লক্ষ্য ভাষা সমর্থন করতে এই অ্যাপ্লিকেশন পরিবর্তন করুন.
- একাধিক ভাষায় পাঠ্য অনুবাদ করতে সক্ষম হতে এই অ্যাপ্লিকেশনটি আপগ্রেড করুন; সমর্থিত টার্গেট ভাষাগুলির একটি পুলডাউন পেতে টেমপ্লেট ফাইলটি পরিবর্তন করুন।
আরও জানুন
গুগল অ্যাপ ইঞ্জিন
- অ্যাপ ইঞ্জিন হোম পেজ
- অ্যাপ ইঞ্জিন ডকুমেন্টেশন
- Python 3 অ্যাপ ইঞ্জিন কুইকস্টার্ট
- অ্যাপ ইঞ্জিনের জন্য ডিফল্ট পরিষেবা অ্যাকাউন্ট
- পাইথন 2 অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড) রানটাইম
- পাইথন 3 অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড) রানটাইম
- পাইথন 2 এবং 3 অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড) রানটাইমের মধ্যে পার্থক্য
- পাইথন 2 থেকে 3 অ্যাপ ইঞ্জিন (স্ট্যান্ডার্ড) মাইগ্রেশন গাইড
গুগল ক্লাউড ফাংশন
- ক্লাউড ফাংশন হোম পেজ
- ক্লাউড ফাংশন ডকুমেন্টেশন
- পাইথন ক্লাউড ফাংশন কুইকস্টার্ট
- ক্লাউড ফাংশনগুলির জন্য ডিফল্ট পরিষেবা অ্যাকাউন্ট
গুগল ক্লাউড রান
- ক্লাউড রান হোম পেজ
- ক্লাউড রান ডকুমেন্টেশন
- পাইথন ক্লাউড রান কুইকস্টার্ট
- ক্লাউড রানের জন্য ডিফল্ট পরিষেবা অ্যাকাউন্ট
Google ক্লাউড বিল্ডপ্যাক, কন্টেইনার রেজিস্ট্রি, আর্টিফ্যাক্ট রেজিস্ট্রি
- ক্লাউড বিল্ডপ্যাক ঘোষণা
- ক্লাউড বিল্ডপ্যাক রেপো
- ক্লাউড আর্টিফ্যাক্ট রেজিস্ট্রি হোম পেজ
- ক্লাউড আর্টিফ্যাক্ট রেজিস্ট্রি ডকুমেন্টেশন
- ক্লাউড কন্টেইনার রেজিস্ট্রি হোম পেজ
- ক্লাউড কন্টেইনার রেজিস্ট্রি ডকুমেন্টেশন
গুগল ক্লাউড ট্রান্সলেশন এবং গুগল এমএল কিট
- ক্লাউড অনুবাদ হোম পেজ
- ক্লাউড অনুবাদ ডকুমেন্টেশন
- অনুবাদ API মূল্য পৃষ্ঠা
- সমস্ত ক্লাউড এআই/এমএল "বিল্ডিং ব্লক" এপিআই
- Google ML কিট (ক্লাউড AI/ML APIs মোবাইলের জন্য উপসেট)
- Google ML কিট অনুবাদ API
অন্যান্য Google ক্লাউড পণ্য/পৃষ্ঠা
- গুগল ক্লাউড পাইথন সমর্থন
- Google ক্লাউড ক্লায়েন্ট লাইব্রেরি
- Google ক্লাউড "সর্বদা বিনামূল্যে" স্তর
- সমস্ত Google ক্লাউড ডকুমেন্টেশন
পাইথন এবং ফ্লাস্ক
লাইসেন্স
এই টিউটোরিয়ালটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 2.0 জেনেরিক লাইসেন্সের অধীনে লাইসেন্সকৃত যখন রেপোতে সোর্স কোডটি অ্যাপাচি 2-এর অধীনে লাইসেন্সপ্রাপ্ত।