Dự án
Kiểm tra con trỏ gốc rỗng và khóa có ký tự thoát, từ chối chuỗi thoát lỗi, phần tử thiếu và chỉ số không chuẩn tắc.
Tra JSON Pointer trong từ điển và danh sách mà không sửa chúng.
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 valueKiểm tra con trỏ gốc rỗng và khóa có ký tự thoát, từ chối chuỗi thoát lỗi, phần tử thiếu và chỉ số không chuẩn tắc.
So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.
Cấu hình endpoint tương thích OpenAI hoặc Anthropic bằng URL cơ sở và khóa API nếu cần. Kiểm tra kết nối. Máy chủ mô hình cục bộ phải đang chạy; công cụ từ xa có thể truyền dữ liệu riêng.
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 valuePointerMallow cung cấp cho nhà phát triển không gian lập trình AI trên Windows để lần theo hành vi dữ liệu có cấu trúc trong dự án. Tra cứu thất bại dễ chẩn đoán hơn khi đường dẫn, cấu trúc dữ liệu và giá trị mong đợi cùng có trong trao đổi. Bắt đầu với dữ liệu tái hiện nhỏ và yêu cầu mô hình xem cách triển khai thực sự sử dụng nó.
Hãy xét tra cứu JSON Pointer như một yêu cầu. Cung cấp khóa đối tượng chứa dấu gạch chéo, chỉ mục mảng và đích không tồn tại, rồi nêu kết quả dự định cho từng ca. Yêu cầu sửa có trọng tâm nếu mã hiện tại xử lý sai các đường dẫn đó. Giá trị đến từ việc gắn dữ liệu thử với cách triển khai và mã gọi của bạn.
Rà soát đề xuất ngoài kết quả thành công. Đường dẫn không hợp lệ, khóa thiếu và duyệt qua giá trị vô hướng có thể cần cách xử lý khác nhau trong ứng dụng. Đọc thay đổi và chạy kiểm thử liên quan, kiểm tra lỗi đưa đến nơi sử dụng cẩn thận như giá trị trả về khi tra cứu hợp lệ.
Kết nối mô hình có thể dùng điểm cuối tương thích OpenAI hoặc Anthropic được hỗ trợ, với thông tin xác thực khi cần. Nếu chọn mô hình AI đã gỡ cơ chế từ chối được cung cấp ở đó, hạn chế nhà cung cấp vẫn áp dụng. Giới hạn ngữ cảnh và công cụ tùy mô hình và máy chủ, nên giữ dữ liệu thử nhỏ để trực tiếp đánh giá suy luận và mã đề xuất.
Cung cấp dữ liệu thử và kết quả mong đợi riêng cho cả hai. Hỏi trong mã hiện tại phần phân tích kết thúc và phần duyệt bắt đầu ở đâu, rồi rà soát cách từng lỗi đến mã gọi. Gộp chúng thành một kết quả rỗng có thể che lỗi đầu vào.
Kiểu dữ liệu chứa nó rất quan trọng. Thêm dữ liệu có khóa đối tượng trông như số và một dữ liệu mảng riêng. Rà soát nhánh xử lý đường dẫn từng loại thay vì cho rằng văn bản giống nhau luôn chỉ cùng loại vị trí.
Nó cô lập cấu trúc dữ liệu gây lỗi và giúp xác minh kết quả mong đợi. Bỏ trường không liên quan và giá trị nhạy cảm nhưng giữ đường dẫn lỗi, rồi xác nhận cách sửa với dữ liệu dự án tiêu biểu sau đó.
Quy ước thuộc ứng dụng của bạn. Mô hình khác có thể gợi ý quy ước lỗi khác nhưng điều đó không cho phép đổi hành vi. Cũng rà soát đích đến công cụ: máy chủ mô hình cục bộ không khiến mọi công cụ kết nối đều chạy cục bộ.
PointerMallow · Cập nhật 2026-10-25