FFenceLilt
Рабочая среда с ИИ для кода

Ограниченное извлечение блоков с обратными кавычками

FenceLilt предоставляет пространство проекта Windows для обсуждения ограниченного извлечения блоков текста с ИИ. Сопоставьте парсер от совместимой модели с точными правилами маркеров и отделяйте извлечённый текст от выполнения.

● ● ●FenceLilt●
Конкретная отправная точка · Ограниченное извлечение блоков с обратными кавычками ×
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
✳Ограниченное извлечение блоков с обратными кавычками
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
  1. Подключение

    Базовый URL, учётные данные и доступный сервер.

  2. Проект

    Проверьте пустые блоки и нормализацию переводов строк, отклоните незакрытый блок и не интерпретируйте другие формы Markdown, не выполняя код.

  3. Проверьте перед применением

    Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.

Сценарии

Ограниченное извлечение блоков с обратными кавычками

Сценарии ↗
Конкретная отправная точка
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
Рабочая среда с ИИ для кода

Отделяйте контракт извлечения от выполнения

FenceLilt предоставляет рабочую среду программирования с ИИ для Windows разработчикам небольших функций обработки текста с намеренно ограниченными правилами ввода. Откройте проект и опишите, что функция должна распознавать, что оставлять без изменений и как сообщать о неполном вводе. Тогда подключённая модель сможет изучить исходники и предложить изменение в этих границах.

Извлечение ограждённых блоков кода — конкретная задача. Используйте правила маркеров и меток языка существующего примера для обсуждения допустимых форм, включая пустые блоки и переводы строк. Попросите помощника объяснить обработку незакрытого блока предлагаемым парсером перед проверкой реализации. Извлечённое тело — текст; решение выполнить что-либо из него было бы другой функцией с другими требованиями.

После изучения правки запустите в проекте тесты точного вывода, включив неподдерживаемые формы, которые не должны случайно переинтерпретироваться. Проверяйте ограничение размера и обработку ошибок вместе с успешным извлечением. Для помощи ИИ настройте поддерживаемую конечную точку, совместимую с OpenAI, или конечную точку Anthropic, указав учётные данные при необходимости. Модель без ограничений можно выбрать, если сервис её предоставляет; объём контекста и доступность инструментов зависят от сервера. Полезная сессия заканчивается изменением, допустимый язык и поведение при ошибках которого можно ясно описать.

Проверка функции извлечения с ограниченными правилами

Означает ли извлечение блока кода выполнение его содержимого?

Нет. Эта задача возвращает текст согласно заданному контракту маркеров. Отделяйте последующее решение о выполнении от извлечения и проверяйте следующий код, чтобы обработка возвращённого тела неожиданно не запускала команды и не выполняла исходники.

Должна ли процедура принимать все стили ограждений Markdown?

Существующий пример намеренно поддерживает ограниченную форму. Перечислите маркеры и метки, нужные приложению, и явно проверьте их. Расширение до других форм Markdown — изменение требований, а не автоматическое следствие очистки парсера.

Как обрабатывать незакрытый блок?

Укажите, отклоняется ли неполный ввод, до реализации изменения. Показанная задача его отклоняет. Добавьте тест, достигающий конца при открытом блоке, и убедитесь, что вызывающий код правильно представляет этот исход.

Зачем сохранять неподдерживаемые примеры в тестах?

Они показывают границы функции. Предложенное моделью выражение может случайно распознать дополнительные формы, изменив поведение без очевидной ошибки. Проверяйте принимаемый и нетронутый текст вместе, чтобы реализация сохраняла нужную границу.

Скачать для Windows ↗

FenceLilt · Обновлено 2026-10-25