FFenceLilt
Ambiente de programação com IA

Extração restrita de blocos com crases

Extraia blocos de três crases na coluna zero de textos de até 4096 caracteres com rótulo ASCII de linguagem opcional.

● ● ●FenceLilt●
Fluxos de trabalho · Extração restrita de blocos com crases ×
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
✳Extração restrita de blocos com crases
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
  1. Modelos

    Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.

  2. Projeto

    Teste blocos vazios e quebras normalizadas, rejeite blocos sem fechamento e deixe outras formas Markdown sem interpretação nem execução.

  3. Revise antes de aplicar

    Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.

Fluxos de trabalho

Extração restrita de blocos com crases

Fluxos de trabalho ↗
Fluxos de trabalho
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 de programação com IA

Mantenha o contrato de extração separado da execução

FenceLilt oferece um ambiente de programação com IA para Windows a desenvolvedores que criam pequenos recursos de processamento de texto com regras de entrada deliberadamente limitadas. Abra o projeto e descreva o que o recurso deve reconhecer, o que deve deixar intacto e como deve informar entradas incompletas. O modelo conectado poderá então examinar o código e propor uma alteração conforme esses limites.

Extrair blocos de código delimitados oferece uma tarefa concreta. Use as regras de marcadores e rótulos de linguagem do exemplo existente para discutir as formas aceitas, incluindo blocos vazios e quebras de linha. Peça ao assistente para explicar como o analisador proposto trata um bloco não fechado antes de revisar sua implementação. O corpo extraído é texto; optar por executar algo dele seria outro recurso, com outros requisitos.

Após examinar a correção, execute casos de saída exata no projeto e inclua formas não aceitas que não devem ser reinterpretadas acidentalmente. Revise o limite de tamanho e o tratamento de erros junto da extração bem-sucedida. Para assistência de IA, configure um endpoint compatível com OpenAI ou Anthropic aceito, com credenciais quando necessário. Um modelo sem restrições pode ser selecionado se o serviço o fornecer, enquanto a capacidade de contexto e a disponibilidade de ferramentas dependem do servidor. Uma sessão útil termina com uma alteração cuja linguagem aceita e comportamento de falha você consegue descrever claramente.

Verificação de um recurso de extração restrito

Extrair um bloco de código significa executar seu conteúdo?

Não. Esta tarefa retorna texto conforme um contrato definido de marcadores. Mantenha qualquer decisão posterior de execução separada da extração e revise o código seguinte para que o tratamento de um corpo retornado não invoque comandos nem avalie código inesperadamente.

Esta rotina deve aceitar todos os estilos de delimitadores do Markdown?

O exemplo existente aceita intencionalmente uma forma restrita. Liste os marcadores e rótulos necessários à aplicação e verifique-os explicitamente. Ampliar para outras formas de Markdown é uma mudança de requisito, não uma consequência automática de limpar o analisador.

Como tratar um bloco não fechado?

Declare se entradas incompletas serão rejeitadas antes de implementar a alteração. A tarefa ilustrada as rejeita. Inclua um caso que chegue ao fim com um bloco aberto e verifique se o chamador apresenta esse resultado adequadamente.

Por que manter exemplos não aceitos nos testes?

Eles mostram onde o recurso termina. Uma expressão sugerida pelo modelo pode reconhecer formas extras acidentalmente, alterando o comportamento sem uma falha óbvia. Verifique conjuntamente texto aceito e texto intocado para preservar o limite pretendido.

Baixar para Windows ↗

FenceLilt · Atualizado 2026-10-25