মডেলটি একটি অতিরিক্ত ক্ষেত্র বের করে দেয়। এটি সরাসরি প্রদর্শিত বা প্রত্যাখ্যান করা উচিত? আগে দেখা যাক চুক্তি হয় কিনা
নিষ্কাশন ফলাফলে একটি অতিরিক্ত `confidence` আছে৷ সামনের প্রান্তটি খুব দরকারী দেখায়, তাই এটি সরাসরি "বিশ্বাসযোগ্যতা" হিসাবে প্রদর্শিত হয়। সমস্যা হল এই ক্ষেত্রটি সংজ্ঞায়িত বা ক্রমাঙ্কিত নাও হতে পারে। অতিরিক্ত ক্ষেত্রটি অগত্যা ক্ষতিকারক নয়: এটি ডাউনস্ট্রিম ব্যবহারকারীদের অসম্মত মানগুলির উপর নির্ভর করার অনুমতি দিতে পারে।
মডেলটি কাঠামোগত নিষ্কাশন ফলাফলে আরও একটি ক্ষেত্র প্রদান করে এবং সামনের প্রান্তটি সহজেই এটিকে সরাসরি দরকারী তথ্য হিসাবে প্রদর্শন করতে পারে। উদাহরণস্বরূপ, নিষ্কাশন ফলাফলে একটি অতিরিক্ত confidence থাকলে, এটি পৃষ্ঠায় "বিশ্বাসযোগ্যতা" হিসাবে প্রদর্শিত হবে৷ সমস্যা হল এই ক্ষেত্রটি সংজ্ঞায়িত বা ক্রমাঙ্কিত নাও হতে পারে। অতিরিক্ত ক্ষেত্রগুলি অগত্যা ক্ষতিকারক নয়, এবং ডাউনস্ট্রিম ব্যবহারকারীদের রায়ের ভিত্তি হিসাবে অসম্মত মানগুলি ব্যবহার করার অনুমতি দিতে পারে।
এই নিবন্ধটি এমন ছাত্রদের জন্য উপযুক্ত যারা ইন্টারফেস ডিজাইন, ফ্রন্ট-এন্ড এবং ব্যাক-এন্ড ডকিং বা ডকুমেন্ট প্রসেসিং প্রক্রিয়ার জন্য দায়ী। নীচে ব্যাখ্যা করা হয়েছে কিভাবে প্রথমে ইন্টারফেসটি খোলা বা বন্ধ কিনা তা নির্ধারণ করা যায়, কীভাবে অজানা ক্ষেত্রগুলিকে পর্যবেক্ষণযোগ্য ত্রুটিতে পরিণত করা যায় এবং প্রত্যাখ্যানের পরে কী তথ্য ফেরত দেওয়া উচিত। এটি পড়ার পরে, আপনি সিদ্ধান্ত নিতে পারেন যে অতিরিক্ত ক্ষেত্রগুলি প্রত্যাখ্যান করা উচিত, উপেক্ষা করা উচিত বা নতুন সংস্করণে অন্তর্ভুক্ত করা উচিত।
এই নিবন্ধটি প্রক্রিয়াকরণ পদ্ধতি প্রদর্শন করতে সিন্থেটিক নমুনা ব্যবহার করে। কোডটি একটি বিচ্ছিন্ন পরিবেশে উদাহরণ সহ পরীক্ষা করা হয়েছে এবং এটি সমস্ত বাস্তব ফাইল বা পণ্যের কার্যকারিতার গ্যারান্টি নয়। গুরুত্বপূর্ণ নথিগুলি প্রক্রিয়া করার আগে, দয়া করে মূলগুলি রাখুন এবং পাঠ্যের সীমানা এবং গ্রহণযোগ্য আইটেমগুলি অনুসারে সেগুলি পর্যালোচনা করুন৷
মডেলের একাধিক ক্ষেত্র কি সরাসরি প্রদর্শিত হতে পারে? এক বাক্যে উপসংহার
প্রথমে চুক্তিতে সম্মত হন, এবং তারপরে এটি গ্রহণ বা প্রত্যাখ্যান করার সিদ্ধান্ত নিন: অনির্ধারিত এবং ক্রমাঙ্কিত ক্ষেত্রগুলি সরাসরি বিশ্বাসযোগ্য প্রমাণ হিসাবে প্রদর্শিত হবে না।
| আপনার অবস্থা | প্রস্তাবিত অভ্যাস | কারণ |
|---|---|---|
| অভ্যন্তরীণ অনুসন্ধান সরঞ্জাম | এক্সটেনশন ক্ষেত্র অনুমোদিত হতে পারে | অন্বেষণ পর্বের সময় নমনীয়তাকে অগ্রাধিকার দিন |
| স্থিতিশীল ডেলিভারি ইন্টারফেস | additionalProperties: false দিয়ে প্রতিটি স্তর বন্ধ করুন | ডাউনস্ট্রিম ভুল পড়া এড়াতে অনির্ধারিত বৈশিষ্ট্যগুলি প্রত্যাখ্যান করুন |
| নতুন আইনি ক্ষেত্র প্রদর্শিত হবে | স্কিমার একটি নতুন সংস্করণ প্রকাশ করুন | গোপনে পুরানো সংস্করণ শিথিল করবেন না |
| অপ্রয়োজনীয় ক্ষেত্রগুলি উপেক্ষা করতে বেছে নিন | মূল ফলাফল এবং ফিল্টারিং আচরণ লগ করুন | সোর্স ডেটাতে এই ক্ষেত্রটি নেই বা ইন্টারফেস স্তরটি এটি সরিয়ে দিয়েছে কিনা তা পার্থক্য করা সুবিধাজনক। |
প্রথমে সিদ্ধান্ত নিন ইন্টারফেস খোলা নাকি বন্ধ
অভ্যন্তরীণ অন্বেষণ সরঞ্জামগুলি বর্ধিত ক্ষেত্রগুলির জন্য অনুমতি দিতে পারে এবং স্থিতিশীল ডেলিভারি ইন্টারফেসের জন্য প্রায়শই কঠোর সীমানার প্রয়োজন হয়। যখন JSON স্কিমার অতিরিক্ত বৈশিষ্ট্য false এ সেট করা হয়, তখন বর্তমান অবজেক্টের অনির্ধারিত বৈশিষ্ট্যগুলি প্রত্যাখ্যান করা যেতে পারে, কিন্তু প্রতিটি নেস্টেড অবজেক্ট স্বয়ংক্রিয়ভাবে পুনরাবৃত্তভাবে ওভাররাইট হবে না। প্রতিটি স্তরে যা অনুমোদিত তা স্পষ্টভাবে লিখতে হবে।
এর মানে এই নয় যে সমস্ত ইন্টারফেস সমস্ত এক্সটেনশন প্রত্যাখ্যান করবে। চাবিকাঠি হল পছন্দটি পরিষ্কার করা এবং আপগ্রেডের জন্য সংস্করণ প্রক্রিয়াটিকে খোলা রাখা। আজ একই নামের ক্ষেত্রগুলিকে নীরবে উপেক্ষা করা এবং আগামীকাল হঠাৎ করে সেগুলি ব্যবহার করা সহজেই ঐতিহাসিক ডেটার বিভিন্ন ব্যাখ্যার দিকে নিয়ে যেতে পারে।
অজানা ক্ষেত্রগুলিকে পর্যবেক্ষণযোগ্য ত্রুটিতে পরিণত করুন
from jsonschema import Draft202012Validator
schema = {"type": "object", "required": ["name", "evidence"],
"properties": {"name": {"type": "string"},
"evidence": {"type": "object", "required": ["page"],
"properties": {"page": {"type": "integer", "minimum": 1}},
"additionalProperties": False}},
"additionalProperties": False}
validator = Draft202012Validator(schema)
valid = lambda x: not list(validator.iter_errors(x))
assert valid({"name": "Demo", "evidence": {"page": 1}})
assert not valid({"name": "Demo", "confidence": 0.99, "evidence": {"page": 1}})
assert not valid({"name": "Demo", "evidence": {"page": 1, "guess": True}})
উদাহরণে সাংখ্যিক মান 0.99 হল একটি সিন্থেটিক ইনপুট যা প্রত্যাখ্যান করা উচিত, কোনো মডেলের জন্য সত্যিকারের মানের ফলাফল নয়। উদাহরণটি বাদ দেওয়া রোধ করতে একই সময়ে শীর্ষ-স্তরের এবং নেস্টেড স্তরগুলি পরীক্ষা করে যা শুধুমাত্র বাইরের স্তরটিকে বন্ধ করে এবং অভ্যন্তরীণ স্তরটিকে নির্বিচারে প্রসারিত করার অনুমতি দেয়।
প্রত্যাখ্যানের পরে মেরামতযোগ্য তথ্য প্রদান করুন
| অবস্থা | রিটার্ন তথ্য অন্তর্ভুক্ত করা উচিত | কি করা উচিত নয় |
|---|---|---|
| শীর্ষ স্তরের একাধিক ক্ষেত্র | অজানা কী নাম, প্রোটোকল সংস্করণ | স্বয়ংক্রিয়ভাবে এটি একটি বিশ্বস্ত সূচক হিসাবে দেখান |
| অভ্যন্তরীণ বহু-ক্ষেত্র | অবজেক্ট পাথ, অজানা কী নাম | শুধুমাত্র একটি JSON ত্রুটি ফেরত দিন |
| নতুন সংস্করণ আইনি এক্সটেনশন | স্পষ্ট নতুন স্কিমা | গোপনে পুরানো সংস্করণ শিথিল |
| মডেল বারবার অপ্রয়োজনীয় কী আউটপুট | নিষ্কাশন টাস্ক ব্যর্থতার কারণ | প্রতিটি মুছে ফেলার পরে, এটি ভান করা হয় যে আসল আউটপুটটি যোগ্য। |
📊 মূল তুলনা: খোলা ইন্টারফেস এবং বন্ধ ইন্টারফেস
| মাত্রা | খোলা ইন্টারফেস | বন্ধ ইন্টারফেস |
|---|---|---|
| প্রযোজ্য পরিস্থিতি | অভ্যন্তরীণ অনুসন্ধান সরঞ্জাম | স্থিতিশীল ডেলিভারি ইন্টারফেস |
| অপ্রয়োজনীয় ক্ষেত্রগুলি পরিচালনা করা | এক্সটেনশনের অনুমতি দিন | অনির্ধারিত বৈশিষ্ট্য প্রত্যাখ্যান করুন |
| প্রধান ঝুঁকি | অসম্মত মানগুলি একটি ভিত্তি হিসাবে ব্যবহৃত হয় | কাজটি ব্যর্থ হয় যখন মডেলটি মাঝে মাঝে একাধিক আউটপুট আউটপুট করে এবং তদন্তের প্রয়োজন হয়। |
| আপগ্রেড পদ্ধতি | সরাসরি ব্যবহার করুন | স্কিমার নতুন সংস্করণ দ্বারা স্পষ্টভাবে প্রসারিত |
ক্ষেত্রগুলি ড্রপ করাও একটি ডেটা প্রক্রিয়াকরণের সিদ্ধান্ত
যদি "পরিচিত ক্ষেত্রগুলি পড়ুন, অন্যান্য ক্ষেত্রগুলিকে উপেক্ষা করুন" প্রকৃতপক্ষে ব্যবহৃত হয়, তবে মূল ফলাফল এবং ফিল্টারিং আচরণ নথিভুক্ত করা উচিত। অন্যথায়, উৎস ডেটাতে আসলে একটি নির্দিষ্ট আইটেম নেই কিনা বা ইন্টারফেস স্তরটি এটি সরিয়ে দিয়েছে কিনা তা পার্থক্য করা কঠিন হবে। ক্ষেত্র ড্রপিং প্রোটোকলের সাথে একটি মডেলের অ-সম্মতি মাস্ক করার উপায়ও হওয়া উচিত নয়।
অনুবাদ এবং নিষ্কাশনের জন্য একটি সীমানা ছেড়ে দিন
নথি অনুবাদ আউটপুট এবং কাঠামোগত ফিল্ড আউটপুট দুটি ভিন্ন চুক্তি। নথিগুলি প্রক্রিয়া করার জন্য OmniDoc ব্যবহার করার সময়, আপনি অনুবাদ-পরবর্তী যাচাইকরণের জন্য ক্ষেত্রের তালিকা ব্যবহার করতে পারেন, তবে অনুবাদটি মসৃণ হওয়ার কারণে আপনি স্বয়ংক্রিয়ভাবে অতিরিক্ত ব্যবসায়িক রায় বা আত্মবিশ্বাসের ক্ষেত্রগুলি গ্রহণ করতে পারবেন না।
🎯 কোন পদ্ধতি আপনার জন্য উপযুক্ত?
আপনি যদি অভ্যন্তরীণ অনুসন্ধানের সরঞ্জামগুলি করছেন
এক্সটেনশন ক্ষেত্রগুলি অনুমোদিত হতে পারে, তবে সেগুলি এখনও অনির্ধারিত হিসাবে প্রদর্শিত হওয়া উচিত৷
আপনি যদি একটি স্থিতিশীল ডেলিভারি ইন্টারফেস বজায় রাখেন
প্রতিটি স্তরকে additionalProperties: false দিয়ে আবদ্ধ করুন এবং নেস্টেড বস্তুর জন্য পৃথক সীমানা নির্ধারণ করুন।
আপনি যদি নতুন ফিল্ড চালু করতে চান
স্কিমার নতুন সংস্করণ প্রকাশ করুন, গোপনে পুরানো সংস্করণগুলিকে শিথিল করবেন না।
যদি আপনার প্রক্রিয়ার অপ্রয়োজনীয় ক্ষেত্রগুলি বাতিল করতে হয়
পরে সহজে ট্রেসিংয়ের জন্য আসল ফলাফল এবং ফিল্টারিং আচরণ রেকর্ড করুন।
❓ প্রায়শই জিজ্ঞাসিত প্রশ্ন (FAQ)
1. additionalProperties: false সব স্তর কভার করতে পারে?
স্বয়ংক্রিয়ভাবে ওভাররাইট করা যাবে না। এটি শুধুমাত্র বর্তমান অবজেক্টের অনির্ধারিত বৈশিষ্ট্যগুলিকে প্রত্যাখ্যান করে এবং প্রতিটি নেস্টেড অবজেক্টকে স্পষ্টভাবে লিখতে হবে যা আলাদাভাবে অনুমোদিত।
2. একটি মডেলের একাধিক আউটপুট ক্ষেত্র কি অগত্যা ক্ষতিকারক?
অগত্যা নয়, তবে এটি ডাউনস্ট্রিম ব্যবহারকারীদের একটি ভিত্তি হিসাবে অসম্মত মান ব্যবহার করার অনুমতি দিতে পারে, তাই তাদের সংজ্ঞা এবং ক্রমাঙ্কন স্থিতি প্রথমে নিশ্চিত করা উচিত।
3. অতিরিক্ত ক্ষেত্রগুলি প্রত্যাখ্যান করার সময় কী ফেরত দেওয়া উচিত?
অজানা কী নাম, অবজেক্ট পাথ (যখন ভিতরের) এবং প্রোটোকল সংস্করণ অন্তর্ভুক্ত করা উচিত, শুধুমাত্র একটি JSON ত্রুটি নয়।
4. অপ্রয়োজনীয় ক্ষেত্র কি সরাসরি উপেক্ষা করা যায়?
হ্যাঁ, তবে কাঁচা ফলাফল এবং ফিল্টারিং আচরণ নথিভুক্ত করা উচিত এবং যেখানে মডেল প্রোটোকল মেনে চলে না সেখানে সমস্যাগুলিকে মুখোশ করার জন্য এটি ব্যবহার করা এড়ানো উচিত।
📝 সারাংশ
অতিরিক্ত ক্ষেত্রগুলি সরাসরি প্রদর্শন করা যায় না কারণ সেগুলি দরকারী দেখায়৷ আপনাকে অবশ্যই প্রথমে ইন্টারফেসের সীমানায় সম্মত হতে হবে এবং তারপরে সংস্করণটি গ্রহণ, প্রত্যাখ্যান বা আপগ্রেড করবেন কিনা তা সিদ্ধান্ত নিতে হবে। শুধুমাত্র প্রতিটি স্তরে নিয়মগুলি স্পষ্ট করার মাধ্যমে ঐতিহাসিক তথ্য এবং নিম্নধারার ব্যাখ্যা সামঞ্জস্যপূর্ণ হতে পারে।
এটি এখনই চেষ্টা করুন: অনুবাদ শুরু করতে নথিটি আপলোড করুন, মূল বিন্যাস বজায় রেখে৷


