المشروع
اختبر مؤشر الجذر الفارغ والمفاتيح المهربة وارفض الهروب غير الصحيح والأعضاء المفقودة وفهارس المصفوفة غير القياسية.
حل مؤشر 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اختبر مؤشر الجذر الفارغ والمفاتيح المهربة وارفض الهروب غير الصحيح والأعضاء المفقودة وفهارس المصفوفة غير القياسية.
قارن السلوك الفعلي بالنتيجة المتوقعة. إذا فشل فحص، تحقّق من السبب قبل إجراء تغييرات إضافية.
اضبط نقطة اتصال متوافقة مع OpenAI أو Anthropic باستخدام العنوان الأساسي ومفتاح API عند الحاجة. اختبر الاتصال. يجب أن يعمل خادم النموذج المحلي؛ وقد ترسل الأدوات البعيدة البيانات بشكل منفصل.
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، مع بيانات اعتماد حسب الحاجة. إن اخترت نموذج ذكاء اصطناعي منزوع القيود متاحا هناك، تظل قيود المزود سارية. تختلف حدود السياق والأدوات حسب النموذج والخادم، لذا احتفظ بحالات صغيرة تتيح تقييم الاستدلال والشيفرة المقترحة مباشرة.
قدم حالات اختبار ونتائج متوقعة منفصلة لكليهما. اسأل أين ينتهي التحليل ويبدأ الاجتياز في الشيفرة الحالية، ثم راجع وصول كل فشل إلى المستدعي. قد يخفي اختزالهما إلى نتيجة فارغة واحدة خطأ إدخال.
نوع البيانات الحاوية مهم. أدرج حالة بمفتاح كائن يبدو رقميا وحالة مصفوفة منفصلة. راجع فرع معالجة المسار لكل منهما بدلا من افتراض أن النص المطابق يسمي دائما نوع الموضع نفسه.
تعزل شكل البيانات المسؤول عن المشكلة وتسهل التحقق من النتيجة المتوقعة. أزل الحقول غير المرتبطة والقيم الحساسة مع حفظ المسار الفاشل، ثم أكد التصحيح على بيانات ممثلة للمشروع لاحقا.
العقد ملك لتطبيقك. قد يقترح نموذج آخر اصطلاح أخطاء مختلفا، لكن ذلك لا يجيز تغييرا سلوكيا. راجع وجهات الأدوات أيضا: لا يجعل خادم نماذج محلي كل أداة متصلة محلية.
PointerMallow · آخر تحديث 2026-10-25