एकल HTTP बाइट अंतराल
अधिकतम 80 अक्षर के हेडर से शून्य से 10^12 बाइट संसाधन का एक ASCII HTTP बाइट अंतराल निकालें।
import re
def byte_range(header, size):
if type(header) is not str or len(header) > 80 or type(size) is not int or not 0 <= size <= 10**12:
raise ValueError("range.input")
match = re.fullmatch(r"bytes=([0-9]*)-([0-9]*)", header)
if match is None or not any(match.groups()):
raise ValueError("range.syntax")
left, right = match.groups()
if not left:
suffix = int(right)
if suffix == 0 or size == 0:
return None
return max(0, size-suffix), size-1
start = int(left)
end = int(right) if right else size-1
if start >= size or end < start:
return None
return start, min(end, size-1)
लागू करने से पहले समीक्षा करें
वास्तविक व्यवहार की अपेक्षित परिणाम से तुलना करें। जाँच असफल हो तो अगले बदलाव से पहले कारण समझें।
मॉडल
बेस URL और आवश्यक होने पर API कुंजी से OpenAI-संगत या Anthropic endpoint सेट करें। कनेक्शन जाँचें। स्थानीय मॉडल सर्वर चालू होना चाहिए; दूरस्थ उपकरण अलग से डेटा भेज सकते हैं।
प्रोजेक्ट
खुले सिरे और प्रत्यय जाँचें, अधिक अंत काटें और असंभव अनुरोध पर कोई अंतराल न दें तथा गलत या कई अंतराल अस्वीकार करें।
import re
def byte_range(header, size):
if type(header) is not str or len(header) > 80 or type(size) is not int or not 0 <= size <= 10**12:
raise ValueError("range.input")
match = re.fullmatch(r"bytes=([0-9]*)-([0-9]*)", header)
if match is None or not any(match.groups()):
raise ValueError("range.syntax")
left, right = match.groups()
if not left:
suffix = int(right)
if suffix == 0 or size == 0:
return None
return max(0, size-suffix), size-1
start = int(left)
end = int(right) if right else size-1
if start >= size or end < start:
return None
return start, min(end, size-1)
यूटिलिटी रीफ़ैक्टर में अनुरोध का अर्थ सुरक्षित रखें
RangeTallow एआई कोडिंग सॉफ़्टवेयर है जिसमें यूटिलिटी बदलावों को उन पर निर्भर अनुप्रयोग के संदर्भ में जाँचा जाता है। Windows पर परियोजना खोलें और बताएँ कि रीफ़ैक्टर के दौरान कौन सा व्यवहार स्थिर रहना चाहिए। मॉडल से इनपुट पार्सिंग, लौटाए मान और संबंधित कॉलर को साथ जाँचने को कहें। इससे छोटा कार्यान्वयन चुपचाप अनुरोध का अर्थ नहीं बदलता।
byte_range.py से चर्चा कर सकते हैं कि ज्ञात फ़ाइल आकार के संदर्भ में अंतिम बाइटों की रेंज कैसे तय होती है। सामान्य रेंज, खाली संसाधन और उपलब्ध सामग्री से बाहर के अनुरोध के स्पष्ट उदाहरण दें। रिस्पॉन्स हैंडलर उसका उपयोग कैसे करे, तय करने से पहले हेल्पर का लौटाया परिणाम देखें। रेंज की व्याख्या और रिस्पॉन्स निर्माण को संबंधित जिम्मेदारियाँ मानें, जिनके बीच स्पष्ट समझाने योग्य सीमा हो।
अपने परियोजना परिवेश में प्रस्तावित संपादन जाँचें, जिसमें गलत इनपुट और पूरी न की जा सकने वाली रेंज में अंतर करने वाले मामले हों। परिणाम उपयोग करने वाला रिस्पॉन्स कोड देखें ताकि नया वापसी नियम भ्रामक आउटपुट न दे। RangeTallow OpenAI-संगत या Anthropic कनेक्शन का समर्थन करता है; जरूरत पर प्रवेश प्रमाण चाहिए। एंडपॉइंट उपलब्ध कराए तो अप्रतिबंधित मॉडल चुने जा सकते हैं; संदर्भ सीमाएँ, टूल और पाबंदियाँ मॉडल तथा सर्वर पर निर्भर रहती हैं। स्वीकृत अनुरोध उदाहरण रीफ़ैक्टर की बातचीत को सफलता का ठोस माप देते हैं।
रेंज प्रबंधन के बदलाव जाँचना
गलत और पूरी न की जा सकने वाली इनपुट में अंतर क्यों करें?
ये अलग स्थितियाँ हैं: अनुरोध स्वीकृत सिंटैक्स से मेल नहीं खा सकता या ज्ञात आकार में अनुपलब्ध सामग्री माँग सकता है। बताएँ कि हेल्पर हर स्थिति कैसे दर्शाता है और रिस्पॉन्स हैंडलर इस अंतर का उपयोग कैसे करता है।
क्या सही रिस्पॉन्स बनाने के लिए पार्स की गई रेंज पर्याप्त है?
नहीं। कॉलर को अपने अनुबंध और वास्तविक संसाधन के अनुसार रिस्पॉन्स बनाना होता है। बॉडी चयन और स्टेटस व्यवहार सहित लौटाई सीमाओं का उपयोग जाँचें; सफल पार्सिंग को पूरा एकीकरण न मानें।
अंतिम बाइटों की रेंज के उदाहरण में क्या बताएँ?
माँगी गई अंतिम बाइटों की संख्या, ज्ञात संसाधन आकार और अपेक्षित समावेशी सीमाएँ या अस्वीकृति परिणाम दें। खाली संसाधन का मामला जोड़ें ताकि कार्यान्वयन हमेशा चुनने के लिए अंतिम बाइट मौजूद मानकर न चले।
रीफ़ैक्टर को केंद्रित कैसे रखूँ?
मौजूदा स्वीकृत मामले और इच्छित बदलाव, यदि हो, लिखें। अन्य व्यवहार सुरक्षित रखने वाला प्रस्ताव माँगें, फिर अंतर जाँचें और उन्हीं मामलों को हेल्पर तथा कॉलर, दोनों से चलाएँ।
RangeTallow · अद्यतन 2026-10-25