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

Навигация по JSON Pointer

Косая черта может задавать путь или входить в имя ключа. PointerMallow объединяет структурированные примеры и код указателей в обсуждении Windows-проекта с ИИ, где результат поиска можно проверить до принятия правки.

● ● ●PointerMallow●
Конкретная отправная точка · Навигация по JSON Pointer ×
import re
def pointer_get(root, pointer):
    if not isinstance(pointer, str): raise ValueError("pointer text")
    if pointer == "": return root
    if not pointer.startswith("/"): raise ValueError("root slash")
    value = root
    for raw in pointer[1:].split("/"):
        if re.search(r"~(?![01])", raw): raise ValueError("escape")
        key = raw.replace("~1", "/").replace("~0", "~")
        if isinstance(value, dict): value = value[key]
        elif isinstance(value, list):
            if not re.fullmatch(r"0|[1-9][0-9]*", key):
                raise ValueError("array index")
            if len(key) > len(str(len(value))): raise IndexError(key)
            value = value[int(key)]
        else: raise ValueError("not a container")
    return value
✳Разрешите JSON Pointer в словарях и списках без их изменения.
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
01

Проект

Проверьте пустой указатель корня и экранированные ключи, отклоняя неверные escape-последовательности, отсутствующие элементы и неканонические индексы.

02

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

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

03

Подключение

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

Сценарии

Навигация по JSON Pointer

Сценарии ↗
Конкретная отправная точка
import re
def pointer_get(root, pointer):
    if not isinstance(pointer, str): raise ValueError("pointer text")
    if pointer == "": return root
    if not pointer.startswith("/"): raise ValueError("root slash")
    value = root
    for raw in pointer[1:].split("/"):
        if re.search(r"~(?![01])", raw): raise ValueError("escape")
        key = raw.replace("~1", "/").replace("~0", "~")
        if isinstance(value, dict): value = value[key]
        elif isinstance(value, list):
            if not re.fullmatch(r"0|[1-9][0-9]*", key):
                raise ValueError("array index")
            if len(key) > len(str(len(value))): raise IndexError(key)
            value = value[int(key)]
        else: raise ValueError("not a container")
    return value
Рабочая среда с ИИ для кода

Проследите поиск от входного пути до используемого значения

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

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

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

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

Определение поведения поиска в структурированных данных

Как отличить неверно сформированный путь от отсутствующего значения?

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

Нужно ли трактовать числовой ключ объекта как индекс массива?

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

Зачем использовать небольшой пример вместо полных данных?

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

Может ли выбор модели менять контракт поиска?

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

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

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