Sınırlı ters tırnak blok çıkarımı
En fazla 4096 karakterde sütun sıfırdaki üç ters tırnaklı blokları isteğe bağlı ASCII dil etiketiyle çıkarın.
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
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
Boş blokları ve normalleştirilmiş satır sonlarını test edin, kapanmamış bloğu reddedin ve diğer Markdown biçimlerini kod çalıştırmadan yorumlanmamış bırakın.
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.
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
Çıkarma sözleşmesini yürütmeden ayrı tutun
FenceLilt, bilinçli olarak sınırlanmış girdi kurallarıyla küçük metin işleme özellikleri geliştirenler için bir Windows yapay zeka kodlama çalışma alanı sunar. Projeyi açın ve özelliğin neyi tanıması, neye dokunmaması ve eksik girdiyi nasıl bildirmesi gerektiğini açıklayın. Bağlı model daha sonra kaynağı inceleyip bu sınırlara göre değişiklik önerebilir.
Çitle çevrili kod bloklarını çıkarmak somut bir görev sunar. Boş bloklar ve satır sonları dahil kabul edilen biçimleri tartışmak için mevcut örneğin işaretçi ve dil etiketi kurallarını kullanın. Asistandan, uygulamasını incelemeden önce önerilen ayrıştırıcının kapanmamış bir bloğu nasıl ele aldığını açıklamasını isteyin. Çıkarılan gövde metindir; içinden herhangi bir şeyi çalıştırmayı seçmek, farklı gereksinimleri olan farklı bir özellik olur.
Yamayı inceledikten sonra projenizde kesin çıktı test verileri çalıştırın ve yanlışlıkla yeniden yorumlanmaması gereken desteklenmeyen biçimleri ekleyin. Başarılı çıkarmayla birlikte boyut sınırını ve hata işlemeyi inceleyin. Yapay zeka yardımı için gerektiğinde kimlik bilgileriyle desteklenen bir OpenAI uyumlu veya Anthropic uç noktası yapılandırın. Hizmet sunuyorsa kısıtlamasız bir model seçilebilir; bağlam kapasitesi ve araç kullanılabilirliği ise sunucuya bağlıdır. Yararlı bir oturum, kabul ettiği dili ve hata davranışını açıkça tanımlayabildiğiniz bir değişiklikle sona erer.
Sınırlı bir çıkarma özelliğini denetleme
Kod bloğunu çıkarmak içeriğini çalıştırmak anlamına mı gelir?
Hayır. Bu görev, tanımlı bir işaretçi sözleşmesine göre metin döndürür. Sonraki yürütme kararlarını çıkarmadan ayrı tutun ve döndürülen gövdeyi işlemenin beklenmedik biçimde komut çağırmaması veya kaynak kodu değerlendirmemesi için sonraki kodu inceleyin.
Bu yordam her Markdown kod çiti biçimini kabul etmeli mi?
Mevcut örnek bilinçli olarak sınırlı bir biçimi destekler. Uygulamanızın ihtiyaç duyduğu işaretçileri ve etiketleri listeleyin, ardından açıkça denetleyin. Diğer Markdown biçimlerine genişlemek, ayrıştırıcıyı temizlemenin otomatik sonucu değil, gereksinim değişikliğidir.
Kapanmamış blok nasıl ele alınmalı?
Değişikliği uygulamadan önce eksik girdinin reddedilip reddedilmeyeceğini belirtin. Gösterilen görev bunu reddeder. Blok açıkken sona ulaşan bir test verisi ekleyin ve çağıran kodun sonucu uygun sunduğunu doğrulayın.
Desteklenmeyen örnekleri neden testlerde tutmalıyım?
Özelliğin nerede durduğunu gösterirler. Modelin önerdiği bir ifade, ek biçimleri yanlışlıkla tanıyarak belirgin bir hata olmadan davranışı değiştirebilir. Uygulamanın amaçlanan sınırı koruması için kabul edilen ve dokunulmayan metni birlikte denetleyin.
FenceLilt · Güncellendi 2026-10-25