FFenceLilt
Ambiente di sviluppo con IA

Estrazione limitata di blocchi con apici inversi

Estrai blocchi di tre apici inversi in colonna zero da testo di massimo 4096 caratteri con etichetta ASCII facoltativa.

● ● ●FenceLilt●
Flussi di lavoro · Estrazione limitata di blocchi con apici inversi ×
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
✳Estrazione limitata di blocchi con apici inversi
✓ ModificheControlla prima di applicare ↗
Illustrazione dell’ambiente
  1. Modelli

    Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente.

  2. Progetto

    Prova blocchi vuoti e fine riga normalizzati, rifiuta blocchi aperti e lascia altre forme Markdown non interpretate senza eseguire codice.

  3. Controlla prima di applicare

    Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.

Flussi di lavoro

Estrazione limitata di blocchi con apici inversi

Flussi di lavoro ↗
Flussi di lavoro
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
Ambiente di sviluppo con IA

Mantieni separati il contratto di estrazione e l'esecuzione

FenceLilt offre un ambiente di programmazione con IA per Windows agli sviluppatori che realizzano piccole funzioni di elaborazione del testo con regole di input deliberatamente limitate. Apri il progetto e descrivi cosa la funzione deve riconoscere, cosa deve lasciare invariato e come deve segnalare input incompleti. Il modello collegato può quindi esaminare il codice e proporre una modifica nel rispetto di quei confini.

L'estrazione di blocchi di codice delimitati offre un'attività concreta. Usa le regole dell'esempio esistente per delimitatori ed etichette di linguaggio per discutere le forme accettate, inclusi blocchi vuoti e interruzioni di riga. Chiedi all'assistente di spiegare come il parser proposto tratta un blocco non chiuso prima di rivederne l'implementazione. Il corpo estratto è testo; scegliere di eseguirne qualsiasi parte sarebbe una funzione diversa con requisiti diversi.

Dopo aver esaminato la modifica, esegui casi di test con output esatto nel progetto e includi forme non supportate che non devono essere reinterpretate accidentalmente. Rivedi il limite di dimensione e la gestione degli errori insieme all'estrazione riuscita. Per l'assistenza IA, configura un endpoint supportato compatibile con OpenAI o Anthropic, con credenziali dove necessarie. Puoi selezionare un modello senza restrizioni se il servizio ne fornisce uno, mentre capacità di contesto e disponibilità degli strumenti dipendono dal server. Una sessione utile termina con una modifica di cui puoi descrivere chiaramente il linguaggio accettato e il comportamento in caso di errore.

Verificare una funzione di estrazione limitata

Estrarre un blocco di codice significa eseguirne il contenuto?

No. Questa attività restituisce testo secondo un contratto definito sui delimitatori. Tieni separata dall'estrazione ogni successiva decisione di esecuzione e rivedi il codice a valle affinché la gestione del corpo restituito non invochi comandi o valuti codice inaspettatamente.

Questa procedura deve accettare ogni stile di delimitazione Markdown?

L'esempio esistente supporta intenzionalmente una forma limitata. Elenca delimitatori ed etichette necessari all'applicazione, poi verificali esplicitamente. Estendere ad altre forme Markdown cambia i requisiti; non è una conseguenza automatica della pulizia del parser.

Come deve essere gestito un blocco non chiuso?

Indica se l'input incompleto viene rifiutato prima di implementare la modifica. L'attività illustrata lo rifiuta. Includi un caso che raggiunga la fine con un blocco ancora aperto e verifica che il chiamante presenti adeguatamente quel risultato.

Perché mantenere esempi non supportati nei test?

Mostrano dove si ferma la funzione. Un'espressione suggerita dal modello può riconoscere accidentalmente forme aggiuntive, cambiando comportamento senza un errore evidente. Controlla insieme testo accettato e testo lasciato intatto affinché l'implementazione preservi il confine previsto.

Scarica per Windows ↗

FenceLilt · Aggiornato 2026-10-25