টিউটোরিয়াল: Gemini API দিয়ে শুরু করুন


গুগল এআই দেখুন Google Colab-এ চালান GitHub-এ উৎস দেখুন

এই কুইকস্টার্ট দেখায় কিভাবে জেমিনি API-এর জন্য পাইথন SDK ব্যবহার করতে হয়, যা আপনাকে Google-এর জেমিনি বড় ভাষার মডেলগুলিতে অ্যাক্সেস দেয়। এই কুইকস্টার্টে, আপনি শিখবেন কিভাবে:

  1. Gemini ব্যবহার করতে আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট এবং API অ্যাক্সেস সেট আপ করুন।
  2. পাঠ্য ইনপুট থেকে পাঠ্য প্রতিক্রিয়া তৈরি করুন।
  3. মাল্টিমোডাল ইনপুট (টেক্সট এবং ছবি) থেকে পাঠ্য প্রতিক্রিয়া তৈরি করুন।
  4. বহুমুখী কথোপকথনের জন্য মিথুন ব্যবহার করুন (চ্যাট)।
  5. বড় ভাষার মডেলের জন্য এম্বেডিং ব্যবহার করুন।

পূর্বশর্ত

আপনি Google Colab- এ এই কুইকস্টার্ট চালাতে পারেন, যা এই নোটবুকটি সরাসরি ব্রাউজারে চালায় এবং অতিরিক্ত পরিবেশ কনফিগারেশনের প্রয়োজন হয় না।

বিকল্পভাবে, স্থানীয়ভাবে এই কুইকস্টার্টটি সম্পূর্ণ করতে, নিশ্চিত করুন যে আপনার উন্নয়ন পরিবেশ নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে:

  • Python 3.9+
  • নোটবুক চালানোর জন্য jupyter একটি ইনস্টলেশন।

সেটআপ

পাইথন SDK ইনস্টল করুন

Gemini API-এর জন্য Python SDK, google-generativeai প্যাকেজে রয়েছে। পিপ ব্যবহার করে নির্ভরতা ইনস্টল করুন:

pip install -q -U google-generativeai

প্যাকেজ আমদানি করুন

প্রয়োজনীয় প্যাকেজ আমদানি করুন।

import pathlib
import textwrap

import google.generativeai as genai

from IPython.display import display
from IPython.display import Markdown


def to_markdown(text):
  text = text.replace('•', '  *')
  return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
# Used to securely store your API key
from google.colab import userdata

আপনার API কী সেটআপ করুন

আপনি Gemini API ব্যবহার করার আগে, আপনাকে প্রথমে একটি API কী পেতে হবে। যদি আপনার কাছে ইতিমধ্যে একটি না থাকে তবে Google AI স্টুডিওতে এক ক্লিকে একটি কী তৈরি করুন৷

একটি API কী পান

Colab-এ, বাঁদিকের প্যানেলে "🔑"-এর নিচে সিক্রেট ম্যানেজারের কী যোগ করুন। এটিকে GOOGLE_API_KEY নাম দিন।

একবার আপনার কাছে API কী হয়ে গেলে, এটি SDK-এ পাস করুন। আপনি এটি দুটি উপায়ে করতে পারেন:

  • কীটি GOOGLE_API_KEY এনভায়রনমেন্ট ভেরিয়েবলে রাখুন (SDK স্বয়ংক্রিয়ভাবে সেখান থেকে তুলে নেবে)।
  • genai.configure(api_key=...) এ কী পাস করুন
# Or use `os.getenv('GOOGLE_API_KEY')` to fetch an environment variable.
GOOGLE_API_KEY=userdata.get('GOOGLE_API_KEY')

genai.configure(api_key=GOOGLE_API_KEY)

তালিকা মডেল

এখন আপনি Gemini API কল করার জন্য প্রস্তুত। উপলব্ধ মিথুন মডেল দেখতে list_models ব্যবহার করুন:

  • gemini-pro : শুধুমাত্র পাঠ্য-প্রম্পটের জন্য অপ্টিমাইজ করা হয়েছে।
  • gemini-pro-vision : পাঠ্য-এবং-চিত্র প্রম্পটগুলির জন্য অপ্টিমাইজ করা হয়েছে।
for m in genai.list_models():
  if 'generateContent' in m.supported_generation_methods:
    print(m.name)

genai প্যাকেজ মডেলের PaLM পরিবারকেও সমর্থন করে, তবে শুধুমাত্র জেমিনি মডেলগুলি generateContent পদ্ধতির জেনেরিক, মাল্টিমোডাল ক্ষমতা সমর্থন করে।

পাঠ্য ইনপুট থেকে পাঠ্য তৈরি করুন

শুধুমাত্র টেক্সট প্রম্পটের জন্য, একটি Gemini 1.5 মডেল বা Gemini 1.0 Pro মডেল ব্যবহার করুন:

model = genai.GenerativeModel('gemini-1.5-flash')

generate_content পদ্ধতিটি অন্তর্নিহিত মডেলটি কী সমর্থন করে তার উপর নির্ভর করে মাল্টি-টার্ন চ্যাট এবং মাল্টিমোডাল ইনপুট সহ বিভিন্ন ধরণের ব্যবহারের ক্ষেত্রে পরিচালনা করতে পারে। উপলব্ধ মডেলগুলি শুধুমাত্র পাঠ্য এবং চিত্রগুলিকে ইনপুট হিসাবে এবং পাঠ্যকে আউটপুট হিসাবে সমর্থন করে৷

সহজ ক্ষেত্রে, আপনি GenerativeModel.generate_content পদ্ধতিতে একটি প্রম্পট স্ট্রিং পাস করতে পারেন:

%%time
response = model.generate_content("What is the meaning of life?")
CPU times: user 110 ms, sys: 12.3 ms, total: 123 ms
Wall time: 8.25 s

সাধারণ ক্ষেত্রে, response.text অ্যাক্সেসরটিই আপনার প্রয়োজন৷ বিন্যাসিত মার্কডাউন পাঠ্য প্রদর্শন করতে, to_markdown ফাংশন ব্যবহার করুন:

to_markdown(response.text)

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

  1. সুখ এবং মঙ্গল: অনেক ব্যক্তি বিশ্বাস করেন যে জীবনের লক্ষ্য ব্যক্তিগত সুখ এবং মঙ্গল অর্জন করা। এটি লোকেটিং সাধনাকে অন্তর্ভুক্ত করতে পারে যা আনন্দ দেয়, উল্লেখযোগ্য সংযোগ স্থাপন করে, একজনের শারীরিক এবং মানসিক স্বাস্থ্যের যত্ন নেয় এবং ব্যক্তিগত লক্ষ্য এবং আগ্রহগুলি অনুসরণ করে।

  2. অর্থপূর্ণ অবদান: কেউ কেউ বিশ্বাস করেন যে জীবনের উদ্দেশ্য হল পৃথিবীতে অর্থপূর্ণ অবদান রাখা। এটি এমন একটি পেশা অনুসরণ করতে পারে যা অন্যদের উপকার করে, স্বেচ্ছাসেবক বা দাতব্য কর্মকাণ্ডে জড়িত হওয়া, শিল্প বা সাহিত্য তৈরি করা বা উদ্ভাবন করা।

  3. আত্ম-উপলব্ধি এবং ব্যক্তিগত বৃদ্ধি: আত্ম-উপলব্ধি এবং ব্যক্তিগত বিকাশের সাধনা জীবনের আরেকটি সাধারণ লক্ষ্য। এতে নতুন দক্ষতা শেখা, নিজের সীমারেখা ঠেলে দেওয়া, ব্যক্তিগত বাধার মোকাবিলা করা এবং একজন ব্যক্তি হিসেবে বিকশিত হওয়া অন্তর্ভুক্ত হতে পারে।

  4. নৈতিক ও নৈতিক আচরণ: কেউ কেউ বিশ্বাস করেন যে জীবনের লক্ষ্য হল নৈতিক ও নৈতিকভাবে কাজ করা। এটি একজনের নৈতিক নীতিগুলি মেনে চলা, কঠিন হলেও সঠিক কাজ করা এবং বিশ্বকে একটি ভাল জায়গা করে তোলার চেষ্টা করতে পারে।

  5. আধ্যাত্মিক পরিপূর্ণতা: কারো কারো জন্য জীবনের উদ্দেশ্য আধ্যাত্মিক বা ধর্মীয় বিশ্বাসের সাথে যুক্ত। এটি একটি উচ্চ ক্ষমতার সাথে সংযোগ চাওয়া, ধর্মীয় আচার-অনুষ্ঠান অনুশীলন বা আধ্যাত্মিক শিক্ষা অনুসরণ করতে পারে।

  6. জীবনকে পূর্ণতার সাথে অনুভব করা: কিছু ব্যক্তি বিশ্বাস করেন যে জীবনের লক্ষ্য হল এটি যা দেয় তা অনুভব করা। এতে ভ্রমণ করা, নতুন জিনিস চেষ্টা করা, ঝুঁকি নেওয়া এবং নতুন এনকাউন্টার গ্রহণ করা অন্তর্ভুক্ত হতে পারে।

  7. উত্তরাধিকার এবং প্রভাব: অন্যরা বিশ্বাস করে যে জীবনের উদ্দেশ্য হল একটি দীর্ঘস্থায়ী উত্তরাধিকার এবং বিশ্বের উপর প্রভাব রেখে যাওয়া। এর মধ্যে উল্লেখযোগ্য কিছু সম্পন্ন করা, কারো অবদানের জন্য স্মরণ করা বা অন্যদের অনুপ্রাণিত করা এবং অনুপ্রাণিত করা অন্তর্ভুক্ত হতে পারে।

  8. ভারসাম্য এবং সম্প্রীতি খোঁজা: কারো কারো জন্য জীবনের উদ্দেশ্য হল তাদের জীবনের সকল ক্ষেত্রে ভারসাম্য এবং সাদৃশ্য খুঁজে পাওয়া। এতে ব্যক্তিগত, পেশাগত এবং সামাজিক বাধ্যবাধকতাগুলিকে জাগলিং করা, অভ্যন্তরীণ শান্তি এবং তৃপ্তি খোঁজা এবং এমন একটি জীবন যাপন করা হতে পারে যা একজনের মূল্যবোধ এবং বিশ্বাসের সাথে সঙ্গতিপূর্ণ।

শেষ পর্যন্ত, জীবনের অর্থ হল একটি ব্যক্তিগত যাত্রা, এবং বিভিন্ন ব্যক্তি তাদের অভিজ্ঞতা, প্রতিফলন এবং তাদের চারপাশের বিশ্বের সাথে মিথস্ক্রিয়া দ্বারা তাদের নিজস্ব অনন্য উদ্দেশ্য আবিষ্কার করতে পারে।

যদি API কোনো ফলাফল ফেরাতে ব্যর্থ হয়, তাহলে GenerateContentResponse.prompt_feedback ব্যবহার করুন প্রম্পট সংক্রান্ত নিরাপত্তা সংক্রান্ত উদ্বেগের কারণে এটি ব্লক করা হয়েছে কিনা।

response.prompt_feedback
safety_ratings {
  category: HARM_CATEGORY_SEXUALLY_EXPLICIT
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_HATE_SPEECH
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_HARASSMENT
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_DANGEROUS_CONTENT
  probability: NEGLIGIBLE
}

মিথুন একটি একক প্রম্পটের জন্য একাধিক সম্ভাব্য প্রতিক্রিয়া তৈরি করতে পারে। এই সম্ভাব্য প্রতিক্রিয়াগুলিকে candidates বলা হয়, এবং আপনি প্রতিক্রিয়া হিসাবে সবচেয়ে উপযুক্ত একটি নির্বাচন করতে সেগুলি পর্যালোচনা করতে পারেন।

GenerateContentResponse.candidates সহ প্রতিক্রিয়া প্রার্থীদের দেখুন:

response.candidates
[content {
  parts {
    text: "The query of life\'s purpose has perplexed people across centuries, cultures, and continents. While there is no universally recognized response, many ideas have been put forth, and the response is frequently dependent on individual ideas, beliefs, and life experiences.\n\n1. **Happiness and Well-being:** Many individuals believe that the goal of life is to attain personal happiness and well-being. This might entail locating pursuits that provide joy, establishing significant connections, caring for one\'s physical and mental health, and pursuing personal goals and interests.\n\n2. **Meaningful Contribution:** Some believe that the purpose of life is to make a meaningful contribution to the world. This might entail pursuing a profession that benefits others, engaging in volunteer or charitable activities, generating art or literature, or inventing.\n\n3. **Self-realization and Personal Growth:** The pursuit of self-realization and personal development is another common goal in life. This might entail learning new skills, pushing one\'s boundaries, confronting personal obstacles, and evolving as a person.\n\n4. **Ethical and Moral Behavior:** Some believe that the goal of life is to act ethically and morally. This might entail adhering to one\'s moral principles, doing the right thing even when it is difficult, and attempting to make the world a better place.\n\n5. **Spiritual Fulfillment:** For some, the purpose of life is connected to spiritual or religious beliefs. This might entail seeking a connection with a higher power, practicing religious rituals, or following spiritual teachings.\n\n6. **Experiencing Life to the Fullest:** Some individuals believe that the goal of life is to experience all that it has to offer. This might entail traveling, trying new things, taking risks, and embracing new encounters.\n\n7. **Legacy and Impact:** Others believe that the purpose of life is to leave a lasting legacy and impact on the world. This might entail accomplishing something noteworthy, being remembered for one\'s contributions, or inspiring and motivating others.\n\n8. **Finding Balance and Harmony:** For some, the purpose of life is to find balance and harmony in all aspects of their lives. This might entail juggling personal, professional, and social obligations, seeking inner peace and contentment, and living a life that is in accordance with one\'s values and beliefs.\n\nUltimately, the meaning of life is a personal journey, and different individuals may discover their own unique purpose through their experiences, reflections, and interactions with the world around them."
  }
  role: "model"
}
finish_reason: STOP
index: 0
safety_ratings {
  category: HARM_CATEGORY_SEXUALLY_EXPLICIT
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_HATE_SPEECH
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_HARASSMENT
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_DANGEROUS_CONTENT
  probability: NEGLIGIBLE
}
]

ডিফল্টরূপে, মডেল পুরো প্রজন্মের প্রক্রিয়া শেষ করার পরে একটি প্রতিক্রিয়া প্রদান করে। আপনি প্রতিক্রিয়াটি তৈরি করার সাথে সাথে স্ট্রিম করতে পারেন এবং মডেলটি তৈরি হওয়ার সাথে সাথে প্রতিক্রিয়ার অংশগুলি ফিরিয়ে দেবে।

প্রতিক্রিয়া স্ট্রিম করতে, GenerativeModel.generate_content(..., stream=True) ব্যবহার করুন।

%%time
response = model.generate_content("What is the meaning of life?", stream=True)
CPU times: user 102 ms, sys: 25.1 ms, total: 128 ms
Wall time: 7.94 s
for chunk in response:
  print(chunk.text)
  print("_"*80)
The query of life's purpose has perplexed people across centuries, cultures, and
________________________________________________________________________________
 continents. While there is no universally recognized response, many ideas have been put forth, and the response is frequently dependent on individual ideas, beliefs, and life experiences
________________________________________________________________________________
.

1. **Happiness and Well-being:** Many individuals believe that the goal of life is to attain personal happiness and well-being. This might entail locating pursuits that provide joy, establishing significant connections, caring for one's physical and mental health, and pursuing personal goals and aspirations.

2. **Meaning
________________________________________________________________________________
ful Contribution:** Some believe that the purpose of life is to make a meaningful contribution to the world. This might entail pursuing a profession that benefits others, engaging in volunteer or charitable activities, generating art or literature, or inventing.

3. **Self-realization and Personal Growth:** The pursuit of self-realization and personal development is another common goal in life. This might entail learning new skills, exploring one's interests and abilities, overcoming obstacles, and becoming the best version of oneself.

4. **Connection and Relationships:** For many individuals, the purpose of life is found in their relationships with others. This might entail building
________________________________________________________________________________
 strong bonds with family and friends, fostering a sense of community, and contributing to the well-being of those around them.

5. **Spiritual Fulfillment:** For those with religious or spiritual beliefs, the purpose of life may be centered on seeking spiritual fulfillment or enlightenment. This might entail following religious teachings, engaging in spiritual practices, or seeking a deeper understanding of the divine.

6. **Experiencing the Journey:** Some believe that the purpose of life is simply to experience the journey itself, with all its joys and sorrows. This perspective emphasizes embracing the present moment, appreciating life's experiences, and finding meaning in the act of living itself.

7. **Legacy and Impact:** For others, the goal of life is to leave a lasting legacy or impact on the world. This might entail making a significant contribution to a particular field, leaving a positive mark on future generations, or creating something that will be remembered and cherished long after one's lifetime.

Ultimately, the meaning of life is a personal and subjective question, and there is no single, universally accepted answer. It is about discovering what brings you fulfillment, purpose, and meaning in your own life, and living in accordance with those values.
________________________________________________________________________________

স্ট্রিমিং করার সময়, আপনি সমস্ত প্রতিক্রিয়া অংশগুলির মাধ্যমে পুনরাবৃত্তি না করা পর্যন্ত কিছু প্রতিক্রিয়া বৈশিষ্ট্য উপলব্ধ থাকে না। এটি নীচে প্রদর্শিত হয়:

response = model.generate_content("What is the meaning of life?", stream=True)

prompt_feedback বৈশিষ্ট্য কাজ করে:

response.prompt_feedback
safety_ratings {
  category: HARM_CATEGORY_SEXUALLY_EXPLICIT
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_HATE_SPEECH
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_HARASSMENT
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_DANGEROUS_CONTENT
  probability: NEGLIGIBLE
}

কিন্তু text মতো বৈশিষ্ট্যগুলি তা করে না:

try:
  response.text
except Exception as e:
  print(f'{type(e).__name__}: {e}')
IncompleteIterationError: Please let the response complete iteration before accessing the final accumulated
attributes (or call `response.resolve()`)

ইমেজ এবং টেক্সট ইনপুট থেকে টেক্সট তৈরি করুন

জেমিনি বিভিন্ন মডেল সরবরাহ করে যা মাল্টিমোডাল ইনপুট (জেমিনি 1.5 মডেল এবং জেমিনি 1.0 প্রো ভিশন) পরিচালনা করতে পারে যাতে আপনি পাঠ্য এবং চিত্র উভয়ই ইনপুট করতে পারেন। প্রম্পটের জন্য চিত্রের প্রয়োজনীয়তাগুলি পর্যালোচনা করতে ভুলবেন না।

যখন প্রম্পট ইনপুটে টেক্সট এবং ইমেজ উভয়ই অন্তর্ভুক্ত থাকে, তখন টেক্সট আউটপুট জেনারেট করতে GenerativeModel.generate_content পদ্ধতি সহ Gemini 1.5 মডেল বা Gemini 1.0 Pro Vision মডেল ব্যবহার করুন:

আসুন একটি চিত্র অন্তর্ভুক্ত করা যাক:

curl -o image.jpg https://t0.gstatic.com/licensed-image?q=tbn:ANd9GcQ_Kevbk21QBRy-PgB4kQpS79brbmmEG7m3VOTShAn4PecDU5H5UxrJxE3Dw1JiaG17V88QIol19-3TM2wCHw
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  405k  100  405k    0     0  6982k      0 --:--:-- --:--:-- --:--:-- 7106k
import PIL.Image

img = PIL.Image.open('image.jpg')
img

png

একটি Gemini 1.5 মডেল ব্যবহার করুন এবং generate_content সহ মডেলটিতে চিত্রটি পাস করুন।

model = genai.GenerativeModel('gemini-1.5-flash')
response = model.generate_content(img)

to_markdown(response.text)

বাদামী চাল, ভাজা ব্রোকলি এবং বেল মরিচ দিয়ে চিকেন টেরিয়াকি খাবারের প্রস্তুতির বাটি।

একটি প্রম্পটে পাঠ্য এবং চিত্র উভয়ই প্রদান করতে, স্ট্রিং এবং চিত্র সমন্বিত একটি তালিকা পাস করুন:

response = model.generate_content(["Write a short, engaging blog post based on this picture. It should include a description of the meal in the photo and talk about my journey meal prepping.", img], stream=True)
response.resolve()
to_markdown(response.text)

খাবার প্রস্তুত করা সময় এবং অর্থ সাশ্রয়ের একটি দুর্দান্ত উপায় এবং এটি আপনাকে স্বাস্থ্যকর খেতেও সহায়তা করতে পারে। এই খাবারটি একটি স্বাস্থ্যকর এবং সুস্বাদু খাবারের একটি দুর্দান্ত উদাহরণ যা সময়ের আগে সহজেই প্রস্তুত করা যেতে পারে।

এই খাবারে বাদামী চাল, ভাজা সবজি এবং চিকেন তেরিয়াকি রয়েছে। বাদামী চাল হল একটি সম্পূর্ণ শস্য যা ফাইবার এবং পুষ্টিতে বেশি। রোস্ট করা শাকসবজি আপনার প্রতিদিনের ভিটামিন এবং মিনারেল পাওয়ার একটি দুর্দান্ত উপায়। এবং মুরগির তেরিয়াকি একটি চর্বিহীন প্রোটিনের উত্স যা স্বাদে পরিপূর্ণ।

এই খাবারটি সময়ের আগে প্রস্তুত করা সহজ। সহজভাবে বাদামী চাল রান্না করুন, সবজি ভাজুন এবং চিকেন তেরিয়াকি রান্না করুন। তারপরে, খাবারটি পৃথক পাত্রে ভাগ করুন এবং রেফ্রিজারেটরে সংরক্ষণ করুন। যখন আপনি খাওয়ার জন্য প্রস্তুত হন, কেবল একটি পাত্রে ধরুন এবং এটি গরম করুন।

এই খাবারটি ব্যস্ত ব্যক্তিদের জন্য একটি দুর্দান্ত বিকল্প যারা খাওয়ার জন্য একটি স্বাস্থ্যকর এবং সুস্বাদু উপায় খুঁজছেন। যারা ওজন কমাতে বা স্বাস্থ্যকর ওজন বজায় রাখার চেষ্টা করছেন তাদের জন্য এটি একটি দুর্দান্ত খাবার।

আপনি যদি একটি স্বাস্থ্যকর এবং সুস্বাদু খাবার খুঁজছেন যা সহজেই সময়ের আগে প্রস্তুত করা যেতে পারে, এই খাবারটি একটি দুর্দান্ত বিকল্প। আজই একবার চেষ্টা করে দেখ!

চ্যাট কথোপকথন

মিথুন আপনাকে একাধিক বাঁক জুড়ে ফ্রিফর্ম কথোপকথন করতে সক্ষম করে। ChatSession ক্লাস কথোপকথনের অবস্থা পরিচালনা করে প্রক্রিয়াটিকে সহজ করে, তাই generate_content এর বিপরীতে, আপনাকে কথোপকথনের ইতিহাস একটি তালিকা হিসাবে সংরক্ষণ করতে হবে না।

চ্যাট শুরু করুন:

model = genai.GenerativeModel('gemini-1.5-flash')
chat = model.start_chat(history=[])
chat
<google.generativeai.generative_models.ChatSession at 0x7b7b68250100>

ChatSession.send_message পদ্ধতি GenerativeModel.generate_content হিসাবে একই GenerateContentResponse প্রকার প্রদান করে। এটি আপনার বার্তা এবং চ্যাটের ইতিহাসে প্রতিক্রিয়া যুক্ত করে:

response = chat.send_message("In one sentence, explain how a computer works to a young child.")
to_markdown(response.text)

একটি কম্পিউটার একটি খুব স্মার্ট মেশিনের মতো যা আমাদের নির্দেশাবলী বুঝতে এবং অনুসরণ করতে পারে, আমাদের কাজে সাহায্য করতে পারে এবং এমনকি আমাদের সাথে গেম খেলতে পারে!

chat.history
[parts {
   text: "In one sentence, explain how a computer works to a young child."
 }
 role: "user",
 parts {
   text: "A computer is like a very smart machine that can understand and follow our instructions, help us with our work, and even play games with us!"
 }
 role: "model"]

আপনি কথোপকথন চালিয়ে যেতে বার্তা পাঠানো চালিয়ে যেতে পারেন. চ্যাট স্ট্রিম করতে stream=True আর্গুমেন্ট ব্যবহার করুন:

response = chat.send_message("Okay, how about a more detailed explanation to a high schooler?", stream=True)

for chunk in response:
  print(chunk.text)
  print("_"*80)
A computer works by following instructions, called a program, which tells it what to
________________________________________________________________________________
 do. These instructions are written in a special language that the computer can understand, and they are stored in the computer's memory. The computer's processor
________________________________________________________________________________
, or CPU, reads the instructions from memory and carries them out, performing calculations and making decisions based on the program's logic. The results of these calculations and decisions are then displayed on the computer's screen or stored in memory for later use.

To give you a simple analogy, imagine a computer as a
________________________________________________________________________________
 chef following a recipe. The recipe is like the program, and the chef's actions are like the instructions the computer follows. The chef reads the recipe (the program) and performs actions like gathering ingredients (fetching data from memory), mixing them together (performing calculations), and cooking them (processing data). The final dish (the output) is then presented on a plate (the computer screen).

In summary, a computer works by executing a series of instructions, stored in its memory, to perform calculations, make decisions, and display or store the results.
________________________________________________________________________________

glm.Content অবজেক্টে glm.Part অবজেক্টের একটি তালিকা থাকে যেগুলির প্রত্যেকটিতে একটি টেক্সট (স্ট্রিং) বা ইনলাইন_ডেটা ( glm.Blob ) থাকে, যেখানে একটি ব্লব বাইনারি ডেটা এবং একটি mime_type ধারণ করে। চ্যাট ইতিহাস ChatSession.historyglm.Content অবজেক্টের একটি তালিকা হিসাবে উপলব্ধ:

for message in chat.history:
  display(to_markdown(f'**{message.role}**: {message.parts[0].text}'))

ব্যবহারকারী : একটি বাক্যে ব্যাখ্যা করুন কিভাবে একটি কম্পিউটার একটি ছোট শিশুর জন্য কাজ করে।

মডেল : একটি কম্পিউটার একটি খুব স্মার্ট মেশিনের মতো যা আমাদের নির্দেশাবলী বুঝতে এবং অনুসরণ করতে পারে, আমাদের কাজে সাহায্য করতে পারে এবং এমনকি আমাদের সাথে গেম খেলতে পারে!

ব্যবহারকারী : ঠিক আছে, একজন উচ্চ বিদ্যালয়ের শিক্ষার্থীর কাছে আরও বিস্তারিত ব্যাখ্যা কেমন হবে?

মডেল : একটি কম্পিউটার নির্দেশাবলী অনুসরণ করে কাজ করে, একটি প্রোগ্রাম বলা হয়, যা এটিকে কী করতে হবে তা বলে। এই নির্দেশাবলী একটি বিশেষ ভাষায় লেখা হয় যা কম্পিউটার বুঝতে পারে এবং সেগুলি কম্পিউটারের মেমরিতে সংরক্ষণ করা হয়। কম্পিউটারের প্রসেসর, বা CPU, মেমরি থেকে নির্দেশাবলী পড়ে এবং সেগুলি বহন করে, গণনা সম্পাদন করে এবং প্রোগ্রামের যুক্তির উপর ভিত্তি করে সিদ্ধান্ত নেয়। এই গণনা এবং সিদ্ধান্তের ফলাফল তারপর কম্পিউটারের স্ক্রিনে প্রদর্শিত হয় বা পরে ব্যবহারের জন্য মেমরিতে সংরক্ষণ করা হয়।

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

সংক্ষেপে, একটি কম্পিউটার তার মেমরিতে সংরক্ষিত নির্দেশাবলীর একটি সিরিজ কার্যকর করে, গণনা সম্পাদন করতে, সিদ্ধান্ত নিতে এবং ফলাফল প্রদর্শন বা সংরক্ষণ করে।

টোকেন গণনা করুন

বড় ভাষার মডেলগুলির একটি প্রসঙ্গ উইন্ডো থাকে এবং প্রসঙ্গ দৈর্ঘ্য প্রায়ই টোকেনের সংখ্যার পরিপ্রেক্ষিতে পরিমাপ করা হয়। Gemini API এর মাধ্যমে, আপনি যেকোনো glm.Content অবজেক্টের প্রতি টোকেনের সংখ্যা নির্ধারণ করতে পারেন। সবচেয়ে সহজ ক্ষেত্রে, আপনি GenerativeModel.count_tokens পদ্ধতিতে একটি ক্যোয়ারী স্ট্রিং পাস করতে পারেন:

model.count_tokens("What is the meaning of life?")
total_tokens: 7

একইভাবে, আপনি আপনার ChatSession জন্য token_count পরীক্ষা করতে পারেন:

model.count_tokens(chat.history)
total_tokens: 501

এম্বেডিং ব্যবহার করুন

এমবেডিং হল একটি কৌশল যা তথ্যকে একটি অ্যারেতে ভাসমান পয়েন্ট সংখ্যার তালিকা হিসাবে উপস্থাপন করতে ব্যবহৃত হয়। মিথুনের সাথে, আপনি একটি ভেক্টরাইজড আকারে পাঠ্য (শব্দ, বাক্য এবং পাঠ্যের ব্লক) উপস্থাপন করতে পারেন, এটি তুলনা করা এবং এম্বেডিংগুলিকে বৈসাদৃশ্য করা সহজ করে তোলে। উদাহরণ স্বরূপ, যে দুটি পাঠ্য একই বিষয়বস্তু বা অনুভূতি ভাগ করে তাদের অনুরূপ এম্বেডিং থাকা উচিত, যা গাণিতিক তুলনা কৌশল যেমন কোসাইন সাদৃশ্যের মাধ্যমে চিহ্নিত করা যেতে পারে। কীভাবে এবং কেন আপনার এম্বেডিং ব্যবহার করা উচিত সে সম্পর্কে আরও জানতে, এম্বেডিং গাইড পড়ুন।

এমবেডিং তৈরি করতে embed_content পদ্ধতি ব্যবহার করুন। পদ্ধতিটি নিম্নলিখিত কাজের জন্য এম্বেডিং পরিচালনা করে ( task_type ):

টাস্ক টাইপ বর্ণনা
RETRIEVAL_QUERY প্রদত্ত টেক্সট একটি অনুসন্ধান/পুনরুদ্ধার সেটিং একটি ক্যোয়ারী নির্দিষ্ট করে.
RETRIEVAL_DOCUMENT প্রদত্ত পাঠ্যটি একটি অনুসন্ধান/পুনরুদ্ধার সেটিং এর একটি নথি নির্দিষ্ট করে৷ এই টাস্ক টাইপ ব্যবহার করার জন্য একটি title প্রয়োজন।
SEMANTIC_SIMILARITY প্রদত্ত টেক্সট শব্দার্থিক টেক্সচুয়াল সাদৃশ্য (STS) এর জন্য ব্যবহার করা হবে তা নির্দিষ্ট করে।
শ্রেণীবিভাগ নির্দিষ্ট করে যে এমবেডিংগুলি শ্রেণীবিভাগের জন্য ব্যবহার করা হবে৷
ক্লাস্টারিং নির্দিষ্ট করে যে এমবেডিংগুলি ক্লাস্টারিংয়ের জন্য ব্যবহার করা হবে৷

নিম্নলিখিত নথি পুনরুদ্ধারের জন্য একটি একক স্ট্রিংয়ের জন্য একটি এমবেডিং তৈরি করে:

result = genai.embed_content(
    model="models/embedding-001",
    content="What is the meaning of life?",
    task_type="retrieval_document",
    title="Embedding of single string")

# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED]')
[-0.003216741, -0.013358698, -0.017649598, -0.0091 ... TRIMMED]

স্ট্রিংগুলির ব্যাচগুলি পরিচালনা করতে, content স্ট্রিংগুলির একটি তালিকা পাস করুন:

result = genai.embed_content(
    model="models/embedding-001",
    content=[
      'What is the meaning of life?',
      'How much wood would a woodchuck chuck?',
      'How does the brain work?'],
    task_type="retrieval_document",
    title="Embedding of list of strings")

# A list of inputs > A list of vectors output
for v in result['embedding']:
  print(str(v)[:50], '... TRIMMED ...')
[0.0040260437, 0.004124458, -0.014209415, -0.00183 ... TRIMMED ...
[-0.004049845, -0.0075574904, -0.0073463684, -0.03 ... TRIMMED ...
[0.025310587, -0.0080734305, -0.029902633, 0.01160 ... TRIMMED ...

যদিও genai.embed_content ফাংশন সাধারণ স্ট্রিং বা স্ট্রিংগুলির তালিকা গ্রহণ করে, এটি আসলে glm.Content প্রকার (যেমন GenerativeModel.generate_content ) এর চারপাশে তৈরি করা হয়। glm.Content অবজেক্ট হল API-এ কথোপকথনের প্রাথমিক একক।

যদিও glm.Content অবজেক্ট মাল্টিমোডাল, embed_content পদ্ধতি শুধুমাত্র টেক্সট এম্বেডিং সমর্থন করে। এই নকশাটি API-কে মাল্টিমোডাল এম্বেডিং-এ প্রসারিত করার সুযোগ দেয়।

response.candidates[0].content
parts {
  text: "A computer works by following instructions, called a program, which tells it what to do. These instructions are written in a special language that the computer can understand, and they are stored in the computer\'s memory. The computer\'s processor, or CPU, reads the instructions from memory and carries them out, performing calculations and making decisions based on the program\'s logic. The results of these calculations and decisions are then displayed on the computer\'s screen or stored in memory for later use.\n\nTo give you a simple analogy, imagine a computer as a chef following a recipe. The recipe is like the program, and the chef\'s actions are like the instructions the computer follows. The chef reads the recipe (the program) and performs actions like gathering ingredients (fetching data from memory), mixing them together (performing calculations), and cooking them (processing data). The final dish (the output) is then presented on a plate (the computer screen).\n\nIn summary, a computer works by executing a series of instructions, stored in its memory, to perform calculations, make decisions, and display or store the results."
}
role: "model"
result = genai.embed_content(
    model = 'models/embedding-001',
    content = response.candidates[0].content)

# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED ...')
[-0.013921871, -0.03504407, -0.0051786783, 0.03113 ... TRIMMED ...

একইভাবে, চ্যাটের ইতিহাসে glm.Content অবজেক্টের একটি তালিকা রয়েছে, যা আপনি সরাসরি embed_content ফাংশনে পাঠাতে পারেন:

chat.history
[parts {
   text: "In one sentence, explain how a computer works to a young child."
 }
 role: "user",
 parts {
   text: "A computer is like a very smart machine that can understand and follow our instructions, help us with our work, and even play games with us!"
 }
 role: "model",
 parts {
   text: "Okay, how about a more detailed explanation to a high schooler?"
 }
 role: "user",
 parts {
   text: "A computer works by following instructions, called a program, which tells it what to do. These instructions are written in a special language that the computer can understand, and they are stored in the computer\'s memory. The computer\'s processor, or CPU, reads the instructions from memory and carries them out, performing calculations and making decisions based on the program\'s logic. The results of these calculations and decisions are then displayed on the computer\'s screen or stored in memory for later use.\n\nTo give you a simple analogy, imagine a computer as a chef following a recipe. The recipe is like the program, and the chef\'s actions are like the instructions the computer follows. The chef reads the recipe (the program) and performs actions like gathering ingredients (fetching data from memory), mixing them together (performing calculations), and cooking them (processing data). The final dish (the output) is then presented on a plate (the computer screen).\n\nIn summary, a computer works by executing a series of instructions, stored in its memory, to perform calculations, make decisions, and display or store the results."
 }
 role: "model"]
result = genai.embed_content(
    model = 'models/embedding-001',
    content = chat.history)

# 1 input > 1 vector output
for i,v in enumerate(result['embedding']):
  print(str(v)[:50], '... TRIMMED...')
[-0.014632266, -0.042202696, -0.015757175, 0.01548 ... TRIMMED...
[-0.010979066, -0.024494737, 0.0092659835, 0.00803 ... TRIMMED...
[-0.010055617, -0.07208932, -0.00011750793, -0.023 ... TRIMMED...
[-0.013921871, -0.03504407, -0.0051786783, 0.03113 ... TRIMMED...

উন্নত ব্যবহারের ক্ষেত্রে

নিম্নলিখিত বিভাগগুলি জেমিনি API-এর জন্য পাইথন SDK-এর উন্নত ব্যবহারের ক্ষেত্রে এবং নিম্ন-স্তরের বিবরণ নিয়ে আলোচনা করে।

নিরাপত্তা সেটিংস

safety_settings আর্গুমেন্ট আপনাকে প্রম্পট এবং প্রতিক্রিয়া উভয় ক্ষেত্রেই মডেলটি ব্লক করে এবং অনুমতি দেয় তা কনফিগার করতে দেয়। ডিফল্টরূপে, নিরাপত্তা সেটিংস মাঝারি এবং/অথবা সমস্ত মাত্রা জুড়ে অনিরাপদ বিষয়বস্তু হওয়ার উচ্চ সম্ভাবনা সহ সামগ্রীকে ব্লক করে। নিরাপত্তা সেটিংস সম্পর্কে আরও জানুন।

একটি সন্দেহজনক প্রম্পট লিখুন এবং ডিফল্ট সুরক্ষা সেটিংস সহ মডেলটি চালান এবং এটি কোনও প্রার্থীকে ফিরিয়ে দেবে না:

response = model.generate_content('[Questionable prompt here]')
response.candidates
[content {
  parts {
    text: "I\'m sorry, but this prompt involves a sensitive topic and I\'m not allowed to generate responses that are potentially harmful or inappropriate."
  }
  role: "model"
}
finish_reason: STOP
index: 0
safety_ratings {
  category: HARM_CATEGORY_SEXUALLY_EXPLICIT
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_HATE_SPEECH
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_HARASSMENT
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_DANGEROUS_CONTENT
  probability: NEGLIGIBLE
}
]

prompt_feedback আপনাকে বলবে কোন নিরাপত্তা ফিল্টার প্রম্পটটিকে ব্লক করেছে:

response.prompt_feedback
safety_ratings {
  category: HARM_CATEGORY_SEXUALLY_EXPLICIT
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_HATE_SPEECH
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_HARASSMENT
  probability: NEGLIGIBLE
}
safety_ratings {
  category: HARM_CATEGORY_DANGEROUS_CONTENT
  probability: NEGLIGIBLE
}

এখন নতুন কনফিগার করা নিরাপত্তা সেটিংস সহ মডেলটিতে একই প্রম্পট প্রদান করুন এবং আপনি একটি প্রতিক্রিয়া পেতে পারেন।

response = model.generate_content('[Questionable prompt here]',
                                  safety_settings={'HARASSMENT':'block_none'})
response.text

এছাড়াও মনে রাখবেন যে প্রতিটি প্রার্থীর নিজস্ব safety_ratings আছে, যদি প্রম্পট পাস হয় কিন্তু পৃথক প্রতিক্রিয়া নিরাপত্তা পরীক্ষায় ব্যর্থ হয়।

বার্তা এনকোড করুন

আপনার জন্য API এ প্রম্পট পাঠানো সহজ করার জন্য পূর্ববর্তী বিভাগগুলি SDK-এর উপর নির্ভর করেছিল। এই বিভাগটি পূর্ববর্তী উদাহরণের সাথে সম্পূর্ণরূপে টাইপ করা সমতুল্য অফার করে, যাতে আপনি কীভাবে SDK বার্তাগুলিকে এনকোড করে সে সম্পর্কিত নিম্ন-স্তরের বিশদগুলি আরও ভালভাবে বুঝতে পারেন৷

Python SDK-এর অন্তর্নিহিত হল google.ai.generativelanguage ক্লায়েন্ট লাইব্রেরি:

import google.ai.generativelanguage as glm

SDK আপনার বার্তাটিকে একটি glm.Content অবজেক্টে রূপান্তর করার চেষ্টা করে, যেটিতে glm.Part অবজেক্টের একটি তালিকা রয়েছে যার প্রতিটিতে থাকে:

  1. একটি text (স্ট্রিং)
  2. inline_data ( glm.Blob ), যেখানে একটি ব্লব বাইনারি data এবং একটি mime_type ধারণ করে।

আপনি সমতুল্য অভিধান হিসাবে এই ক্লাসগুলির যে কোনওটি পাস করতে পারেন।

সুতরাং, পূর্ববর্তী উদাহরণের সম্পূর্ণরূপে টাইপ করা সমতুল্য:

model = genai.GenerativeModel('gemini-1.5-flash')
response = model.generate_content(
    glm.Content(
        parts = [
            glm.Part(text="Write a short, engaging blog post based on this picture."),
            glm.Part(
                inline_data=glm.Blob(
                    mime_type='image/jpeg',
                    data=pathlib.Path('image.jpg').read_bytes()
                )
            ),
        ],
    ),
    stream=True)
response.resolve()

to_markdown(response.text[:100] + "... [TRIMMED] ...")

খাবার প্রস্তুত করা সময় এবং অর্থ সাশ্রয়ের একটি দুর্দান্ত উপায় এবং এটি আপনাকে স্বাস্থ্যকর খেতেও সহায়তা করতে পারে। দ্বারা ... [ট্রিমড] ...

বহুমুখী কথোপকথন

যদিও পূর্বে দেখানো genai.ChatSession ক্লাস অনেক ব্যবহারের ক্ষেত্রে পরিচালনা করতে পারে, এটি কিছু অনুমান করে। যদি আপনার ব্যবহারের ক্ষেত্রে এই চ্যাট বাস্তবায়নের সাথে মানানসই না হয় তবে মনে রাখা ভালো যে genai.ChatSession হল GenerativeModel.generate_content এর চারপাশে একটি মোড়ক। একক অনুরোধ ছাড়াও, এটি মাল্টি-টার্ন কথোপকথন পরিচালনা করতে পারে।

পৃথক বার্তাগুলি হল glm.Content অবজেক্ট বা সামঞ্জস্যপূর্ণ অভিধান, যেমনটি পূর্ববর্তী বিভাগে দেখা গেছে। একটি অভিধান হিসাবে, বার্তাটির role এবং parts কীগুলির প্রয়োজন৷ একটি কথোপকথনের role হয় user হতে পারে, যা প্রম্পট প্রদান করে, অথবা model , যা প্রতিক্রিয়া প্রদান করে।

glm.Content অবজেক্টের একটি তালিকা পাস করুন এবং এটি মাল্টি-টার্ন চ্যাট হিসাবে বিবেচিত হবে:

model = genai.GenerativeModel('gemini-1.5-flash')

messages = [
    {'role':'user',
     'parts': ["Briefly explain how a computer works to a young child."]}
]
response = model.generate_content(messages)

to_markdown(response.text)

একটি কম্পিউটারকে সত্যিই একজন স্মার্ট বন্ধু হিসাবে কল্পনা করুন যে আপনাকে অনেক কিছুতে সাহায্য করতে পারে। আপনার যেমন চিন্তা করার এবং শেখার মতো মস্তিষ্ক আছে, তেমনি একটি কম্পিউটারেরও মস্তিষ্ক আছে, যাকে প্রসেসর বলা হয়। এটি কম্পিউটারের বসের মতো, এটি কী করতে হবে তা বলছে।

কম্পিউটারের ভিতরে, মেমরি নামে একটি বিশেষ জায়গা রয়েছে, যা একটি বড় স্টোরেজ বাক্সের মতো। আপনি এটিকে যা করতে বলেন সেগুলি এটি মনে রাখে, যেমন গেম খোলা বা ভিডিও খেলা৷

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

প্রসেসর বার্তাগুলি পড়ে এবং কম্পিউটারকে কী করতে হবে তা বলে৷ এটি প্রোগ্রাম খুলতে পারে, আপনাকে ছবি দেখাতে পারে, এমনকি আপনার জন্য সঙ্গীতও চালাতে পারে।

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

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

এবং যখন আপনি বন্ধুদের সাথে গেম খেলতে বা মজার ভিডিও দেখতে ইন্টারনেটে সংযোগ করতে চান, তখন কম্পিউটার ইন্টারনেট কেবল বা Wi-Fi সংকেতের মাধ্যমে বার্তা পাঠাতে এবং গ্রহণ করতে একটি নেটওয়ার্ক কার্ড নামে কিছু ব্যবহার করে।

সুতরাং, ঠিক যেমন আপনার মস্তিষ্ক আপনাকে শিখতে এবং খেলতে সাহায্য করে, তেমনি কম্পিউটারের প্রসেসর, মেমরি, গ্রাফিক্স কার্ড, হার্ড ড্রাইভ এবং নেটওয়ার্ক কার্ড সব একসাথে কাজ করে আপনার কম্পিউটারকে একটি সুপার-স্মার্ট বন্ধু করে তোলে যা আপনাকে আশ্চর্যজনক জিনিস করতে সাহায্য করতে পারে!

কথোপকথন চালিয়ে যেতে, প্রতিক্রিয়া এবং অন্য বার্তা যোগ করুন।

messages.append({'role':'model',
                 'parts':[response.text]})

messages.append({'role':'user',
                 'parts':["Okay, how about a more detailed explanation to a high school student?"]})

response = model.generate_content(messages)

to_markdown(response.text)

এর মূল অংশে, একটি কম্পিউটার এমন একটি মেশিন যা নির্দেশাবলীর একটি সেট চালানোর জন্য প্রোগ্রাম করা যেতে পারে। এটিতে বেশ কয়েকটি প্রয়োজনীয় উপাদান রয়েছে যা তথ্য প্রক্রিয়াকরণ, সঞ্চয় এবং প্রদর্শনের জন্য একসাথে কাজ করে:

1. প্রসেসর (CPU): - কম্পিউটারের মস্তিষ্ক। - নির্দেশাবলী সম্পাদন করে এবং গণনা করে। - গতি গিগাহার্টজ (GHz) এ পরিমাপ করা হয়। - আরও GHz সাধারণত দ্রুত প্রক্রিয়াকরণের অর্থ।

2. মেমরি (RAM): - ডেটা প্রক্রিয়াকরণের জন্য অস্থায়ী স্টোরেজ। - প্রোগ্রাম চলাকালীন নির্দেশাবলী এবং ডেটা ধরে রাখে। - গিগাবাইটে পরিমাপ (GB)। - বেশি গিগাবাইট র‍্যাম একই সাথে আরও প্রোগ্রাম চালানোর অনুমতি দেয়।

3. স্টোরেজ (HDD/SSD): - ডেটার জন্য স্থায়ী স্টোরেজ। - অপারেটিং সিস্টেম, প্রোগ্রাম এবং ব্যবহারকারীর ফাইল সংরক্ষণ করে। - গিগাবাইট (GB) বা টেরাবাইট (TB) এ পরিমাপ করা হয়। - হার্ড ডিস্ক ড্রাইভ (HDD) ঐতিহ্যগত, ধীরগতির এবং সস্তা। - সলিড-স্টেট ড্রাইভ (SSD) নতুন, দ্রুত এবং আরও ব্যয়বহুল।

4. গ্রাফিক্স কার্ড (GPU): - প্রক্রিয়া করে এবং ছবি প্রদর্শন করে। - গেমিং, ভিডিও এডিটিং এবং অন্যান্য গ্রাফিক্স-নিবিড় কাজগুলির জন্য অপরিহার্য। - ভিডিও RAM (VRAM) এবং ঘড়ির গতিতে পরিমাপ করা হয়।

5. মাদারবোর্ড: - সমস্ত উপাদান সংযুক্ত করে। - শক্তি এবং যোগাযোগ পথ প্রদান করে।

6. ইনপুট/আউটপুট (I/O) ডিভাইস: - ব্যবহারকারীকে কম্পিউটারের সাথে ইন্টারঅ্যাক্ট করার অনুমতি দিন। - উদাহরণ: কীবোর্ড, মাউস, মনিটর, প্রিন্টার।

7. অপারেটিং সিস্টেম (OS): - সফটওয়্যার যা কম্পিউটারের সম্পদ পরিচালনা করে। - একটি ইউজার ইন্টারফেস এবং মৌলিক কার্যকারিতা প্রদান করে। - উদাহরণ: Windows, macOS, Linux।

আপনি যখন আপনার কম্পিউটারে একটি প্রোগ্রাম চালান, তখন নিম্নলিখিতগুলি ঘটে:

  1. প্রোগ্রামের নির্দেশাবলী স্টোরেজ থেকে মেমরিতে লোড করা হয়।
  2. প্রসেসর মেমরি থেকে নির্দেশাবলী পড়ে এবং সেগুলি এক এক করে কার্যকর করে।
  3. নির্দেশে যদি গণনা জড়িত থাকে, তবে প্রসেসর তার গাণিতিক লজিক ইউনিট (ALU) ব্যবহার করে সেগুলি সম্পাদন করে।
  4. যদি নির্দেশে ডেটা জড়িত থাকে, প্রসেসর মেমরিতে পড়ে বা লেখে।
  5. গণনা বা ডেটা ম্যানিপুলেশনের ফলাফল মেমরিতে সংরক্ষণ করা হয়।
  6. যদি প্রোগ্রামটিকে স্ক্রিনে কিছু প্রদর্শন করার প্রয়োজন হয় তবে এটি গ্রাফিক্স কার্ডে প্রয়োজনীয় ডেটা পাঠায়।
  7. গ্রাফিক্স কার্ড ডেটা প্রক্রিয়া করে এবং মনিটরে পাঠায়, যা এটি প্রদর্শন করে।

এই প্রক্রিয়াটি চলতে থাকে যতক্ষণ না প্রোগ্রামটি তার কাজটি সম্পূর্ণ করে বা ব্যবহারকারী এটি বন্ধ না করে।

জেনারেশন কনফিগারেশন

generation_config আর্গুমেন্ট আপনাকে জেনারেশন প্যারামিটার পরিবর্তন করতে দেয়। আপনি মডেলে পাঠানো প্রতিটি প্রম্পটে প্যারামিটার মান অন্তর্ভুক্ত করে যা নিয়ন্ত্রণ করে কিভাবে মডেল প্রতিক্রিয়া তৈরি করে।

model = genai.GenerativeModel('gemini-1.5-flash')
response = model.generate_content(
    'Tell me a story about a magic backpack.',
    generation_config=genai.types.GenerationConfig(
        # Only one candidate for now.
        candidate_count=1,
        stop_sequences=['x'],
        max_output_tokens=20,
        temperature=1.0)
)
text = response.text

if response.candidates[0].finish_reason.name == "MAX_TOKENS":
    text += '...'

to_markdown(text)

এক সময়, সবুজ পাহাড়ের মাঝখানে অবস্থিত একটি ছোট শহরে, একটি যুবতী বাস করত...

এরপর কি

  • প্রম্পট ডিজাইন হল প্রম্পট তৈরি করার প্রক্রিয়া যা ভাষার মডেলগুলি থেকে পছন্দসই প্রতিক্রিয়া প্রকাশ করে। একটি ভাষা মডেল থেকে সঠিক, উচ্চ মানের প্রতিক্রিয়া নিশ্চিত করার জন্য ভাল কাঠামোগত প্রম্পট লেখা একটি অপরিহার্য অংশ। প্রম্পট লেখার জন্য সর্বোত্তম অনুশীলন সম্পর্কে জানুন।
  • মিথুন বিভিন্ন ব্যবহারের ক্ষেত্রে যেমন ইনপুট প্রকার এবং জটিলতা, চ্যাট বা অন্যান্য ডায়ালগ ভাষার কাজের জন্য বাস্তবায়ন এবং আকারের সীমাবদ্ধতাগুলির প্রয়োজন মেটাতে বিভিন্ন মডেলের বৈচিত্র অফার করে। উপলব্ধ মিথুন মডেল সম্পর্কে জানুন।
  • মিথুন হারের সীমা বৃদ্ধির অনুরোধ করার জন্য বিকল্পগুলি অফার করে৷ Gemini-Pro মডেলের জন্য রেট সীমা প্রতি মিনিটে 60টি অনুরোধ (RPM)।