Tek HTTP bayt aralıkları
En fazla 80 karakterlik başlıkla sıfırdan 10^12 bayta kadar bir kaynak için tek ASCII HTTP bayt aralığını çözün.
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)
Uygulamadan önce inceleyin
Gerçek davranışı beklenen sonuçla karşılaştırın. Bir kontrol başarısız olursa yeni değişikliklerden önce nedenini araştırın.
Modeller
Temel URL ve gerekiyorsa API anahtarıyla OpenAI uyumlu veya Anthropic endpoint yapılandırın. Bağlantıyı test edin. Yerel model sunucusu çalışıyor olmalıdır; uzak araçlar ayrıca veri aktarabilir.
Proje
Açık uçları ve son ekleri test edin, bitişi sınırlayın ve karşılanamayan istekte aralık döndürmeyip hatalı ya da çoklu aralıkları reddedin.
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)
Yardımcı kodu yeniden düzenlerken yorumladığı isteğe sadık kalın
RangeTallow, yardımcı kod değişikliklerini ona bağımlı uygulama bağlamında incelemeye yönelik yapay zeka kodlama yazılımıdır. Projeyi Windows’ta açın ve yeniden düzenleme boyunca hangi davranışın sabit kalması gerektiğini açıklayın. Modelden girdi ayrıştırmayı, döndürülen değerleri ve ilgili çağıran kodu birlikte incelemesini isteyin. Böylece daha kısa bir uygulamanın isteğin anlamını sessizce değiştirmesi önlenir.
Bir son ek aralığının bilinen dosya boyutuna göre nasıl çözümlendiğini tartışmak için byte_range.py kullanabilirsiniz. Normal bir aralık, boş kaynak ve mevcut içeriğin dışında kalan bir istek için açık örnekler getirin. Yanıt işleyicisinin bunu nasıl kullanacağına karar vermeden önce yardımcı işlevin ne döndürdüğünü inceleyin. Aralık yorumlama ve yanıt oluşturmayı, açıklayabildiğiniz bir sınırla ayrılan ilişkili sorumluluklar olarak ele alın.
Önerilen düzenlemeyi, bozuk girdiyi karşılanamayan aralıktan ayıran durumlar dahil, proje ortamınızda test edin. Yeni dönüş kuralının yanıltıcı çıktı üretmemesi için sonucu kullanan yanıt kodunu inceleyin. RangeTallow, gerektiğinde kimlik bilgileriyle OpenAI uyumlu veya Anthropic bağlantılarını destekler. Uç noktanız sunuyorsa kısıtlamasız modeller seçilebilir; bağlam sınırları, araçlar ve kısıtlamalar modele ve sunucuya bağlı kalır. Kabul edilen istek örnekleri, yeniden düzenleme görüşmesine somut bir başarı ölçütü verir.
Aralık işleme değişikliklerini inceleme
Bozuk ve karşılanamayan girdiyi neden ayırmalıyım?
Farklı koşulları tanımlarlar: bir istek kabul edilen sözdizimine uymayabilir veya bilinen boyutta mevcut olmayan içerik isteyebilir. Yardımcı işlevinizin her birini nasıl temsil ettiğini belirtin ve yanıt işleyicisinin bu ayrımı nasıl kullandığını inceleyin.
Ayrıştırılmış bir aralık doğru yanıt oluşturmak için yeterli mi?
Hayır. Çağıran kod yine de yanıtı kendi sözleşmesine ve gerçek kaynağa göre oluşturmalıdır. Başarılı ayrıştırmayı tamamlanmış bütünleştirme saymak yerine, gövde seçimi ve durum davranışı dahil döndürülen sınırları nasıl kullandığını inceleyin.
Son ek örneği neleri belirtmeli?
İstenen son ek uzunluğunu, bilinen kaynak boyutunu ve beklenen dahil sınırları ya da reddetme sonucunu verin. Uygulamanın her zaman seçilecek bir son bayt bulunduğuna dayanmaması için boş kaynak durumu ekleyin.
Yeniden düzenlemeyi nasıl odakta tutabilirim?
Mevcut kabul edilen durumları ve varsa amaçlanan değişikliği yazın. Diğer davranışları koruyan bir öneri isteyin, ardından farkı inceleyin ve bu durumları hem yardımcı işlev hem çağıran kod üzerinden çalıştırın.
RangeTallow · Güncellendi 2026-10-25