চিন্তার স্বাক্ষর হল মডেলের অভ্যন্তরীণ চিন্তা প্রক্রিয়ার এনক্রিপ্ট করা উপস্থাপনা এবং বহু-পালা মিথস্ক্রিয়া জুড়ে যুক্তির প্রেক্ষাপট সংরক্ষণ করতে ব্যবহৃত হয়। চিন্তার মডেল (যেমন জেমিনি 3 এবং 2.5 সিরিজ) ব্যবহার করার সময়, API প্রতিক্রিয়ার বিষয়বস্তু অংশের মধ্যে একটি thoughtSignature ক্ষেত্র ফেরত দিতে পারে (যেমন, text বা functionCall অংশ)।
সাধারণ নিয়ম হিসেবে, যদি আপনি একটি মডেল প্রতিক্রিয়ায় একটি চিন্তার স্বাক্ষর পান, তাহলে পরবর্তী সময়ে কথোপকথনের ইতিহাস পাঠানোর সময় ঠিক যেমনটি পেয়েছিলেন ঠিক তেমনই এটি ফেরত পাঠানো উচিত। জেমিনি 3 প্রো ব্যবহার করার সময়, ফাংশন কলিংয়ের সময় আপনাকে অবশ্যই চিন্তার স্বাক্ষর ফেরত দিতে হবে, অন্যথায় আপনি একটি বৈধতা ত্রুটি (4xx স্ট্যাটাস কোড) পাবেন ।
কিভাবে এটা কাজ করে
নিচের গ্রাফিকটি জেমিনি এপিআই-তে ফাংশন কলিংয়ের সাথে সম্পর্কিত "টার্ন" এবং "স্টেপ" এর অর্থ কল্পনা করে। একটি "টার্ন" হল একজন ব্যবহারকারী এবং একটি মডেলের মধ্যে কথোপকথনের একটি একক, সম্পূর্ণ বিনিময়। একটি "স্টেপ" হল মডেল দ্বারা সম্পাদিত একটি সূক্ষ্ম ক্রিয়া বা ক্রিয়াকলাপ, প্রায়শই একটি টার্ন সম্পূর্ণ করার জন্য একটি বৃহত্তর প্রক্রিয়ার অংশ হিসাবে।

এই নথিটি জেমিনি 3 প্রো-এর ফাংশন কলিং পরিচালনার উপর আলোকপাত করে। 2.5 এর সাথে অসঙ্গতির জন্য মডেল আচরণ বিভাগটি দেখুন।
জেমিনি ৩ প্রো একটি ফাংশন কলের মাধ্যমে সমস্ত মডেল প্রতিক্রিয়ার (API থেকে প্রতিক্রিয়া) জন্য চিন্তার স্বাক্ষর প্রদান করে। নিম্নলিখিত ক্ষেত্রে চিন্তার স্বাক্ষর দেখা যায়:
- যখন সমান্তরাল ফাংশন কল থাকে, তখন মডেল রেসপন্স দ্বারা প্রদত্ত প্রথম ফাংশন কল অংশে একটি চিন্তার স্বাক্ষর থাকবে।
- যখন ক্রমিক ফাংশন কল (মাল্টি-স্টেপ) থাকে, তখন প্রতিটি ফাংশন কলের একটি স্বাক্ষর থাকবে এবং আপনাকে অবশ্যই সমস্ত স্বাক্ষর ফেরত পাঠাতে হবে।
- ফাংশন কল ছাড়া মডেলের প্রতিক্রিয়াগুলি মডেল দ্বারা প্রদত্ত শেষ অংশের ভিতরে একটি চিন্তার স্বাক্ষর প্রদান করবে।
নিচের টেবিলটি মাল্টি-স্টেপ ফাংশন কলের জন্য একটি ভিজ্যুয়ালাইজেশন প্রদান করে, যা উপরে প্রবর্তিত স্বাক্ষরের ধারণার সাথে টার্ন এবং ধাপের সংজ্ঞা একত্রিত করে:
পালা | ধাপ | ব্যবহারকারীর অনুরোধ | মডেল প্রতিক্রিয়া | ফাংশন রেসপন্স |
১ | ১ | request1 = user_prompt | FC1 + signature | FR1 |
১ | ২ | request2 = request1 + (FC1 + signature) + FR1 | FC2 + signature | FR2 |
১ | ৩ | request3 = request2 + (FC2 + signature) + FR2 | text_output(কোনও এফসি নেই) | কোনটিই নয় |
ফাংশন কলিং অংশগুলিতে স্বাক্ষর
যখন জেমিনি একটি functionCall তৈরি করে, তখন পরবর্তী সময়ে টুলের আউটপুট সঠিকভাবে প্রক্রিয়া করার জন্য এটি thought_signature এর উপর নির্ভর করে।
- আচরণ :
- একক ফাংশন কল :
functionCallঅংশে একটিthought_signatureথাকবে। - সমান্তরাল ফাংশন কল : যদি মডেলটি একটি প্রতিক্রিয়ায় সমান্তরাল ফাংশন কল তৈরি করে, তাহলে
thought_signatureশুধুমাত্র প্রথমfunctionCallঅংশের সাথে সংযুক্ত থাকে। একই প্রতিক্রিয়ার পরবর্তীfunctionCallঅংশগুলিতে কোনও স্বাক্ষর থাকবে না ।
- একক ফাংশন কল :
- প্রয়োজনীয়তা : কথোপকথনের ইতিহাস ফেরত পাঠানোর সময় আপনাকে অবশ্যই এই স্বাক্ষরটি ঠিক সেই অংশে ফেরত দিতে হবে যেখানে এটি গৃহীত হয়েছিল।
- ভ্যালিডেশন : বর্তমান টার্নের মধ্যে সমস্ত ফাংশন কলের জন্য কঠোর ভ্যালিডেশন প্রয়োগ করা হয়। (শুধুমাত্র বর্তমান টার্ন প্রয়োজন; আমরা পূর্ববর্তী টার্নগুলিতে ভ্যালিডেশন করি না)
- API ইতিহাসে ফিরে যায় (নতুন থেকে পুরাতন) যাতে স্ট্যান্ডার্ড কন্টেন্ট (যেমন,
text) ধারণকারী সাম্প্রতিকতম ব্যবহারকারীর বার্তা খুঁজে পাওয়া যায় (যা বর্তমান পালা শুরু করবে)। এটি একটিfunctionResponseহবে না। - নির্দিষ্ট ব্যবহারের বার্তার পরে ঘটে যাওয়া সমস্ত মডেল
functionCallটার্নগুলিকে টার্নের অংশ হিসাবে বিবেচনা করা হয়। - বর্তমান মোড়ের প্রতিটি ধাপে প্রথম
functionCallঅংশে অবশ্যই তারthought_signatureঅন্তর্ভুক্ত থাকতে হবে। - যদি আপনি বর্তমান মোড়ের যেকোনো ধাপে প্রথম
functionCallঅংশের জন্য একটিthought_signatureবাদ দেন, তাহলে অনুরোধটি 400 ত্রুটির সাথে ব্যর্থ হবে।
- API ইতিহাসে ফিরে যায় (নতুন থেকে পুরাতন) যাতে স্ট্যান্ডার্ড কন্টেন্ট (যেমন,
- যদি সঠিক স্বাক্ষর ফেরত না দেওয়া হয়, তাহলে আপনি কীভাবে ত্রুটি করবেন তা এখানে দেওয়া হল
-
gemini-3-pro-preview: স্বাক্ষর অন্তর্ভুক্ত করতে ব্যর্থ হলে 400 ত্রুটি দেখা দেবে। শব্দের ব্যবহার এই রকম হবে:-
<index of contents array>content ব্লকে<Function Call>ফাংশন কলে একটিthought_signatureঅনুপস্থিত। উদাহরণস্বরূপ,1.content ব্লকেFC1ফাংশন কলে একটিthought_signatureঅনুপস্থিত।
-
-
সিকোয়েনশিয়াল ফাংশন কলিং উদাহরণ
এই বিভাগটি একাধিক ফাংশন কলের একটি উদাহরণ দেখায় যেখানে ব্যবহারকারী একাধিক কাজের জন্য একটি জটিল প্রশ্ন জিজ্ঞাসা করে।
চলুন একটি মাল্টিপল-টার্ন ফাংশন কলিং উদাহরণ দেখি যেখানে ব্যবহারকারী একটি জটিল প্রশ্ন জিজ্ঞাসা করে যার জন্য একাধিক কাজের প্রয়োজন হয়: "Check flight status for AA100 and book a taxi if delayed" ।
পালা | ধাপ | ব্যবহারকারীর অনুরোধ | মডেল প্রতিক্রিয়া | ফাংশন রেসপন্স |
১ | ১ | request1="Check flight status for AA100 and book a taxi 2 hours before if delayed." | FC1 ("check_flight") + signature | FR1 |
১ | ২ | request2 = request1 + FC1 ("check_flight") + signature + FR1 | FC2("book_taxi") + signature | FR2 |
১ | ৩ | request3 = request2 + FC2 ("book_taxi") + signature + FR2 | text_output(কোনও এফসি নেই) | None |
নিচের কোডটি উপরের টেবিলের ক্রমটি চিত্রিত করে।
১ম ধাপ, ১ম ধাপ (ব্যবহারকারীর অনুরোধ)
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Check flight status for AA100 and book a taxi 2 hours before if delayed."
}
]
}
],
"tools": [
{
"functionDeclarations": [
{
"name": "check_flight",
"description": "Gets the current status of a flight",
"parameters": {
"type": "object",
"properties": {
"flight": {
"type": "string",
"description": "The flight number to check"
}
},
"required": [
"flight"
]
}
},
{
"name": "book_taxi",
"description": "Book a taxi",
"parameters": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "time to book the taxi"
}
},
"required": [
"time"
]
}
}
]
}
]
}
পালা ১, ধাপ ১ (মডেল প্রতিক্রিয়া)
{
"content": {
"role": "model",
"parts": [
{
"functionCall": {
"name": "check_flight",
"args": {
"flight": "AA100"
}
},
"thoughtSignature": "<Signature A>"
}
]
}
}
পালা ১, ধাপ ২ (ব্যবহারকারীর প্রতিক্রিয়া - সরঞ্জামের আউটপুট পাঠানো) যেহেতু এই ব্যবহারকারীর পালাটিতে কেবল একটি functionResponse রয়েছে (কোনও নতুন লেখা নেই), আমরা এখনও পালা ১-এ আছি। আমাদের অবশ্যই <Signature_A> সংরক্ষণ করতে হবে।
{
"role": "user",
"parts": [
{
"text": "Check flight status for AA100 and book a taxi 2 hours before if delayed."
}
]
},
{
"role": "model",
"parts": [
{
"functionCall": {
"name": "check_flight",
"args": {
"flight": "AA100"
}
},
"thoughtSignature": "<Signature A>" //Required and Validated
}
]
},
{
"role": "user",
"parts": [
{
"functionResponse": {
"name": "check_flight",
"response": {
"status": "delayed",
"departure_time": "12 PM"
}
}
}
]
}
পালা ১, ধাপ ২ (মডেল) মডেলটি এখন পূর্ববর্তী টুল আউটপুটের উপর ভিত্তি করে একটি ট্যাক্সি বুক করার সিদ্ধান্ত নেয়।
{
"content": {
"role": "model",
"parts": [
{
"functionCall": {
"name": "book_taxi",
"args": {
"time": "10 AM"
}
},
"thoughtSignature": "<Signature B>"
}
]
}
}
১ম ধাপ, ধাপ ৩ (ব্যবহারকারী - পাঠানোর সরঞ্জাম আউটপুট) ট্যাক্সি বুকিং নিশ্চিতকরণ পাঠাতে, আমাদের এই লুপে সমস্ত ফাংশন কলের জন্য স্বাক্ষর অন্তর্ভুক্ত করতে হবে ( <Signature A> + <Signature B> )।
{
"role": "user",
"parts": [
{
"text": "Check flight status for AA100 and book a taxi 2 hours before if delayed."
}
]
},
{
"role": "model",
"parts": [
{
"functionCall": {
"name": "check_flight",
"args": {
"flight": "AA100"
}
},
"thoughtSignature": "<Signature A>" //Required and Validated
}
]
},
{
"role": "user",
"parts": [
{
"functionResponse": {
"name": "check_flight",
"response": {
"status": "delayed",
"departure_time": "12 PM"
}
}
}
]
},
{
"role": "model",
"parts": [
{
"functionCall": {
"name": "book_taxi",
"args": {
"time": "10 AM"
}
},
"thoughtSignature": "<Signature B>" //Required and Validated
}
]
},
{
"role": "user",
"parts": [
{
"functionResponse": {
"name": "book_taxi",
"response": {
"booking_status": "success"
}
}
}
]
}
}
সমান্তরাল ফাংশন কলিং উদাহরণ
চলুন একটি সমান্তরাল ফাংশন কলিং উদাহরণ দেখি যেখানে ব্যবহারকারীরা "Check weather in Paris and London" জিজ্ঞাসা করে মডেলটি কোথায় যাচাই করে তা দেখতে।
পালা | ধাপ | ব্যবহারকারীর অনুরোধ | মডেল প্রতিক্রিয়া | ফাংশন রেসপন্স |
|---|---|---|---|---|
১ | ১ | request1="প্যারিস এবং লন্ডনের আবহাওয়া দেখুন" | FC1 ("প্যারিস") + স্বাক্ষর FC2 ("লন্ডন") | FR1 সম্পর্কে |
১ | ২ | অনুরোধ ২ = অনুরোধ১ + FC1 ("প্যারিস") + স্বাক্ষর + FC2 ("লন্ডন") | টেক্সট_আউটপুট (কোনও এফসি নেই) | কোনটিই নয় |
নিচের কোডটি উপরের টেবিলের ক্রমটি চিত্রিত করে।
১ম ধাপ, ১ম ধাপ (ব্যবহারকারীর অনুরোধ)
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Check the weather in Paris and London."
}
]
}
],
"tools": [
{
"functionDeclarations": [
{
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name, e.g. San Francisco"
}
},
"required": [
"location"
]
}
}
]
}
]
}
পালা ১, ধাপ ১ (মডেল প্রতিক্রিয়া)
{
"content": {
"parts": [
{
"functionCall": {
"name": "get_current_temperature",
"args": {
"location": "Paris"
}
},
"thoughtSignature": "<Signature_A>"// INCLUDED on First FC
},
{
"functionCall": {
"name": "get_current_temperature",
"args": {
"location": "London"
}// NO signature on subsequent parallel FCs
}
}
]
}
}
১ম ধাপ, ধাপ ২ (ব্যবহারকারীর প্রতিক্রিয়া - সরঞ্জামের আউটপুট পাঠানো) আমাদের অবশ্যই প্রথম অংশে <Signature_A> ঠিক যেমনটি প্রাপ্ত হয়েছে তেমন সংরক্ষণ করতে হবে।
[
{
"role": "user",
"parts": [
{
"text": "Check the weather in Paris and London."
}
]
},
{
"role": "model",
"parts": [
{
"functionCall": {
"name": "get_current_temperature",
"args": {
"city": "Paris"
}
},
"thought_signature": "<Signature_A>" // MUST BE INCLUDED
},
{
"functionCall": {
"name": "get_current_temperature",
"args": {
"city": "London"
}
}
} // NO SIGNATURE FIELD
]
},
{
"role": "user",
"parts": [
{
"functionResponse": {
"name": "get_current_temperature",
"response": {
"temp": "15C"
}
}
},
{
"functionResponse": {
"name": "get_current_temperature",
"response": {
"temp": "12C"
}
}
}
]
}
]
অ- functionCall অংশগুলিতে স্বাক্ষর
জেমিনি নন-ফাংশন-কল অংশগুলিতে প্রতিক্রিয়ার শেষ অংশে thought_signatures ও ফেরত দিতে পারে।
- আচরণ : মডেল দ্বারা ফেরত দেওয়া চূড়ান্ত কন্টেন্ট অংশে (
text, inlineData…) একটিthought_signatureথাকতে পারে। - সুপারিশ : মডেলটি উচ্চমানের যুক্তি বজায় রাখার জন্য, বিশেষ করে জটিল নির্দেশনা অনুসরণ বা সিমুলেটেড এজেন্টিক কর্মপ্রবাহের জন্য, এই স্বাক্ষরগুলি ফেরত দেওয়ার পরামর্শ দেওয়া হচ্ছে।
- বৈধকরণ : API কঠোরভাবে বৈধকরণ প্রয়োগ করে না । আপনি যদি এগুলি বাদ দেন তবে আপনি কোনও ব্লকিং ত্রুটি পাবেন না, যদিও কর্মক্ষমতা হ্রাস পেতে পারে।
টেক্সট/ইন-কনটেক্সট যুক্তি (কোনও বৈধতা নেই)
পালা ১, ধাপ ১ (মডেল প্রতিক্রিয়া)
{
"role": "model",
"parts": [
{
"text": "I need to calculate the risk. Let me think step-by-step...",
"thought_signature": "<Signature_C>" // OPTIONAL (Recommended)
}
]
}
দ্বিতীয় পালা, প্রথম ধাপ (ব্যবহারকারী)
[
{ "role": "user", "parts": [{ "text": "What is the risk?" }] },
{
"role": "model",
"parts": [
{
"text": "I need to calculate the risk. Let me think step-by-step...",
// If you omit <Signature_C> here, no error will occur.
}
]
},
{ "role": "user", "parts": [{ "text": "Summarize it." }] }
]
OpenAI সামঞ্জস্যের জন্য স্বাক্ষর
নিম্নলিখিত উদাহরণগুলি দেখায় যে OpenAI সামঞ্জস্য ব্যবহার করে চ্যাট সমাপ্তির API-এর জন্য চিন্তার স্বাক্ষরগুলি কীভাবে পরিচালনা করতে হয়।
সিকোয়েনশিয়াল ফাংশন কলিং উদাহরণ
এটি একাধিক ফাংশন কলিংয়ের একটি উদাহরণ যেখানে ব্যবহারকারী একাধিক কাজের জন্য একটি জটিল প্রশ্ন জিজ্ঞাসা করে।
চলুন একটি মাল্টিপল-টার্ন ফাংশন কলিং উদাহরণ দেখি যেখানে ব্যবহারকারী জিজ্ঞাসা করে Check flight status for AA100 and book a taxi if delayed এবং আপনি দেখতে পাবেন যখন ব্যবহারকারী একাধিক কাজের জন্য একটি জটিল প্রশ্ন জিজ্ঞাসা করেন তখন কী ঘটে।
পালা | ধাপ | ব্যবহারকারীর অনুরোধ | মডেল প্রতিক্রিয়া | ফাংশন রেসপন্স |
১ | ১ | request1="Check the weather in Paris and London" | FC1 ("Paris") + signatureFC2 ("লন্ডন") | FR1 |
১ | ২ | request 2 = request1 + FC1 ("Paris") + signature + FC2 ("London") | text_output(কোনও এফসি নেই) | None |
নিম্নলিখিত কোডটি প্রদত্ত ক্রম অনুসারে চলে।
১ম ধাপ, ১ম ধাপ (ব্যবহারকারীর অনুরোধ)
{
"model": "google/gemini-3-pro-preview",
"messages": [
{
"role": "user",
"content": "Check flight status for AA100 and book a taxi 2 hours before if delayed."
}
],
"tools": [
{
"type": "function",
"function": {
"name": "check_flight",
"description": "Gets the current status of a flight",
"parameters": {
"type": "object",
"properties": {
"flight": {
"type": "string",
"description": "The flight number to check."
}
},
"required": [
"flight"
]
}
}
},
{
"type": "function",
"function": {
"name": "book_taxi",
"description": "Book a taxi",
"parameters": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "time to book the taxi"
}
},
"required": [
"time"
]
}
}
}
]
}
১ম পালা, ১ম ধাপ (মডেল প্রতিক্রিয়া)
{
"role": "model",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature A>"
}
},
"function": {
"arguments": "{\"flight\":\"AA100\"}",
"name": "check_flight"
},
"id": "function-call-1",
"type": "function"
}
]
}
পালা ১, ধাপ ২ (ব্যবহারকারীর প্রতিক্রিয়া - পাঠানোর সরঞ্জামের আউটপুট)
যেহেতু এই ব্যবহারকারীর পালাটিতে শুধুমাত্র একটি functionResponse রয়েছে (কোনও নতুন লেখা নেই), আমরা এখনও পালা 1 তে আছি এবং আমাদের অবশ্যই <Signature_A> সংরক্ষণ করতে হবে।
"messages": [
{
"role": "user",
"content": "Check flight status for AA100 and book a taxi 2 hours before if delayed."
},
{
"role": "model",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature A>" //Required and Validated
}
},
"function": {
"arguments": "{\"flight\":\"AA100\"}",
"name": "check_flight"
},
"id": "function-call-1",
"type": "function"
}
]
},
{
"role": "tool",
"name": "check_flight",
"tool_call_id": "function-call-1",
"content": "{\"status\":\"delayed\",\"departure_time\":\"12 PM\"}"
}
]
১ম পালা, ধাপ ২ (মডেল)
মডেলটি এখন পূর্ববর্তী টুল আউটপুটের উপর ভিত্তি করে একটি ট্যাক্সি বুক করার সিদ্ধান্ত নেয়।
{
"role": "model",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature B>"
}
},
"function": {
"arguments": "{\"time\":\"10 AM\"}",
"name": "book_taxi"
},
"id": "function-call-2",
"type": "function"
}
]
}
পালা ১, ধাপ ৩ (ব্যবহারকারী - প্রেরণ সরঞ্জাম আউটপুট)
ট্যাক্সি বুকিং নিশ্চিতকরণ পাঠাতে, আমাদের এই লুপে সমস্ত ফাংশন কলের জন্য স্বাক্ষর অন্তর্ভুক্ত করতে হবে ( <Signature A> + <Signature B> )।
"messages": [
{
"role": "user",
"content": "Check flight status for AA100 and book a taxi 2 hours before if delayed."
},
{
"role": "model",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature A>" //Required and Validated
}
},
"function": {
"arguments": "{\"flight\":\"AA100\"}",
"name": "check_flight"
},
"id": "function-call-1d6a1a61-6f4f-4029-80ce-61586bd86da5",
"type": "function"
}
]
},
{
"role": "tool",
"name": "check_flight",
"tool_call_id": "function-call-1d6a1a61-6f4f-4029-80ce-61586bd86da5",
"content": "{\"status\":\"delayed\",\"departure_time\":\"12 PM\"}"
},
{
"role": "model",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature B>" //Required and Validated
}
},
"function": {
"arguments": "{\"time\":\"10 AM\"}",
"name": "book_taxi"
},
"id": "function-call-65b325ba-9b40-4003-9535-8c7137b35634",
"type": "function"
}
]
},
{
"role": "tool",
"name": "book_taxi",
"tool_call_id": "function-call-65b325ba-9b40-4003-9535-8c7137b35634",
"content": "{\"booking_status\":\"success\"}"
}
]
সমান্তরাল ফাংশন কলিং উদাহরণ
চলুন একটি সমান্তরাল ফাংশন কলিং উদাহরণ দেখি যেখানে ব্যবহারকারীরা "Check weather in Paris and London" জিজ্ঞাসা করে এবং আপনি দেখতে পাবেন মডেলটি কোথায় যাচাই করে।
পালা | ধাপ | ব্যবহারকারীর অনুরোধ | মডেল প্রতিক্রিয়া | ফাংশন রেসপন্স |
১ | ১ | request1="Check the weather in Paris and London" | FC1 ("Paris") + signatureFC2 ("লন্ডন") | FR1 |
১ | ২ | request 2 = request1 + FC1 ("Paris") + signature + FC2 ("London") | text_output(কোনও এফসি নেই) | None |
প্রদত্ত ক্রমটি দেখার জন্য কোডটি এখানে।
১ম ধাপ, ১ম ধাপ (ব্যবহারকারীর অনুরোধ)
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Check the weather in Paris and London."
}
]
}
],
"tools": [
{
"functionDeclarations": [
{
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name, e.g. San Francisco"
}
},
"required": [
"location"
]
}
}
]
}
]
}
১ম পালা, ১ম ধাপ (মডেল প্রতিক্রিয়া)
{
"role": "assistant",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature A>" //Signature returned
}
},
"function": {
"arguments": "{\"location\":\"Paris\"}",
"name": "get_current_temperature"
},
"id": "function-call-f3b9ecb3-d55f-4076-98c8-b13e9d1c0e01",
"type": "function"
},
{
"function": {
"arguments": "{\"location\":\"London\"}",
"name": "get_current_temperature"
},
"id": "function-call-335673ad-913e-42d1-bbf5-387c8ab80f44",
"type": "function" // No signature on Parallel FC
}
]
}
পালা ১, ধাপ ২ (ব্যবহারকারীর প্রতিক্রিয়া - পাঠানোর সরঞ্জামের আউটপুট)
আপনাকে অবশ্যই প্রথম অংশে <Signature_A> ঠিক যেমনটি প্রাপ্ত হয়েছে তেমন সংরক্ষণ করতে হবে।
"messages": [
{
"role": "user",
"content": "Check the weather in Paris and London."
},
{
"role": "assistant",
"tool_calls": [
{
"extra_content": {
"google": {
"thought_signature": "<Signature A>" //Required
}
},
"function": {
"arguments": "{\"location\":\"Paris\"}",
"name": "get_current_temperature"
},
"id": "function-call-f3b9ecb3-d55f-4076-98c8-b13e9d1c0e01",
"type": "function"
},
{
"function": { //No Signature
"arguments": "{\"location\":\"London\"}",
"name": "get_current_temperature"
},
"id": "function-call-335673ad-913e-42d1-bbf5-387c8ab80f44",
"type": "function"
}
]
},
{
"role":"tool",
"name": "get_current_temperature",
"tool_call_id": "function-call-f3b9ecb3-d55f-4076-98c8-b13e9d1c0e01",
"content": "{\"temp\":\"15C\"}"
},
{
"role":"tool",
"name": "get_current_temperature",
"tool_call_id": "function-call-335673ad-913e-42d1-bbf5-387c8ab80f44",
"content": "{\"temp\":\"12C\"}"
}
]
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
বর্তমান টার্ন এবং স্টেপে ফাংশন কল পার্ট ব্যবহার করে আমি কীভাবে অন্য মডেল থেকে জেমিনি 3 প্রোতে ইতিহাস স্থানান্তর করব? আমাকে এমন ফাংশন কল পার্টস প্রদান করতে হবে যা API দ্বারা তৈরি করা হয়নি এবং তাই তাদের কোনও সম্পর্কিত চিন্তার স্বাক্ষর নেই?
অনুরোধে কাস্টম ফাংশন কল ব্লক ইনজেক্ট করা কঠোরভাবে নিরুৎসাহিত করা হলেও, যেখানে এটি এড়ানো যায় না, যেমন ক্লায়েন্ট দ্বারা নির্ধারিতভাবে কার্যকর করা ফাংশন কল এবং প্রতিক্রিয়া সম্পর্কে মডেলকে তথ্য প্রদান করা, অথবা চিন্তার স্বাক্ষর অন্তর্ভুক্ত না করে এমন একটি ভিন্ন মডেল থেকে একটি ট্রেস স্থানান্তর করা, আপনি বৈধতা এড়িয়ে যাওয়ার জন্য চিন্তার স্বাক্ষর ক্ষেত্রে
"context_engineering_is_the_way_to_go"অথবা"skip_thought_signature_validator"এর নিম্নলিখিত ডামি স্বাক্ষর সেট করতে পারেন।আমি ইন্টারলিভড প্যারালাল ফাংশন কল এবং রেসপন্স ফেরত পাঠাচ্ছি এবং API 400 ফেরত দিচ্ছে। কেন?
যখন API সমান্তরাল ফাংশন কল "FC1 + স্বাক্ষর, FC2" ফেরত দেয়, তখন ব্যবহারকারীর প্রত্যাশিত প্রতিক্রিয়া হবে "FC1+ স্বাক্ষর, FC2, FR1, FR2"। যদি আপনি এগুলিকে "FC1 + স্বাক্ষর, FR1, FC2, FR2" হিসাবে ইন্টারলিভ করেন তবে API একটি 400 ত্রুটি ফেরত দেবে।
যখন স্ট্রিমিং হচ্ছে এবং মডেলটি কোনও ফাংশন কল ফেরত দিচ্ছে না, তখন আমি চিন্তার স্বাক্ষর খুঁজে পাচ্ছি না।
স্ট্রিমিং অনুরোধের সাথে FC না থাকা মডেল প্রতিক্রিয়ার সময়, মডেলটি খালি টেক্সট কন্টেন্ট অংশ সহ চিন্তার স্বাক্ষরটি ফেরত দিতে পারে। মডেল দ্বারা
finish_reasonফেরত না দেওয়া পর্যন্ত সম্পূর্ণ অনুরোধটি বিশ্লেষণ করার পরামর্শ দেওয়া হয়।
মডেল সিরিজ অনুসারে চিন্তার স্বাক্ষর আচরণ
ফাংশন কলে জেমিনি ৩ প্রো এবং জেমিনি ২.৫ মডেলের চিন্তাভাবনা ভিন্নভাবে কাজ করে:
- যদি কোনও প্রতিক্রিয়ায় ফাংশন কল থাকে,
- জেমিনি ৩ প্রো-এর প্রথম ফাংশন কল অংশে সর্বদা স্বাক্ষর থাকবে। সেই অংশটি ফেরত দেওয়া বাধ্যতামূলক ।
- জেমিনি ২.৫ এর প্রথম অংশে স্বাক্ষর থাকবে (প্রকার নির্বিশেষে)। সেই অংশটি ফেরত দেওয়া ঐচ্ছিক ।
- যদি কোনও প্রতিক্রিয়ায় কোনও ফাংশন কল না থাকে,
- যদি মডেলটি কোনও চিন্তাভাবনা তৈরি করে, তাহলে জেমিনি 3 প্রো-এর শেষ অংশে স্বাক্ষর থাকবে।
- জেমিনি ২.৫ এর কোনও অংশেই স্বাক্ষর থাকবে না।
জেমিনি ২.৫ মডেলের চিন্তাভাবনার স্বাক্ষর আচরণের জন্য, চিন্তাভাবনা পৃষ্ঠাটি দেখুন।