import re
from urllib.parse import parse_qsl, urlencode
def append_query(query, key, value):
if any(type(x) is not str for x in (query, key, value)):
raise ValueError("query.type")
if re.search(r"%(?![0-9A-Fa-f]{2})", query):
raise ValueError("query.escape")
pairs = parse_qsl(query, keep_blank_values=True,
strict_parsing=True, errors="strict", max_num_fields=1000)
return urlencode([*pairs, (key, value)])
✳Cặp truy vấn URL có thứ tự
✓ Thay đổiKiểm tra trước khi áp dụng ↗
Minh họa không gian làm việc
Kiểm tra trước khi áp dụng
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.
Mô hình
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.
Dự án
Phân biệt dấu cộng mã hóa %2B với khoảng trắng và từ chối mã phần trăm hay UTF-8 sai.
import re
from urllib.parse import parse_qsl, urlencode
def append_query(query, key, value):
if any(type(x) is not str for x in (query, key, value)):
raise ValueError("query.type")
if re.search(r"%(?![0-9A-Fa-f]{2})", query):
raise ValueError("query.escape")
pairs = parse_qsl(query, keep_blank_values=True,
strict_parsing=True, errors="strict", max_num_fields=1000)
return urlencode([*pairs, (key, value)])
Không gian lập trình với AI
Giữ nguyên ý nghĩa yêu cầu khi thay đổi mã URL
QueryNest là không gian lập trình AI trên Windows dành cho nhà phát triển cần sửa mã tạo yêu cầu mà không làm mất ý nghĩa đầu vào. Chọn thư mục dự án và mô tả những giá trị truy vấn phải được giữ sau thay đổi. Yêu cầu trợ lý kết nối kiểm tra cả phân tích lẫn tuần tự hóa, kể cả những nơi gọi phụ thuộc vào thứ tự, trường rỗng hoặc tên lặp. Nhờ vậy, chỉnh sửa chuỗi trở thành nhiệm vụ ứng dụng có thể rà soát.
Trong ví dụ query_pairs.py, việc thêm một cặp đặt ra vấn đề về giá trị rỗng hiện có và chuỗi thoát sai định dạng. Bạn có thể dùng ngữ cảnh đó để xem xét hàm hỗ trợ tương tự trong dự án. QueryNest không cung cấp dịch vụ xử lý URL; ví dụ minh họa mã để trao đổi và xác minh. Đối chiếu đề xuất với dữ liệu ứng dụng chấp nhận thay vì cho rằng chuyển mọi thứ sang từ điển sẽ giữ nguyên yêu cầu.
Sau đó chạy kiểm tra dự án với truy vấn thông thường và những trường hợp phân biệt hành vi cũ với hành vi dự định. Kiểm tra kết quả tuần tự hóa lẫn dữ liệu bên sử dụng đọc được. QueryNest kết nối với điểm cuối tương thích OpenAI hoặc Anthropic được hỗ trợ, có thông tin xác thực khi cần. Có thể chọn mô hình không lọc nếu được cung cấp, nhưng hạn chế của nhà cung cấp vẫn áp dụng và máy chủ quyết định công cụ cùng ngữ cảnh. Quy ước yêu cầu vẫn là cơ sở chấp nhận mã.
Câu hỏi về sửa hàm hỗ trợ chuỗi truy vấn
Vì sao cần chú ý rõ ràng đến tên truy vấn lặp?
Một yêu cầu có thể chứa nhiều cặp cùng tên và bên sử dụng có thể phụ thuộc vào các giá trị đó. Cho trợ lý biết có cần giữ chúng hay không, rồi kiểm tra mọi cấu trúc dữ liệu được đề xuất có thể làm mất chúng.
Giá trị rỗng có giống trường vắng mặt không?
Không hẳn. Ứng dụng có thể hiểu trường rỗng khác với trường chưa từng được cung cấp. Đưa cả hai trường hợp vào nhiệm vụ và kiểm tra bộ phân tích cùng bộ tuần tự hóa trước khi quyết định rằng hành vi của chúng có thể thay thế nhau.
QueryNest có xác thực URL ứng dụng gửi đi không?
Ví dụ là quy trình phát triển, không phải cổng xác thực tự động. Bạn rà soát và kiểm thử mã hỗ trợ của mình trong dự án. Ứng dụng cần quy định dạng URL được chấp nhận và hành vi từ chối.
Nếu đầu ra mới được mã hóa khác thì sao?
Kiểm tra bên sử dụng có đọc được cùng giá trị hay không và dạng tuần tự hóa chính xác có quan trọng với tích hợp không. Văn bản có vẻ tương đương vẫn có thể ảnh hưởng chữ ký hoặc phép so sánh, nên nêu những phụ thuộc đó trước khi chấp nhận thay đổi chuẩn hóa.