মিথুন ডিফল্টরূপে অসংগঠিত পাঠ্য তৈরি করে, তবে কিছু অ্যাপ্লিকেশনের জন্য কাঠামোগত পাঠ্য প্রয়োজন। এই ব্যবহারের ক্ষেত্রে, আপনি জেমিনিকে JSON এর সাথে প্রতিক্রিয়া জানাতে বাধ্য করতে পারেন, স্বয়ংক্রিয় প্রক্রিয়াকরণের জন্য উপযুক্ত একটি স্ট্রাকচার্ড ডেটা ফর্ম্যাট। আপনি একটি enum-এ উল্লিখিত বিকল্পগুলির একটির সাথে প্রতিক্রিয়া জানাতে মডেলটিকে সীমাবদ্ধ করতে পারেন।
মডেল থেকে কাঠামোগত আউটপুট প্রয়োজন হতে পারে এমন কয়েকটি ব্যবহারের ক্ষেত্রে এখানে রয়েছে:
- সংবাদপত্রের নিবন্ধগুলি থেকে কোম্পানির তথ্য টেনে কোম্পানিগুলির একটি ডাটাবেস তৈরি করুন।
- জীবনবৃত্তান্ত থেকে প্রমিত তথ্য টেনে আনুন।
- রেসিপি থেকে উপাদানগুলি বের করুন এবং প্রতিটি উপাদানের জন্য একটি মুদির ওয়েবসাইটের লিঙ্ক প্রদর্শন করুন।
আপনার প্রম্পটে, আপনি জেমিনিকে JSON-ফরম্যাট করা আউটপুট তৈরি করতে বলতে পারেন, কিন্তু মনে রাখবেন যে মডেলটি JSON তৈরির নিশ্চয়তা দেয় না এবং JSON ছাড়া কিছুই নয়। আরও নির্ধারক প্রতিক্রিয়ার জন্য, আপনি একটি responseSchema
ফিল্ডে একটি নির্দিষ্ট JSON স্কিমা পাস করতে পারেন যাতে মিথুন সবসময় একটি প্রত্যাশিত কাঠামোর সাথে প্রতিক্রিয়া জানায়। স্কিমা নিয়ে কাজ করার বিষয়ে আরও জানতে, JSON স্কিমা সম্পর্কে আরও দেখুন।
আপনার পছন্দের SDK-এর মাধ্যমে বা সরাসরি REST API ব্যবহার করে generateContent
পদ্ধতি ব্যবহার করে কীভাবে JSON তৈরি করবেন এই নির্দেশিকা আপনাকে দেখায়। উদাহরণগুলি কেবলমাত্র পাঠ্য ইনপুট দেখায়, যদিও জেমিনি ছবি , ভিডিও এবং অডিও অন্তর্ভুক্ত মাল্টিমোডাল অনুরোধগুলিতে JSON প্রতিক্রিয়াও তৈরি করতে পারে।
JSON স্কিমা সম্পর্কে আরও
আপনি যখন JSON প্রতিক্রিয়া ফেরাতে মডেলটি কনফিগার করেন, তখন আপনি JSON ডেটার আকৃতি নির্ধারণ করতে একটি Schema
অবজেক্ট ব্যবহার করতে পারেন। Schema
OpenAPI 3.0 স্কিমা অবজেক্টের একটি নির্বাচিত উপসেট উপস্থাপন করে।
এখানে সমস্ত Schema
ক্ষেত্রগুলির একটি ছদ্ম-JSON উপস্থাপনা রয়েছে:
{
"type": enum (Type),
"format": string,
"description": string,
"nullable": boolean,
"enum": [
string
],
"maxItems": string,
"minItems": string,
"properties": {
string: {
object (Schema)
},
...
},
"required": [
string
],
"propertyOrdering": [
string
],
"items": {
object (Schema)
}
}
স্কিমার Type
অবশ্যই OpenAPI ডেটা টাইপের একটি হতে হবে। প্রতিটি Type
জন্য শুধুমাত্র ক্ষেত্রগুলির একটি উপসেট বৈধ। নিম্নলিখিত তালিকা প্রতিটি Type
সেই ধরণের জন্য বৈধ ক্ষেত্রের মানচিত্র করে:
-
string
-> enum, বিন্যাস -
integer
-> বিন্যাস -
number
-> বিন্যাস -
boolean
-
array
-> মিনি আইটেম, সর্বোচ্চ আইটেম, আইটেম -
object
-> বৈশিষ্ট্য, প্রয়োজনীয়, সম্পত্তি অর্ডার, বাতিলযোগ্য
এখানে বৈধ টাইপ-এবং-ক্ষেত্র সমন্বয় দেখানো কিছু উদাহরণ স্কিমা রয়েছে:
{ "type": "string", "enum": ["a", "b", "c"] }
{ "type": "string", "format": "date-time" }
{ "type": "integer", "format": "int64" }
{ "type": "number", "format": "double" }
{ "type": "boolean" }
{ "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": ... } }
{ "type": "object",
"properties": {
"a": { "type": ... },
"b": { "type": ... },
"c": { "type": ... }
},
"nullable": true,
"required": ["c"],
"propertyOrdering": ["c", "b", "a"]
}
স্কিমা ক্ষেত্রগুলির সম্পূর্ণ ডকুমেন্টেশনের জন্য যেমন সেগুলি Gemini API-এ ব্যবহৃত হয়, স্কিমা রেফারেন্স দেখুন।
সম্পত্তি আদেশ
আপনি যখন জেমিনি API-তে JSON স্কিমাগুলির সাথে কাজ করছেন, তখন বৈশিষ্ট্যের ক্রম গুরুত্বপূর্ণ। ডিফল্টরূপে, API বৈশিষ্ট্যগুলিকে বর্ণানুক্রমিকভাবে অর্ডার করে এবং যে ক্রমে বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করা হয়েছে তা সংরক্ষণ করে না (যদিও Google Gen AI SDKগুলি এই ক্রমটি সংরক্ষণ করতে পারে)৷ আপনি যদি একটি স্কিমা কনফিগার করা মডেলের সাথে উদাহরণ প্রদান করেন এবং উদাহরণগুলির সম্পত্তির ক্রম স্কিমার সম্পত্তি ক্রমানুসারের সাথে সামঞ্জস্যপূর্ণ না হয়, তাহলে আউটপুট র্যাম্বলিং বা অপ্রত্যাশিত হতে পারে।
বৈশিষ্ট্যগুলির একটি সামঞ্জস্যপূর্ণ, অনুমানযোগ্য ক্রম নিশ্চিত করতে, আপনি ঐচ্ছিক propertyOrdering[]
ক্ষেত্রটি ব্যবহার করতে পারেন।
"propertyOrdering": ["recipe_name", "ingredients"]
propertyOrdering[]
- OpenAPI স্পেসিফিকেশনে একটি আদর্শ ক্ষেত্র নয় - প্রতিক্রিয়ায় বৈশিষ্ট্যের ক্রম নির্ধারণ করতে ব্যবহৃত স্ট্রিংগুলির একটি অ্যারে। বৈশিষ্ট্যের ক্রম নির্দিষ্ট করে এবং তারপর একই ক্রমে বৈশিষ্ট্য সহ উদাহরণ প্রদান করে, আপনি সম্ভাব্য ফলাফলের গুণমান উন্নত করতে পারেন।