बैकटिक खंडों का सीमित निष्कर्षण
अधिकतम 4096 अक्षर से स्तंभ शून्य पर तीन बैकटिक वाले खंड वैकल्पिक ASCII भाषा लेबल सहित निकालें।
import re
def fenced_blocks(text):
if type(text) is not str or len(text) > 4096:
raise ValueError("fence.input")
blocks, body, language = [], None, None
for line in text.splitlines():
if body is None:
opening = re.fullmatch(r"```([A-Za-z0-9_-]*)", line)
if opening:
body, language = [], opening[1]
elif line == "```":
blocks.append((language, "\n".join(body)))
body = None
else:
body.append(line)
if body is not None:
raise ValueError("fence.unclosed")
return blocks
मॉडल
बेस URL और आवश्यक होने पर API कुंजी से OpenAI-संगत या Anthropic endpoint सेट करें। कनेक्शन जाँचें। स्थानीय मॉडल सर्वर चालू होना चाहिए; दूरस्थ उपकरण अलग से डेटा भेज सकते हैं।
प्रोजेक्ट
खाली खंड और सामान्यीकृत नई पंक्तियाँ जाँचें, अधूरा खंड अस्वीकार करें तथा अन्य Markdown रूपों को बिना समझे या कोड चलाए छोड़ें।
लागू करने से पहले समीक्षा करें
वास्तविक व्यवहार की अपेक्षित परिणाम से तुलना करें। जाँच असफल हो तो अगले बदलाव से पहले कारण समझें।
import re
def fenced_blocks(text):
if type(text) is not str or len(text) > 4096:
raise ValueError("fence.input")
blocks, body, language = [], None, None
for line in text.splitlines():
if body is None:
opening = re.fullmatch(r"```([A-Za-z0-9_-]*)", line)
if opening:
body, language = [], opening[1]
elif line == "```":
blocks.append((language, "\n".join(body)))
body = None
else:
body.append(line)
if body is not None:
raise ValueError("fence.unclosed")
return blocks
निष्कर्षण के अनुबंध को निष्पादन से अलग रखें
FenceLilt जानबूझकर सीमित इनपुट नियमों वाली छोटी पाठ प्रोसेसिंग सुविधाएँ बनाने वाले डेवलपर को Windows एआई कोडिंग कार्यक्षेत्र देता है। परियोजना खोलें और बताएँ कि सुविधा क्या पहचाने, क्या छोड़ दे और अधूरा इनपुट कैसे बताए। जुड़ा मॉडल फिर स्रोत जाँचकर इन सीमाओं के अनुसार बदलाव सुझा सकता है।
घेरे हुए कोड ब्लॉक निकालना ठोस कार्य है। खाली ब्लॉक और पंक्ति विराम सहित स्वीकृत रूपों पर चर्चा के लिए मौजूदा उदाहरण के मार्कर और भाषा लेबल नियम इस्तेमाल करें। कार्यान्वयन जाँचने से पहले सहायक से समझाने को कहें कि प्रस्तावित पार्सर अधूरे ब्लॉक को कैसे संभालता है। निकाला भाग पाठ है; उसमें से कुछ चलाने का निर्णय अलग आवश्यकताओं वाली अलग सुविधा होगी।
पैच जाँचने के बाद परियोजना में सटीक आउटपुट वाले परीक्षण मामले चलाएँ और वे असमर्थित रूप शामिल करें जिन्हें गलती से नया अर्थ नहीं देना चाहिए। सफल निष्कर्षण के साथ आकार सीमा और त्रुटि प्रबंधन जाँचें। एआई सहायता के लिए समर्थित OpenAI-संगत या Anthropic एंडपॉइंट कॉन्फ़िगर करें और जरूरत पर प्रवेश प्रमाण दें। सेवा उपलब्ध कराए तो अप्रतिबंधित मॉडल चुन सकते हैं; संदर्भ क्षमता और टूल उपलब्धता सर्वर पर निर्भर हैं। उपयोगी सत्र का परिणाम ऐसा बदलाव है जिसकी स्वीकृत भाषा और विफलता का व्यवहार आप स्पष्ट बता सकें।
सीमित निष्कर्षण सुविधा जाँचना
क्या कोड ब्लॉक निकालने का मतलब उसकी सामग्री चलाना है?
नहीं। यह कार्य परिभाषित मार्कर अनुबंध के अनुसार पाठ लौटाता है। बाद का निष्पादन निर्णय अलग रखें और आगे का कोड जाँचें ताकि लौटे भाग का प्रबंधन अप्रत्याशित रूप से कमांड न चलाए या स्रोत का मूल्यांकन न करे।
क्या प्रक्रिया हर Markdown घेराबंदी शैली स्वीकार करे?
मौजूदा उदाहरण जानबूझकर सीमित रूप का समर्थन करता है। अनुप्रयोग के आवश्यक मार्कर और लेबल सूचीबद्ध करके स्पष्ट जाँचें। अन्य Markdown रूपों का समर्थन आवश्यकता में बदलाव है, पार्सर साफ करने का स्वतः परिणाम नहीं।
अधूरा ब्लॉक कैसे संभालें?
बदलाव लागू करने से पहले बताएँ कि अधूरा इनपुट अस्वीकार होता है या नहीं। उदाहरण कार्य उसे अस्वीकार करता है। खुला ब्लॉक रहते अंत तक पहुँचने वाला परीक्षण मामला दें और जाँचें कि कॉलर परिणाम उचित रूप से दिखाता है।
असमर्थित उदाहरण परीक्षण में क्यों रखें?
वे सुविधा की सीमा दिखाते हैं। मॉडल का सुझाया व्यंजक गलती से अतिरिक्त रूप पहचान सकता है और स्पष्ट विफलता के बिना व्यवहार बदल सकता है। स्वीकृत और अछूते पाठ साथ जाँचें ताकि कार्यान्वयन अपेक्षित सीमा सुरक्षित रखे।
FenceLilt · अद्यतन 2026-10-25