Omezené získávání bloků se zpětnými apostrofy
Z textu do 4096 znaků vyjměte bloky se třemi zpětnými apostrofy ve sloupci nula a volitelným jazykovým štítkem 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
Modely
Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.
Projekt
Otestujte prázdné bloky a sjednocené konce řádků, odmítněte neuzavřený blok a jiné formy Markdown neinterpretujte ani nespouštějte.
Před použitím zkontrolujte
Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.
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
Oddělte kontrakt extrakce od spouštění
FenceLilt poskytuje pracovní prostředí pro programování s AI ve Windows vývojářům malých funkcí pro zpracování textu se záměrně omezenými vstupními pravidly. Otevřete projekt a popište, co má funkce rozpoznat, co má ponechat beze změny a jak má hlásit neúplný vstup. Připojený model pak může prověřit zdrojový kód a navrhnout změnu v rámci těchto hranic.
Extrakce ohraničených bloků kódu nabízí konkrétní úlohu. Pomocí pravidel značek a označení jazyka ze stávajícího příkladu proberte přijímané formy včetně prázdných bloků a zalomení řádků. Před kontrolou implementace požádejte asistenta o vysvětlení, jak navržený parser zpracuje neuzavřený blok. Extrahované tělo je text; rozhodnutí cokoli z něj spouštět by bylo jinou funkcí s jinými požadavky.
Po kontrole úpravy spusťte v projektu testy přesného výstupu a zahrňte nepodporované formy, které se nesmějí nechtěně interpretovat jinak. Vedle úspěšné extrakce prověřte limit velikosti a zpracování chyb. Pro asistenci AI nastavte podporovaný koncový bod kompatibilní s OpenAI nebo Anthropic a případně přihlašovací údaje. Model bez omezení lze zvolit, pokud jej služba poskytuje, zatímco kapacita kontextu a dostupnost nástrojů závisí na serveru. Užitečná relace končí změnou, jejíž přijímaný jazyk a chování při selhání dokážete jasně popsat.
Kontrola funkce s omezenou extrakcí
Znamená extrakce bloku kódu spuštění jeho obsahu?
Ne. Tato úloha vrací text podle definovaného kontraktu značek. Pozdější rozhodnutí o spuštění oddělte od extrakce a prověřte navazující kód, aby zpracování vráceného těla nečekaně nespouštělo příkazy ani nevyhodnocovalo zdrojový kód.
Má tato rutina přijímat všechny styly ohraničení Markdownu?
Stávající příklad záměrně podporuje omezenou formu. Vyjmenujte značky a označení, které aplikace potřebuje, a výslovně je ověřte. Rozšíření na jiné formy Markdownu je změnou požadavků, nikoli automatickým důsledkem úklidu parseru.
Jak zpracovat neuzavřený blok?
Před implementací změny určete, zda se neúplný vstup odmítá. Ukázková úloha jej odmítá. Zahrňte testovací případ, který dosáhne konce s otevřeným blokem, a ověřte, že volající tento výsledek vhodně prezentuje.
Proč ponechat nepodporované příklady v testech?
Ukazují, kde funkce končí. Výraz navržený modelem může nechtěně rozpoznat další formy a změnit chování bez zjevného selhání. Kontrolujte přijímaný i nedotčený text společně, aby implementace zachovala zamýšlenou hranici.
FenceLilt · Aktualizováno 2026-10-25