PPointerMallow
مساحة عمل برمجية بالذكاء الاصطناعي

التنقل باستخدام JSON Pointer

حل مؤشر JSON Pointer ضمن القواميس والقوائم دون تعديلها.

● ● ●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

المشروع

اختبر مؤشر الجذر الفارغ والمفاتيح المهربة وارفض الهروب غير الصحيح والأعضاء المفقودة وفهارس المصفوفة غير القياسية.

02

راجع قبل التطبيق

قارن السلوك الفعلي بالنتيجة المتوقعة. إذا فشل فحص، تحقّق من السبب قبل إجراء تغييرات إضافية.

03

النماذج

اضبط نقطة اتصال متوافقة مع OpenAI أو Anthropic باستخدام العنوان الأساسي ومفتاح API عند الحاجة. اختبر الاتصال. يجب أن يعمل خادم النموذج المحلي؛ وقد ترسل الأدوات البعيدة البيانات بشكل منفصل.

سير العمل

التنقل باستخدام 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