Beperkte extractie van backtickblokken
Haal blokken met drie backticks op kolom nul uit maximaal 4096 tekens met een optioneel ASCII-taallabel.
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
Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Project
Test lege blokken en genormaliseerde regeleinden, weiger onafgesloten blokken en laat andere Markdown-vormen ongeïnterpreteerd zonder code uit te voeren.
Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
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
Houd het extractiecontract gescheiden van uitvoering
FenceLilt biedt een AI-programmeeromgeving voor Windows voor ontwikkelaars die kleine tekstverwerkingsfuncties bouwen met bewust beperkte invoerregels. Open het project en beschrijf wat de functie moet herkennen, wat zij ongemoeid moet laten en hoe zij onvolledige invoer moet melden. Het verbonden model kan dan de broncode bekijken en binnen die grenzen een wijziging voorstellen.
Het extraheren van afgebakende codeblokken biedt een concrete taak. Gebruik de markerings- en taallabelregels van het bestaande voorbeeld om geaccepteerde vormen te bespreken, inclusief lege blokken en regeleinden. Vraag de assistent uit te leggen hoe de voorgestelde parser een onafgesloten blok behandelt voordat je de implementatie beoordeelt. De geëxtraheerde inhoud is tekst; iets daaruit uitvoeren is een andere functie met andere eisen.
Voer na inspectie van de patch testgevallen met exacte uitvoer uit in je project en neem niet-ondersteunde vormen mee die niet onbedoeld anders mogen worden geïnterpreteerd. Beoordeel de groottelimiet en foutafhandeling naast geslaagde extractie. Configureer voor AI-hulp een ondersteund OpenAI-compatibel of Anthropic-endpoint met zo nodig inloggegevens. Een model zonder beperkingen kan worden gekozen als de dienst het aanbiedt; contextcapaciteit en beschikbare tools hangen af van de server. Een nuttige sessie eindigt met een wijziging waarvan je de geaccepteerde taal en het foutgedrag duidelijk kunt beschrijven.
Een beperkte extractiefunctie controleren
Betekent een codeblok extraheren dat de inhoud wordt uitgevoerd?
Nee. Deze taak geeft tekst terug volgens een vastgesteld markeringscontract. Houd elke latere uitvoeringsbeslissing gescheiden van extractie en bekijk vervolgcode, zodat het verwerken van een teruggegeven blok niet onverwacht opdrachten aanroept of broncode evalueert.
Moet deze routine elke Markdown-codeblokstijl accepteren?
Het bestaande voorbeeld ondersteunt bewust een beperkte vorm. Som de markeringen en labels op die je toepassing nodig heeft en controleer ze expliciet. Uitbreiding naar andere Markdown-vormen is een gewijzigde eis, geen automatisch gevolg van parseropschoning.
Hoe moet een onafgesloten blok worden behandeld?
Leg vast of onvolledige invoer wordt geweigerd voordat je de wijziging implementeert. De voorbeeldtaak weigert die. Voeg een testgeval toe dat het einde bereikt terwijl een blok openstaat en verifieer dat de aanroeper die uitkomst passend presenteert.
Waarom niet-ondersteunde voorbeelden in tests bewaren?
Ze tonen waar de functie ophoudt. Een door het model voorgestelde expressie kan per ongeluk extra vormen herkennen en gedrag veranderen zonder duidelijke fout. Controleer geaccepteerde en ongemoeide tekst samen, zodat de implementatie de beoogde grens behoudt.
FenceLilt · Bijgewerkt 2026-10-25