1. আপনি শুরু করার আগে
এই কোডল্যাবে, আপনি Gemini API- এর ফাংশন-কলিং এবং মাল্টি-মডালিটি বৈশিষ্ট্যগুলির সাহায্যে কীভাবে Google Workspace টাস্কগুলিকে স্বয়ংক্রিয় করতে হয় তা শিখবেন।
পূর্বশর্ত
- অ্যাপস স্ক্রিপ্ট, জাভাস্ক্রিপ্ট বা অনুরূপ প্রোগ্রামিং ভাষার সাথে প্রাথমিক পরিচিতি
আপনি কি শিখুন
- Gemini API-এর ফাংশন কলিং এবং মাল্টি-মডালিটি বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করা যায়।
- কিভাবে একাধিক জেমিনি API কল একসাথে চেইন করবেন।
- Gemini API-এর সাহায্যে কীভাবে Google Workspace-এর কাজগুলি অটোমেট করা যায়।
আপনার যা প্রয়োজন
- একটি ওয়েব ব্রাউজার।
- একটি জিমেইল অ্যাকাউন্ট। বিকল্পভাবে, একটি Google Workspace অ্যাকাউন্ট যা Gemini API-এর নির্দিষ্ট সেটআপ প্রয়োগ করেছে।
- Gemini API-এর জন্য একটি সমর্থিত অঞ্চল থেকে একটি সংযোগ।
- ঐচ্ছিক: সরাসরি API অনুরোধ পরীক্ষা করার জন্য
curl
প্রোগ্রামের সাথে একটি কমান্ড-লাইন ইন্টারফেস।
এই কোডল্যাবের সম্পূর্ণ কোড GitHub-এ Gemini API কুকবুকে পাওয়া যায়। আপনার সম্পূর্ণ কোডের প্রয়োজন হলে এটি পরীক্ষা করে দেখুন।
2. Gemini API সেট আপ করুন৷
মিথুন সম্পর্কে
জেমিনি মডেলগুলি হল Google-এর বৃহত্তম এবং সবচেয়ে সক্ষম AI মডেলের পরিবার৷ আপনার অ্যাপে এই মডেলগুলির সুবিধা নিতে, আপনি Gemini API ব্যবহার করতে পারেন। আপনি Google AI স্টুডিওতে Gemini API ব্যবহার করে দেখতে পারেন, API-এর জন্য একটি ওয়েব ইন্টারফেস যেখানে আপনি প্রম্পট চেষ্টা করতে পারেন, মডেল সেটিংস পরিবর্তন করতে পারেন এবং কোনো কোড না লিখে কাস্টম মডেলগুলি টিউন করতে পারেন৷
একটা চাবি নাও
- Gemini API ব্যবহার করতে, Google AI স্টুডিওতে একটি API কী তৈরি করুন ।
ঐচ্ছিক: আপনার কী পরীক্ষা করুন
আপনার যদি কার্ল সহ একটি কমান্ড-লাইনে অ্যাক্সেস থাকে, তাহলে নিম্নলিখিত ব্লকের প্রথম লাইনে আপনার কী যোগ করুন এবং তারপর API কী পরীক্ষা করতে আপনার টার্মিনালে এটি চালান।
export GOOGLE_API_KEY=Paste_your_API_key_here
curl "https://generativelanguage.googleapis.com/v1beta/models?key=${GOOGLE_API_KEY}"
আপনি JSON ফর্ম্যাটে মডেলের একটি তালিকা দেখতে পাবেন, যেমন মডেল/জেমিনি-1.0-প্রো। এর মানে এটা কাজ করেছে।
3. ঐচ্ছিক: Gemini API-এ একটি অনুরোধ করুন
এই ঐচ্ছিক ধাপে, আপনি একটি Apps স্ক্রিপ্ট অ্যাপে যোগ করার আগে বিষয়বস্তু তৈরি কিভাবে কাজ করে তা আরও ভালভাবে বোঝার জন্য Gemini API-এর কাছে একটি অনুরোধ করবেন।
মডেল সম্পর্কে
Gemini API অনেকগুলি মডেল সরবরাহ করে যেগুলির বিভিন্ন ক্ষমতা এবং সীমাবদ্ধতা রয়েছে৷ মিথুন মডেল পৃষ্ঠায় প্রতিটি মডেল তাদের ক্ষমতা সহ তালিকাভুক্ত করা হয়েছে।
আপনার প্রথম অনুরোধ করা
Gemini API একটি টেক্সট প্রম্পট সম্পূর্ণ করতে, আপনি একটি JSON অনুরোধ তৈরি করুন এবং এটি REST API এন্ডপয়েন্টে পাঠান।
এটি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- একটি নতুন ফাইলে, নিম্নলিখিত JSON অনুরোধটি লিখুন:
{
contents: [
{
parts: [
{ text: 'The most important aspects of a persuasive presentation are:' }
]
}
]
}
JSON অনুরোধে নিম্নলিখিত প্রম্পট অন্তর্ভুক্ত রয়েছে: The most important aspects of a persuasive presentation are:
. মডেলটি এই নির্দেশনাটি সম্পূর্ণ করবে এবং আপনাকে সরাসরি ফলাফল দেবে।
JSON অনুরোধে পপুলেট করার জন্য তিনটি শীর্ষ-স্তরের ক্ষেত্র রয়েছে: contents
, generationConfig
, এবং safetySettings
৷ শুধুমাত্র contents
প্রয়োজন. অন্যরা আউটপুট নিয়ন্ত্রণের জন্য প্রক্রিয়া প্রদান করে।
- এই JSONটিকে একটি
presentation.txt
ফাইলে সংরক্ষণ করুন এবং তারপরে আপনি এটিকে সরাসরিcurl
মতো পাস করুন:
curl -H 'Content-Type: application/json' -X POST -d @presentation.txt \
'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-latest:generateContent?key='${GOOGLE_API_KEY}
এই উদাহরণে আপনি URL-এ নিম্নলিখিত মানগুলি সেট করেছেন:
-
v1beta
API সংস্করণ নির্দিষ্ট করে। -
gemini-1.0-pro-latest
মডেল হিসাবে Gemini 1.0 Pro নির্দিষ্ট করে এবং সর্বশেষ স্ন্যাপশট ব্যবহার করে। -
generateContent
API পদ্ধতি নির্দিষ্ট করে যা আপনি কল করেন।
আপনি নিম্নলিখিত অনুরূপ ফলাফল দেখতে হবে:
{
"candidates": [
{
"content": {
"parts": [
{
"text": "* **Credibility:** The audience must trust that you are an expert on the subject matter and that you have their best interests at heart.\n* **Clearness:** Your message must be easy to understand and follow. Avoid using jargon or technical terms that your audience may not be familiar with.\n* **Concreteness:** Use specific examples and data to support your arguments. Avoid making vague or general claims.\n* **Emotional appeal:** In addition to appealing to the audience's logical side, you should also try to connect with them on an emotional level. Use storytelling, humor, and personal anecdotes to make your points more memorable and engaging.\n* **Strong closing:** End your presentation with a strong call to action. Tell the audience what you want them to do and why it is important for them to do it."
}
],
"role": "model"
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": [...]
}
],
"promptFeedback": {
"safetyRatings": [...]
}
}
পঠনযোগ্যতার জন্য, এখানে টার্মিনাল আউটপুট নিয়মিত ফর্ম্যাট করা হয়:
- বিশ্বাসযোগ্যতা: শ্রোতাদের অবশ্যই বিশ্বাস করতে হবে যে আপনি বিষয়ের উপর একজন বিশেষজ্ঞ এবং আপনার হৃদয়ে তাদের সর্বোত্তম স্বার্থ রয়েছে।
- স্পষ্টতা: আপনার বার্তা বুঝতে এবং অনুসরণ করা সহজ হতে হবে। আপনার শ্রোতাদের সাথে পরিচিত নাও হতে পারে এমন জার্গন বা প্রযুক্তিগত শব্দ ব্যবহার করা এড়িয়ে চলুন।
- দৃঢ়তা: আপনার যুক্তি সমর্থন করার জন্য নির্দিষ্ট উদাহরণ এবং ডেটা ব্যবহার করুন। অস্পষ্ট বা সাধারণ দাবি করা এড়িয়ে চলুন.
- মানসিক আবেদন: শ্রোতাদের যৌক্তিক দিকে আবেদন করার পাশাপাশি, আপনার তাদের সাথে আবেগগত স্তরে সংযোগ করার চেষ্টা করা উচিত। আপনার পয়েন্টগুলিকে আরও স্মরণীয় এবং আকর্ষক করতে গল্প বলার, হাস্যরস এবং ব্যক্তিগত উপাখ্যান ব্যবহার করুন।
- শক্তিশালী ক্লোজিং: একটি শক্তিশালী কল টু অ্যাকশন দিয়ে আপনার উপস্থাপনা শেষ করুন। শ্রোতাদের বলুন আপনি তাদের কি করতে চান এবং কেন এটি করা তাদের জন্য গুরুত্বপূর্ণ।
generationConfig
এবং safetySettings
সহ অন্যান্য সেটিংস সম্পর্কে আরও জানতে, প্রম্পট এবং নিরাপত্তা নির্দেশিকা দেখুন।
4. Apps স্ক্রিপ্ট থেকে Gemini API কল করুন
- script.new- এ যান এবং একটি
code.gs
Apps স্ক্রিপ্ট ফাইল আপনার জন্য স্বয়ংক্রিয়ভাবে তৈরি হয়। -
code.gs
ফাইলের উপর আপনার কার্সারটি ধরে রাখুন এবং তারপরে ক্লিক করুন > নাম পরিবর্তন করুন । - ফাইলের নাম পরিবর্তন করে
utils.gs
করুন। - ফাইলটিতে,
myFunction
ফাংশনটি সরান যাতে ফাইলটি খালি থাকে।
প্রকল্পে আপনার API কী যোগ করুন
- নেভিগেশন মেনুতে, প্রকল্প সেটিংস নির্বাচন করুন।
- স্ক্রিপ্ট বৈশিষ্ট্যের অধীনে, স্ক্রিপ্ট বৈশিষ্ট্য যোগ করুন ক্লিক করুন।
- সম্পত্তির অধীনে,
GOOGLE_API_KEY
লিখুন। - মান এর অধীনে, Google AI স্টুডিও থেকে আপনার API কী লিখুন।
- স্ক্রিপ্ট বৈশিষ্ট্য সংরক্ষণ করুন ক্লিক করুন.
- সম্পাদকে ফিরে যান।
Gemini API কোড যোগ করুন
utils.gs
ফাইলে, এই পদক্ষেপগুলি অনুসরণ করুন:
API কী এবং শেষ পয়েন্ট সেট আপ করুন:
const properties = PropertiesService.getScriptProperties().getProperties();
const geminiApiKey = properties['GOOGLE_API_KEY'];
const geminiEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-latest:generateContent?key=${geminiApiKey}`;
- নিম্নলিখিত ফাংশন যোগ করুন যা একটি নির্দিষ্ট প্রম্পটের সাথে Gemini API কল করে:
function callGemini(prompt, temperature=0) {
const payload = {
"contents": [
{
"parts": [
{
"text": prompt
},
]
}
],
"generationConfig": {
"temperature": temperature,
},
};
const options = {
'method' : 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
const response = UrlFetchApp.fetch(geminiEndpoint, options);
const data = JSON.parse(response);
const content = data["candidates"][0]["content"]["parts"][0]["text"];
return content;
}
- নিম্নলিখিত ফাংশন যোগ করুন যা প্রম্পট সেট করে:
function testGemini() {
const prompt = "The best thing since sliced bread is";
const output = callGemini(prompt);
console.log(prompt, output);
}
এটি পরীক্ষা করুন
- ক্লিক করুন সংরক্ষণ করুন।
- ফাংশন ড্রপডাউন তালিকা থেকে
testGemini
বেছে নিন এবং ক্লিক করুন . - প্রয়োজনীয় অনুমতি গ্রহণ করুন। আপনার কোড চালানো উচিত এবং আপনি এক্সিকিউশন লগের ফলাফলের সাথে কিছু কনসোল আউটপুট দেখতে পাবেন।
এটা কাজ!
5. ছবি সহ Gemini API কল করুন
মডেলের মিথুন পরিবারের সবচেয়ে শক্তিশালী বৈশিষ্ট্যগুলির মধ্যে একটি হল মাল্টি-মডেল ইনপুটের জন্য সমর্থন, যার মানে আপনি কেবল পাঠ্যের চেয়েও বেশি কিছু সরবরাহ করতে পারেন! এই বিভাগে, আপনি একটি ফাংশন যোগ করুন যা একটি চিত্র সহ Gemini API কল করে।
- বিদ্যমান
const geminiEndpoint
ঘোষণার পরেutils.gs
ফাইলের শীর্ষে, নিম্নলিখিত লাইনটি যোগ করুন:
const geminiProVisionEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-vision-latest:generateContent?key=${geminiApiKey}`;
মিথুন ভিশন কোড যোগ করুন
- এই নতুন যোগ করা এন্ডপয়েন্টটিকে কল করতে
utils.gs
ফাইলে একটি ফাংশন যোগ করুন:
function callGeminiProVision(prompt, image, temperature=0) {
const imageData = Utilities.base64Encode(image.getAs('image/png').getBytes());
const payload = {
"contents": [
{
"parts": [
{
"text": prompt
},
{
"inlineData": {
"mimeType": "image/png",
"data": imageData
}
}
]
}
],
"generationConfig": {
"temperature": temperature,
},
};
const options = {
'method' : 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
const response = UrlFetchApp.fetch(geminiProVisionEndpoint, options);
const data = JSON.parse(response);
const content = data["candidates"][0]["content"]["parts"][0]["text"];
return content;
}
- নিম্নলিখিত পরীক্ষা ফাংশন যোগ করুন:
function testGeminiVision() {
const prompt = "Provide a fun fact about this object.";
const image = UrlFetchApp.fetch('https://storage.googleapis.com/generativeai-downloads/images/instrument.jpg').getBlob();
const output = callGeminiProVision(prompt, image);
console.log(prompt, output);
}
এই ফাংশনটি ইন্টারনেট থেকে একটি পরীক্ষামূলক চিত্র লোড করে এবং আপনার সংজ্ঞায়িত ফাংশনে এটি পাস করে। পরে, আপনি এটি একটি স্প্রেডশীট থেকে একটি চার্ট ব্যবহার করার জন্য তারের, তাই এটি শুধুমাত্র একটি পরীক্ষা.
এটি পরীক্ষা করুন
- সংরক্ষণ করুন এবং
testGeminiVision
ফাংশন চালান, এবং তারপর আউটপুট পরিদর্শন করুন।
6. টুল সহ Gemini API কল করুন
টেক্সট এবং ইমেজ ছাড়াও, আপনি আপনার প্রম্পটে টুলগুলিতে অ্যাক্সেস প্রদান করতে পারেন।
টুল-হ্যান্ডলিং কোড যোগ করুন
-
utils.gs
ফাইলে একটি ফাংশন যোগ করুন যা একটি টুল স্পেসিফিকেশন গ্রহণ করে:
function callGeminiWithTools(prompt, tools, temperature=0) {
const payload = {
"contents": [
{
"parts": [
{
"text": prompt
},
]
}
],
"tools" : tools,
"generationConfig": {
"temperature": temperature,
},
};
const options = {
'method' : 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
const response = UrlFetchApp.fetch(geminiEndpoint, options);
const data = JSON.parse(response);
const content = data["candidates"][0]["content"]["parts"][0]["functionCall"];
return content;
}
এই স্কিমা এবং উপলব্ধ ক্ষেত্র সম্পর্কে আরও তথ্যের জন্য, FunctionDeclaration
API রেফারেন্স দেখুন।
এটি পরীক্ষা করুন
- একটি টুল সংজ্ঞায়িত করুন যা মডেল বর্তমান তারিখ এবং সময় খুঁজে পেতে ব্যবহার করতে পারে:
function testGeminiTools() {
const prompt = "Tell me how many days there are left in this month.";
const tools = {
"function_declarations": [
{
"name": "datetime",
"description": "Returns the current date and time as a formatted string.",
"parameters": {
"type": "string"
}
}
]
};
const output = callGeminiWithTools(prompt, tools);
console.log(prompt, output);
}
এখানে ব্যবহৃত ফরম্যাট হল FunctionDeclaration
স্কিমা। আপনি আসলে তারিখ-সময় ফাংশন কল না. আপনি শুধুমাত্র একটি ইঙ্গিত পাবেন যে মডেলটি একটি ফাংশন কলের অনুরোধ করেছে৷ আপনি পরবর্তী ধাপে ফাংশন কল পরিচালনা করেন।
- আউটপুট দেখতে
testGeminiTools
ফাংশন সংরক্ষণ করুন এবং চালান।
7. Google Workspace-এর সাথে ডেমো ইন্টিগ্রেশনের ওভারভিউ
এখন যেহেতু আপনি বুঝতে পেরেছেন যে কীভাবে ফাংশন কলিং কাজ করে, আপনি সহজেই মিথুন মডেলের ক্ষমতাগুলিকে অন্যান্য পরিষেবাগুলিতে প্রসারিত করতে পারেন৷ পরবর্তী কয়েকটি বিভাগে, আপনি Google ড্রাইভ, Google স্লাইড এবং Google শীটের মতো Google Workspace প্রোডাক্টের সাথে একীভূতকরণ তৈরি করবেন। এখানে একটি সরলীকৃত চিত্র:
উচ্চ স্তরে, যখন কোনও ব্যবহারকারীর প্রশ্ন আসে, আপনি কোন টুল ব্যবহার করবেন তা নির্ধারণ করতে Gemini API-এর ফাংশন কলিং ব্যবহার করেন। আপনি তিনটি সরঞ্জাম তৈরি করেন যা নিম্নলিখিতগুলি করতে পারে:
- একটি মিটিং সেট আপ করুন . ডায়াগ্রামে
setupMeeting()
ফাংশনটি জেমিনি 1.0 প্রো এপিআইকে Google ড্রাইভে একটি ব্লগের সারসংক্ষেপ করতে এবং Google ক্যালেন্ডারে একটি নতুন-সৃষ্ট মিটিংয়ে সারসংক্ষেপ যোগ করার জন্য আহ্বান করে৷ - একটি চার্ট থেকে অন্তর্দৃষ্টির উপর ভিত্তি করে একটি ইমেল খসড়া করুন ৷ চিত্রের
draftEmail()
ফাংশনটি জেমিনি 1.0 প্রো ভিশনকে Google শীটে একটি চার্ট বিশ্লেষণ করতে এবং বিশ্লেষণের ভিত্তিতে Gmail-এ একটি ইমেল রচনা করতে আহ্বান করে। - একটি কঙ্কাল ডেক তৈরি করুন । ডায়াগ্রামে
createDeck()
ফাংশনটি গুগল স্লাইডের একটি ডেকের জন্য বুলেট পয়েন্ট ব্রেনস্টর্ম করতে Gemini 1.0 Pro-কে আহ্বান করে।
প্রতিটি টুলের জন্য, আপনাকে নিম্নলিখিত তিনটি জিনিস করতে হবে:
- Gemini API-এর ফাংশন কলিং রেসপন্স একটি
if...else
ব্লকে সেই নির্দিষ্ট টুলটি চালু করতে বলে কিনা তা নির্ধারণ করুন। - টুল কার্যকারিতা বাস্তবায়নের জন্য প্রকৃত ফাংশন যোগ করুন।
- Gemini API সহ টুলটি ঘোষণা করুন যাতে Gemini মডেল টুলটির অস্তিত্ব সম্পর্কে জানে এবং সঠিক ফাংশন কলিং প্রতিক্রিয়া প্রদান করতে পারে।
8. অ্যাপস স্ক্রিপ্টের সাথে একটি মিটিং সেট আপ করুন৷
প্রথমে, আপনি Google ক্যালেন্ডারে একটি মিটিংয়ের সেটআপ স্বয়ংক্রিয়ভাবে করেন, তবে আপনি একটি বিবরণও যোগ করেন, যা Google ড্রাইভে একটি ফাইলের সারাংশ।
এটি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- এই টেক্সট ফাইলটি ডাউনলোড করুন, যা Gemini 1.5 Pro লঞ্চ ব্লগের টেক্সট কপি।
- গুগল ড্রাইভে আপনার রুট ফোল্ডারে ফাইলটি আপলোড করুন।
- সম্পাদকে, একটি
main.gs
ফাইল তৈরি করুন এবং তারপরে নিম্নলিখিত কোড যোগ করুন:
function main() {
const userQuery = "Set up a meeting at 10AM tomorrow with Helen to discuss the news in the Gemini-blog.txt file.";
var tool_use = callGeminiWithTools(userQuery, WORKSPACE_TOOLS);
Logger.log(tool_use);
if(tool_use['name'] == "setupMeeting") {
setupMeeting(tool_use['args']['time'], tool_use['args']['recipient'], tool_use['args']['filename']);
Logger.log("Your meeting has been set up.");
}
else
Logger.log("no proper tool found");
}
এখানে, আপনি জেমিনি API-এর ফাংশন কলিং ক্ষমতা চালু করেন। এর পরে, আপনাকে টুল ফাংশনটি সংজ্ঞায়িত করতে হবে।
- সম্পাদকের বাম দিকে, পরিষেবাগুলির পাশে, + একটি পরিষেবা যোগ করুন > Google ক্যালেন্ডার API > যোগ করুন ক্লিক করুন। এটি উন্নত Google ক্যালেন্ডার পরিষেবা সক্ষম করে, যা আপনাকে পরে কিছু উন্নত API-এর জন্য ব্যবহার করতে হবে৷
-
utils.gs
ফাইলে, নিম্নলিখিত কোড যোগ করুন:
function attachFileToMeeting(event, file, fileName) {
// Get the iCal ID for the event.
const iCalEventId = event.getId();
// Log the ID and title for debugging.
console.log(`iCal event ID: ${iCalEventId}`);
console.log(`event Title: ${event.getTitle()}`);
// Set up the options for listing the event with the advanced Google Calendar service.
const options = {
iCalUID: iCalEventId,
};
// Use the primary calendar as the calendar ID to list events.
const calendarId = 'primary';
// Use the advanced Google Calendar service to list the event.
const calEvents = Calendar.Events.list(calendarId, options);
// Get the Calendar ID used by the advanced Google Calendar service.
const eventId = calEvents.items[0].id;
// Get the file URL for the attachment.
const fileUrl = file.getUrl();
// Set up the patch options to add the file.
var patch = {
attachments: [{
'fileUrl': fileUrl,
'title': fileName
}]
};
// Patch the event to add the file as an attachment.
Calendar.Events.patch(patch, 'primary', eventId, {"supportsAttachments": true});
}
function setupMeeting(time, recipient, filename) {
const files = DriveApp.getFilesByName(filename);
const file = files.next();
const blogContent = file.getAs("text/*").getDataAsString();
var geminiOutput = callGemini("Give me a really short title of this blog and a summary with less than three sentences. Please return the result as a JSON with two fields: title and summary. \n" + blogContent);
// The Gemini model likes to enclose the JSON with ```json and ```
geminiOutput = JSON.parse(geminiOutput.replace(/```(?:json|)/g, ""));
const title = geminiOutput['title'];
const fileSummary = geminiOutput['summary'];
const event = CalendarApp.getDefaultCalendar().createEventFromDescription(`meet ${recipient} at ${time} to discuss "${title}"`);
event.setDescription(fileSummary);
attachFileToMeeting(event, file, filename);
}
এই কোড নিম্নলিখিত কাজ করে:
-
setupMeeting()
ফাংশনটি আপনার Google ড্রাইভের মধ্য দিয়ে যায় এবংGemini-blog.txt
ফাইলটি খুঁজে পায়। এই ফাইলের নামটি স্বয়ংক্রিয়ভাবে জেমিনি API-এর ফাংশন #3 ধাপে কলিং দ্বারা ফিরে আসে। -
setupMeeting()
ফাংশন ফাইলের বিষয়বস্তু সংক্ষিপ্ত করার জন্য Gemini API-কে কল করে, ফ্রি-ফর্ম বিবরণ ব্যবহার করে ক্যালেন্ডারঅ্যাপের সাথে একটি মিটিং সেট আপ করে এবং মিটিংয়ে সারাংশ যোগ করে। -
setupMeeting()
ফাংশনattachFileToMeeting()
ফাংশনকে কল করে মিটিংয়ে ব্লগ ফাইল সংযুক্ত করতে উন্নত Google ক্যালেন্ডার পরিষেবা ব্যবহার করতে৷
-
utils.gs
ফাইলের শীর্ষে, নিম্নলিখিত কোড যোগ করুন:
const WORKSPACE_TOOLS = {
"function_declarations": [
{
"name": "setupMeeting",
"description": "Sets up a meeting in Google Calendar.",
"parameters": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the meeting."
},
"recipient": {
"type": "string",
"description": "The name of the recipient."
},
"filename": {
"type": "string",
"description": "The name of the file."
},
},
"required": [
"time",
"recipient",
"filename"
]
}
},
// You add tools here.
]
};
- এডিটরে,
main.gs
ফাইলে ফিরে যান এবং ক্লিক করুন . - যদি Google Workspace আপনাকে স্ক্রিপ্ট চালানোর অনুমতি চায়, তাহলে ওকে ক্লিক করুন।
কয়েক সেকেন্ডের মধ্যে, এক্সিকিউশন লগ একটি বার্তা প্রদর্শন করে যা আপনাকে জানাতে দেয় যে আপনার মিটিং সেট আপ করা হয়েছে।
- Google ক্যালেন্ডারে, সারাংশ এবং সংযুক্তি সহ মিটিংটি সন্ধান করুন৷
9. অ্যাপস স্ক্রিপ্ট সহ একটি ইমেল খসড়া করুন
এরপর, আপনি Gmail-এ একটি ইমেলের খসড়া স্বয়ংক্রিয়ভাবে তৈরি করেন। এই হল দৃশ্য: ধরুন আপনি Google Sheets-এ ডেটা বিশ্লেষণ করেন। আপনি সমস্ত সংখ্যা জায়গায় রাখুন এবং একটি চার্ট তৈরি করুন। চার্টের উপর ভিত্তি করে একটি ইমেল খসড়া করতে আপনি Gemini Pro Vision API ব্যবহার করতে চান।
এটি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- এই শীটটি খুলুন এবং ফাইল -> একটি অনুলিপি তৈরি করুন ক্লিক করুন।
- নথিটি অনুলিপি করুন ডায়ালগের নাম টেক্সট বক্সে, ডিফল্ট নাম
Copy of CollegeExpenses
এর সাথেCollegeExpenses
প্রতিস্থাপন করুন। -
main.gs
ফাইলে, আগের ব্যবহারকারীর ক্যোয়ারীটিকে একটি নতুন দিয়ে প্রতিস্থাপন করুন এবং তারপরif...else
স্টেটমেন্টে নিম্নলিখিত কোডটি যোগ করুন:
function main() {
// const userQuery = "Set up a meeting at 5PM with Helen to discuss the news in the Gemini-1.5-blog.txt file.";
const userQuery = "Draft an email for Mary with insights from the chart in the CollegeExpenses sheet.";
if(...) {...}
// Add this code
else if(tool_use['name'] == "draftEmail") {
draftEmail(tool_use['args']['sheet_name'], tool_use['args']['recipient']);
Logger.log("Check your Gmail to review the draft");
}
else {...}
}
-
utils.gs
ফাইলে, নিম্নলিখিত কোড যোগ করুন:
function draftEmail(sheet_name, recipient) {
const prompt = `Compose the email body for ${recipient} with your insights for this chart. Use information in this chart only and do not do historical comparisons. Be concise.`;
var files = DriveApp.getFilesByName(sheet_name);
var sheet = SpreadsheetApp.openById(files.next().getId()).getSheetByName("Sheet1");
var expenseChart = sheet.getCharts()[0];
var chartFile = DriveApp.createFile(expenseChart.getBlob().setName("ExpenseChart.png"));
var emailBody = callGeminiProVision(prompt, expenseChart);
GmailApp.createDraft(recipient+"@demo-email-provider.com", "College expenses", emailBody, {
attachments: [chartFile.getAs(MimeType.PNG)],
name: 'myname'
});
}
এই ফাংশনটি শীট থেকে কলেজ-ব্যয়ের চার্ট পুনরুদ্ধার করে এবং ইমেলটি খসড়া করার জন্য জেমিনি প্রো ভিশনে পাঠায়। Gemini Pro Vision চার্ট থেকে তথ্য বের করে এবং আপনার পক্ষে ইমেলের বডি খসড়া করে।
-
utils.gs
ফাইলে,You add tools here
মন্তব্যের পরেWORKSPACE_TOOLS
অবজেক্টে নিম্নলিখিত কোড যোগ করুন:
WORKSPACE_TOOLS = {
"function_declarations": [
// You add tools here.
{
"name": "draftEmail",
"description": "Write an email by analyzing data or charts in a Google Sheets file.",
"parameters": {
"type": "object",
"properties": {
"sheet_name": {
"type": "string",
"description": "The name of the sheet to analyze."
},
"recipient": {
"type": "string",
"description": "The name of the recipient."
},
},
"required": [
"sheet_name",
"recipient"
]
}
},
]
};
- সম্পাদকে,
main.gs
ফাইলে ফিরে যান এবং তারপরে ক্লিক করুন . - 10-থেকে-20 সেকেন্ড পরে, আপনার Gmail খুলুন। আপনি এই মত একটি ইমেল খসড়া দেখতে হবে:
আপনি এটি পাঠানোর আগে ইমেল খসড়া সংশোধন করতে পারেন। আপনি এটিকে একটি সংক্ষিপ্ত প্রম্পট এবং চার্ট দেওয়ার পরে ইমেলটি সম্পূর্ণরূপে জেমিনি প্রো ভিশন দ্বারা লেখা।
10. Apps স্ক্রিপ্ট দিয়ে একটি কঙ্কাল ডেক তৈরি করুন৷
এরপরে, আপনি Apps স্ক্রিপ্ট সহ Google স্লাইডে একটি কঙ্কাল ডেক তৈরি করা স্বয়ংক্রিয়ভাবে করুন৷
এটি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
-
main.gs
ফাইলে, আগের ব্যবহারকারীর প্রশ্নটিকে একটি নতুন দিয়ে প্রতিস্থাপন করুন এবংif...else
বিবৃতিতে নিম্নলিখিত কোডটি যোগ করুন:
function main() {
// const userQuery = "Draft an email for Mary with insights from the chart in the CollegeExpenses sheet.";
const userQuery = "Help me put together a deck about water conservation.";
if(...) {...}
// Add this code
else if(tool_use['name'] == 'createDeck') {
deckURL = createDeck(tool_use['args']['topic']);
Logger.log("Deck URL: " + deckURL);
}
else {...}
}
-
utils.gs
ফাইলে, নিম্নলিখিত কোড যোগ করুন:
function createDeck(topic) {
const prompt = `I'm preparing a ${NUM_SLIDES}-slide deck to discuss ${topic}. Please help me brainstorm and generate main bullet points for each slide. Keep the title of each slide short. Please produce the result as a valid JSON so that I can pass it to other APIs.`;
var geminiOutput = callGemini(prompt, 0.4);
// The Gemini model likes to enclose the JSON with ```json and ```
geminiOutput = geminiOutput.replace(/```(?:json|)/g, "");
const bulletPoints = JSON.parse(geminiOutput);
// Create a Google Slides presentation.
const presentation = SlidesApp.create("My New Presentation");
// Set up the opening slide.
var slide = presentation.getSlides()[0];
var shapes = slide.getShapes();
shapes[0].getText().setText(topic);
var body;
for (var i = 0; i < NUM_SLIDES; i++) {
slide = presentation.appendSlide(SlidesApp.PredefinedLayout.TITLE_AND_BODY);
shapes = slide.getShapes();
// Set title.
shapes[0].getText().setText(bulletPoints['slides'][i]['title']);
// Set body.
body = "";
for (var j = 0; j < bulletPoints['slides'][i]['bullets'].length; j++) {
body += '* ' + bulletPoints['slides'][i]['bullets'][j] + '\n';
}
shapes[1].getText().setText(body);
}
return presentation.getUrl();
}
এই ফাংশনটি জেমিনি API-কে একটি নির্দিষ্ট বিষয় নিয়ে চিন্তাভাবনা করতে, বিন্যাসে বুলেট পয়েন্টগুলি ফেরত পাঠায়
JSON এর, এবং তারপর একটি কঙ্কাল ডেক পূরণ করতে Apps স্ক্রিপ্ট ব্যবহার করুন।
-
utils.gs
ফাইলে,You add tools here
মন্তব্যের পরেWORKSPACE_TOOLS
অবজেক্টে নিম্নলিখিত কোড যোগ করুন:
WORKSPACE_TOOLS = {
"function_declarations": [
// You add tools here.
{
"name": "createDeck",
"description": "Build a simple presentation deck with Google Slides and return the URL.",
"parameters": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "The topic that the presentation is about."
},
},
"required": [
"topic"
]
}
},
]
};
-
utils.gs
ফাইলের শীর্ষে, নিম্নলিখিত ধ্রুবকটি সংজ্ঞায়িত করুন:
const NUM_SLIDES = 3;
এটি হল স্লাইডের সংখ্যা যা জেমিনি মডেল খোলার স্লাইড ছাড়াও তৈরি করে।
- সম্পাদকে,
main.gs
ফাইলে ফিরে যান এবং তারপরে ক্লিক করুন . কয়েক সেকেন্ডের মধ্যে, আপনি এক্সিকিউশন লগে একটি উপস্থাপনা URL দেখতে পাবেন। - URL খুলতে আপনার ব্রাউজার ব্যবহার করুন. আপনি বুলেট পয়েন্টে ভরা একটি কঙ্কাল ডেক দেখতে হবে।
11. অন্বেষণ করার ধারনা
এই তিনটি সংহতকরণের বাইরে, আপনি নিম্নলিখিত ধারণাগুলি অন্বেষণ করতে পারেন:
- গুগল চ্যাটে একটি চ্যাটবট তৈরি করুন । লার্জ ল্যাঙ্গুয়েজ মডেলের (এলএলএম) সবচেয়ে জনপ্রিয় ব্যবহারের ক্ষেত্রে একটি চ্যাটবট তৈরি করা। Gemini API-এর মাধ্যমে, Google Chat-এর জন্য একটি চ্যাটবট তৈরি করা সহজ। আরও তথ্যের জন্য, Gemini এর সাথে Google Chat-এর জন্য Google Chat API এবং codelab বিল্ড অ্যাপগুলি দেখুন।
- পুনরুদ্ধার-অগমেন্টেড জেনারেশন (RAG) Google Drive বা Keep-এ আপনার নিজস্ব ডেটা সহ। এই কোডল্যাবে, আপনি সংক্ষিপ্তকরণের জন্য শুধুমাত্র একটি একক টেক্সট ফাইল ব্যবহার করেন। যাইহোক, আপনি আপনার ব্যক্তিগত Google ড্রাইভ এবং Keep-এর মতো বিষয়বস্তু-যেমন নোট, পিডিএফ, এবং চিত্র-জেমিনি API, একটি ভেক্টর ডাটাবেস, এবং বিকল্পভাবে, একটি অর্কেস্ট্রেশন টুল-যেমন ল্যাংচেইন -এর সাথে RAG করতে এবং ব্যক্তিগতকৃত করতে ব্যবহার করতে পারেন। আপনার ডেটার উপর ভিত্তি করে মডেলের প্রতিক্রিয়া।
- Gemini API-এর মাল্টি-টার্ন ফাংশন-কলিং ক্ষমতা ব্যবহার করুন । জেমিনি এপিআই-এর ফাংশন কলিং শুধুমাত্র একটি টার্নের মধ্যে সীমাবদ্ধ নয় এবং আপনি আরও জটিল কাজের জন্য মাল্টি-টার্ন ফাংশন কল করতে পারেন।
- Google Workspace-এর বাইরে যান । এখন আপনি বুঝতে পেরেছেন যে কীভাবে Google Workspace-এর সাথে Gemini API-কে একীভূত করতে হয়, আপনি Google Workspace-এর বাইরে যেতে পারেন এবং বিশ্বের অন্যান্য API-এর সুবিধা নিতে পারেন।
12. অভিনন্দন
আপনি Gemini API এর মাল্টি-মডেল ক্ষমতা এবং ফাংশন কলিং সম্পর্কে শিখেছেন। আপনি অ্যাপ স্ক্রিপ্টের সাহায্যে কিছু Google Workspace টাস্ক স্বয়ংক্রিয় করতে সেগুলি ব্যবহার করেছেন!