সংক্ষিপ্ত উত্তর
Whizi কোনো context limit error দেখায় না। প্রোডাক্টের কোনো স্ট্রিং কোনো context window বা টোকেন লিমিটের কথা বলে না, কারণ একটা কথোপকথন যা মডেলের ধারণক্ষমতা ছাড়িয়ে যায় তা প্রত্যাখ্যান না করে রিকোয়েস্ট পাঠানোর আগে ছেঁটে ফিট করে দেওয়া হয়। এটা ঘটেছে সেটা কিছুই জানায় না। মডেল যদি একটা লম্বা চ্যাটের মাঝের অংশ ভুলে গেছে বলে মনে হয়, আপনি ঠিক এটাই দেখছেন।
চারটা জিনিস আপনাকে সরাসরি প্রত্যাখ্যান করে, আর প্রতিটা নিজের নাম বলে দেয়:
| বার্তা | HTTP কোড | ট্রিগার |
|---|---|---|
This message is {count} characters, over the 100,000 character limit. Attach a shorter file, or ask about one section at a time. | 400 message_too_long | একটা মেসেজ, আপনার ফাইল থেকে বের করা টেক্সটসহ, 100,000 ক্যারেক্টারের বেশি |
This conversation has {count} messages, over the 100 message limit. | 400 too_many_messages | একটা একক রিকোয়েস্ট 100টার বেশি মেসেজের একটা ট্রান্সক্রিপ্ট বহন করেছে |
Request is too large. | 413 request_too_large | পুরো JSON রিকোয়েস্ট বডি রুট বাইট ক্যাপ ছাড়িয়ে গেছে |
That system prompt is missing or over the 32,000 character limit. | 400 invalid_system_prompt | 32,000 ক্যারেক্টারের বেশি একটা সিস্টেম প্রম্পট |
ক্যারেক্টার লিমিট স্ট্রিংয়ের {count} আপনার আসল সংখ্যা দিয়ে পূরণ করা হয়, হাজার বিভাজকসহ ফরম্যাট করা। প্রতিটা স্ট্রিংয়ের পাশের কোডটা একটা নেটওয়ার্ক ট্রেসে দেখা যায়, এমনকি যখন ইন্টারফেস আপনাকে শুধু বাক্যটাই দেখায়।
আপনি যদি একটা মেসেজ দেখে থাকেন যা একটা context length বা টোকেন কাউন্টের নাম বলে, সেটা Whizi থেকে আসেনি। শেষ সেকশনে চলে যান।
প্রতিটা মডেল যে বাজেট পায়, আর এর পরে কী হয়
ক্যাটালগের প্রতিটা মডেল একটা টার্নের জন্য একই বাজেট পায়: 40,000 ইনপুট টোকেন আর 20,000 আউটপুট টোকেন। Canadian CPA agent একমাত্র ব্যতিক্রম, 55,000 ইনপুট টোকেন আর 40,000 আউটপুট টোকেনে।
একটা কথোপকথন যখন সেই বাজেট ছাড়িয়ে যায়, ব্যাকএন্ড প্রত্যাখ্যান না করে চুপচাপ ইতিহাসকে মডেলের টোকেন বাজেটে ছেঁটে ফেলে। এর জন্য কোনো toast, কোনো ব্যানার বা কোনো এরর কোড নেই।
যে টোকেন কাউন্টের বিপরীতে Whizi ছাঁটে সেটা একটা আসল টোকেনাইজার নয়, বরং একটা অনুমান। এটা JSON-এ একটা আসল টোকেনাইজারকে 1.66 গুণ পর্যন্ত কম গুনতে পারে, তাই সবচেয়ে খারাপ পরিমাপ করা কেসটা কভার করতে ইনপুটে 1.8 গুণের একটা ভাতা প্রয়োগ করা হয়।
একটা বড় context মডেলে সুইচ করলে বেশি পাঠানো হয় না
এটাই সবচেয়ে সাধারণ ভুল সমাধান। 40,000 টোকেনের ইনপুট বাজেট ফ্ল্যাট: এটা একটা এক মিলিয়ন টোকেন উইন্ডোওয়ালা মডেলে যা, একটা 200,000 টোকেন উইন্ডোওয়ালা মডেলেও তাই। একটা লম্বা কথোপকথনকে এক বড়-উইন্ডো মডেল থেকে আরেকটাতে সরালে এর কতটুকু পাঠানো হয় তাতে কিছুই বদলায় না।
Context window size কেবল একদিকেই বাজেট বদলায়, নিচের দিকে। যে কোনো মডেলের উইন্ডো 93,000 টোকেনের নিচে থাকলে সেটা ফ্ল্যাট বাজেটের বদলে একটা ছোট, আনুপাতিক বাজেট পায়, যেখানে আউটপুট উইন্ডোর 40 শতাংশে ক্যাপ করা আর 1,000 টোকেনের একটা নিরাপত্তা মার্জিন ধরে রাখা হয়। ক্যাটালগের 31টা মডেল এভাবে ক্ল্যাম্প করা, আর এদের মধ্যে সবচেয়ে ছোট উইন্ডো 6,144 টোকেন।
তাই যে সুইচটা আসলে কাজে দেয় সেটা লোকেরা যা চেষ্টা করে তার উল্টো: একটা ছোট, ক্ল্যাম্প করা মডেল থেকে সরে একটা সাধারণ মডেলে যাওয়া। দুটো বড়-উইন্ডো মডেলের মধ্যে সরানো দৈর্ঘ্যের উপর কোনো প্রভাব ফেলে না এমন একটা পরিবর্তন। মাঝ-কথোপকথনে সুইচ করা কীভাবে কাজ করে তা switching models mid-conversation-এ কভার করা আছে।
93,000 সংখ্যাটার পেছনের একটা বিস্তারিত বিষয়, জানার মতো যদি আপনি ভাবছেন কেন একটা মডেল ছোট কিছু প্রত্যাখ্যান করল: OpenRouter একটা মডেল উইন্ডোর বিপরীতে শুধু ইনপুট নয়, ইনপুট প্লাস অনুরোধ করা সর্বোচ্চ আউটপুট গোনে।
একটা লম্বা আপলোড কাটা হয়, আর এটা আপনাকে জানায়
আপলোডগুলোই সাধারণত কারণ যে একটা একক মেসেজ 100,000 ক্যারেক্টার ছাড়িয়ে যায়, কারণ PDF, Word আর স্প্রেডশিট ফাইল আপনার ব্রাউজারে টেক্সটে এক্সট্র্যাক্ট করা হয় আর সেই টেক্সট আপনি যা টাইপ করেছেন তার মতোই একই ক্যাপের বিপরীতে গোনা হয়।
এক্সট্র্যাক্ট করা টেক্সট যখন ফিট করে না, প্রত্যাখ্যান না করে সেটা ছেঁটে ফেলা হয়, আর দুটো স্ট্রিং দেখা যায়। toast-এ লেখা থাকে Your upload was too large, so only the first part of it was sent. Ask about a smaller section for full coverage. মেসেজটা নিজেই কাটার জায়গায় [Attachment truncated: the upload was larger than one message can carry, so the content past this point was not included.] মার্কারটা বহন করে, যাতে মডেল দেখতে পায় এর কপি কোথায় থামে।
যদি মেসেজটা ছাঁটার বদলে প্রত্যাখ্যান করা হয়, আপনি প্রথম টেবিলের message_too_long স্ট্রিংটা পাবেন। সমাধানটা এররটা নিজেই যা বলে সেটাই: একটা ছোট ফাইল অ্যাটাচ করুন, বা একবারে একটা সেকশন সম্পর্কে জিজ্ঞাসা করুন।
আরেকটা আচরণ যা ভুলে যাওয়া বলে মনে হয়: শুধু অ্যাটাচমেন্ট বহনকারী সবচেয়ে সাম্প্রতিক ইউজার মেসেজের অ্যাটাচমেন্টগুলোই মডেলে পাঠানো হয়। দশটা টার্ন আগে আপনি যে ছবি বা PDF অ্যাটাচ করেছিলেন সেটা পরবর্তী প্রতিটা টার্নে আবার পাঠানো হয় না। মডেলকে এটা আবার দেখাতে হলে, আবার অ্যাটাচ করুন। Whizi কী গ্রহণ করে আর এক্সট্র্যাকশন কীভাবে কাজ করে তা supported file types-এ আছে।
একটা খরচের নোট, যেহেতু দৈর্ঘ্য একটা টার্নের মূল্য বদলে দেয়। Auto-তে, প্রায় 6,000 ক্যারেক্টারের বেশি একটা মেসেজ 4 ক্রেডিটে long-form ধাপে রুট হয়, এই যুক্তিতে যে এত লম্বা একটা মেসেজ একটা প্রশ্নের বদলে একটা পেস্ট করা ডকুমেন্ট। একটা ছোট প্রশ্ন 1 ক্রেডিটে quick ধাপে রুট হয়। ক্রেডিট স্কেলটা how credits work-এ আছে।
পিন করা প্রজেক্ট ফাইল প্রতিটা টার্নে প্রম্পটে যুক্ত হয়
একটা পিন করা প্রজেক্ট ফাইল সেই প্রজেক্টের একবারের বদলে প্রতিটা একক টার্নে প্রম্পট টেক্সট হিসেবে সাথে থাকে, এই কারণেই ছবিগুলো ইচ্ছাকৃতভাবে পিন করা ফাইলের ধরন থেকে বাদ দেওয়া।
ক্যাপগুলো নিজস্ব: প্রতিটা পিন করা ফাইল সর্বোচ্চ 32,000 ক্যারেক্টার এক্সট্র্যাক্ট করা টেক্সট যোগ করে, আর পুরো প্রজেক্ট ব্লক সর্বোচ্চ 10টা পিন করা ফাইল জুড়ে 120,000 ক্যারেক্টারে ক্যাপ করা। প্রজেক্ট কাস্টম ইন্সট্রাকশন 32,000 ক্যারেক্টার পর্যন্ত হতে পারে।
পিন করা ফাইল আর ইন্সট্রাকশন সেই প্রজেক্টের প্রতিটা টার্নে প্রম্পটে আবার তৈরি হয়, কথোপকথনের মতোই একই ইনপুট বাজেটের ভেতরে। একটা প্রজেক্ট চ্যাট যদি একটা সাধারণ চ্যাটের চেয়ে দ্রুত সুতো হারিয়ে ফেলে বলে মনে হয়, যেসব ফাইল নিয়ে আপনি জিজ্ঞাসা করছেন না সেগুলো আনপিন করুন।
আপনি যদি সত্যিই একটা context length error দেখে থাকেন
তাহলে এটা এসেছে মডেল প্রোভাইডার থেকে, Whizi থেকে নয়, আর এটা পাসথ্রুর মাধ্যমে আপনার কাছে পৌঁছেছে। রেট লিমিট নয় এমন যেকোনো আপস্ট্রিম ব্যর্থতা provider_error কোডসহ HTTP 502 হিসেবে ফেরত আসে, প্রোভাইডারের মেসেজ বহন করে, 300 ক্যারেক্টারে ছেঁটে। প্রোভাইডারের এরর বডি একেবারেই পার্স করা না গেলে, আপনি এর বদলে The model provider rejected the request. পাবেন।
দৈর্ঘ্যের ওপর একটা প্রোভাইডার প্রত্যাখ্যান একটা context length আর একটা টোকেন কাউন্টের নাম বলবে। সেই সংখ্যাগুলো হলো Whizi যে বাজেট পাঠিয়েছে তার চেয়ে ছোট একটা উইন্ডোর বিপরীতে প্রোভাইডার আপনার রিকোয়েস্ট গোনা, আর সেগুলোই ঠিক যা সাপোর্টের এটা দেখার জন্য দরকার।
কোনো ইন্টারফেস সেটিং এটা বদলায় না। আপনার উত্তর পেতে অন্য একটা মডেলে সুইচ করুন, আর সাপোর্টকে সংখ্যাসহ ঠিক মেসেজটা পাঠান।
আরও দুটো স্ট্রিং যা মানুষ একটা দৈর্ঘ্য সমস্যা বলে ভুল করে। Generation failed mid-stream. আর The model stream was interrupted. হলো একটা উত্তরের মাঝপথে কানেকশন ব্যর্থতা, দৈর্ঘ্য প্রত্যাখ্যান নয়। এগুলো আবার চেষ্টা করুন। Too many requests. Please wait and try again. হলো প্রতি মিনিটে 10টা মেসেজের একটা রেট লিমিট, যার সাথেও দৈর্ঘ্যের কোনো সম্পর্ক নেই।
- Whizi-তে কোনো context limit error নেই: এটা চুপচাপ কথোপকথন ছেঁটে ফেলে
- প্রতিটা মডেল প্রতি টার্নে একটা ফ্ল্যাট 40,000 ইনপুট আর 20,000 আউটপুট টোকেন বাজেট পায়
- Canadian CPA agent একমাত্র ব্যতিক্রম, 55,000 ইন আর 40,000 আউটে
- 93,000 টোকেনের নিচে একটা উইন্ডো সেই বাজেট কমায়, কখনো বাড়ায় না
- একটা মেসেজ 100,000 ক্যারেক্টারে ক্যাপ করা, এক্সট্র্যাক্ট করা ফাইল টেক্সটসহ
- একটা রিকোয়েস্ট সর্বোচ্চ 100টা মেসেজের একটা ট্রান্সক্রিপ্ট বহন করে
- শুধু অ্যাটাচমেন্ট বহনকারী সবচেয়ে সাম্প্রতিক মেসেজটাই এর অ্যাটাচমেন্ট পাঠায়
- একটা পিন করা প্রজেক্ট ফাইল সেই প্রজেক্টের প্রতিটা টার্নে প্রম্পট টেক্সট হিসেবে সাথে থাকে
- Auto-তে, প্রায় 6,000 ক্যারেক্টারের বেশি একটা মেসেজ 4 ক্রেডিটে long-form ধাপে রুট হয়
- একটা context length-এর নাম বলা মেসেজ প্রোভাইডার থেকে এসেছে: মডেল সুইচ করুন আর সাপোর্টকে জানান
প্রায়ই জিজ্ঞাসিত প্রশ্ন
Whizi-তে কি কোনো context limit error আছে?
একটা context error নয়। Whizi যে দৈর্ঘ্যের মেসেজগুলো দেখায় সেগুলো গণনা, উইন্ডো নয়: একটা মেসেজে 100,000 ক্যারেক্টার, একটা রিকোয়েস্টে 100টা মেসেজ, একটা সিস্টেম প্রম্পটে 32,000 ক্যারেক্টার, আর পুরো রিকোয়েস্ট বডিতে একটা 413 Request is too large.। আপনার সামনের মেসেজটা যদি একটা টোকেন কাউন্ট বা একটা context length-এর নাম বলে, সেটা 502 প্রোভাইডার পাসথ্রুর মাধ্যমে আপনার কাছে পৌঁছেছে আর মডেল প্রোভাইডারের।
চ্যাটে আগে বলা কিছু মডেল কেন ভুলে গেল?
কারণ রিকোয়েস্ট পাঠানোর আগেই এটা রিকোয়েস্ট থেকে ছেঁটে ফেলা হয়েছিল। ব্যাকএন্ড প্রত্যাখ্যান না করে চুপচাপ ইতিহাসকে মডেলের টোকেন বাজেটে ছেঁটে ফেলে, তাই পড়ার মতো কোনো এরর নেই আর এটা বন্ধ করার মতো কোনো সেটিং নেই। বিষয় বদলালে একটা নতুন কথোপকথন শুরু করাই ব্যবহারিক উত্তর।
একটা বড় context window-ওয়ালা মডেলে সুইচ করলে কি আমি বেশি পাঠাতে পারব?
না। ক্যাটালগের প্রতিটা মডেলে ইনপুট বাজেট একটা ফ্ল্যাট 40,000 টোকেন, তাই একটা এক মিলিয়ন টোকেন উইন্ডো আর একটা 200,000 টোকেন উইন্ডো আপনার কথোপকথনের একই পরিমাণ পায়।
"over the 100,000 character limit" মানে কী?
একটা মেসেজ প্রতি-মেসেজ ক্যাপ 100,000 ক্যারেক্টার ছাড়িয়ে গিয়েছিল আর HTTP 400 আর message_too_long কোড দিয়ে প্রত্যাখ্যান করা হয়েছিল। একটা অ্যাটাচ করা PDF, Word ফাইল বা স্প্রেডশিট থেকে এক্সট্র্যাক্ট করা টেক্সট একই ক্যাপের দিকে গোনা হয়, তাই টাইপ করার বদলে একটা আপলোডই সাধারণ কারণ। সমাধানটা মেসেজেই আছে: একটা ছোট ফাইল অ্যাটাচ করুন, বা একই কথোপকথনে একবারে একটা সেকশন সম্পর্কে জিজ্ঞাসা করুন।
"over the 100 message limit" মানে কী?
একটা একক রিকোয়েস্ট 100টার বেশি মেসেজের একটা ট্রান্সক্রিপ্ট বহন করেছিল, আর এটা HTTP 400 আর too_many_messages কোড দিয়ে প্রত্যাখ্যান করা হয়েছিল। এটা একটা রিকোয়েস্ট কতটা বহন করতে পারে তার একটা ক্যাপ, একটা চ্যাট কতটা লম্বা হতে পারে তার ক্যাপ নয়। পরের বিষয়ের জন্য একটা নতুন কথোপকথন শুরু করাই ব্যবহারিক উত্তর, আর এটা মডেলকেও আপনি কী জিজ্ঞাসা করছেন তার একটা পরিষ্কার দৃশ্য দেয়।
লিমিটের চেয়ে লম্বা একটা ডকুমেন্ট কীভাবে সারসংক্ষেপ করব?
এটা ভাগ করুন আর একটা কথোপকথনে সেকশন ধরে ধরে কাজ করুন, message_too_long স্ট্রিংটা নিজেই যা সুপারিশ করে সেটাই। প্রতিটা সেকশনের একটা সারসংক্ষেপ চান, তারপর সেই সারসংক্ষেপগুলোর একটা সারসংক্ষেপ। ফাইল টেক্সট এক্সট্র্যাক্ট করার পরও একটা একক সেকশন যদি এখনও 100,000 ক্যারেক্টার ছাড়িয়ে যায়, সেই সেকশনটা আবার ভাগ করুন।
আমি কি একটা বড় context বাজেটের জন্য টাকা দিতে পারি?
না। বাজেটটা আপনার প্ল্যানের বদলে ক্যাটালগের মডেলের একটা বৈশিষ্ট্য, আর এটা বাড়ানোর মতো কোথাও কোনো সেটিং নেই। একটা উচ্চতর প্ল্যান যা কেনে তা হলো বেশি মডেলে অ্যাক্সেস আর একটা বড় মাসিক ভাতা, একটা একক টার্নে বেশি জায়গা নয়। প্ল্যান ম্যাপিংটা the model reference-এ আছে।