Giải mã thân chunked có giới hạn
Giải mã thân chunked giới hạn từ tối đa 65536 byte với đầu ra tối đa 4096 byte.
def chunk_body(wire):
if type(wire) is not bytes or len(wire) > 65536:
raise ValueError("bounded bytes")
pos, body = 0, bytearray()
while True:
end = wire.find(b"\r\n", pos)
token = wire[pos:end] if end >= 0 else b""
if not 1 <= len(token) <= 8 or any(
c not in b"0123456789abcdefABCDEF" for c in token):
raise ValueError("plain hexadecimal size")
size, pos = int(token, 16), end + 2
if size == 0:
if wire[pos:] != b"\r\n":
raise ValueError("no trailers or extra bytes")
return bytes(body)
if len(body) + size > 4096:
raise ValueError("body limit")
if pos + size + 2 > len(wire):
raise ValueError("truncated chunk")
if wire[pos + size:pos + size + 2] != b"\r\n":
raise ValueError("chunk delimiter")
body.extend(wire[pos:pos + size])
pos += size + 2- 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
- Kiểm tra CRLF bên trong và khối không, từ chối dữ liệu cắt cụt, phần mở rộng, trường cuối và byte dư.
- 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.
def chunk_body(wire):
if type(wire) is not bytes or len(wire) > 65536:
raise ValueError("bounded bytes")
pos, body = 0, bytearray()
while True:
end = wire.find(b"\r\n", pos)
token = wire[pos:end] if end >= 0 else b""
if not 1 <= len(token) <= 8 or any(
c not in b"0123456789abcdefABCDEF" for c in token):
raise ValueError("plain hexadecimal size")
size, pos = int(token, 16), end + 2
if size == 0:
if wire[pos:] != b"\r\n":
raise ValueError("no trailers or extra bytes")
return bytes(body)
if len(body) + size > 4096:
raise ValueError("body limit")
if pos + size + 2 > len(wire):
raise ValueError("truncated chunk")
if wire[pos + size:pos + size + 2] != b"\r\n":
raise ValueError("chunk delimiter")
body.extend(wire[pos:pos + size])
pos += size + 2Giữ định dạng bộ giải mã chấp nhận thật rõ ràng
Bộ giải mã cần câu trả lời chính xác về nơi đầu vào hợp lệ kết thúc và việc từ chối bắt đầu. ChunkRavel là không gian lập trình AI trên Windows để phát triển ranh giới đó với mã dự án trước mắt. Mô tả định dạng đầu vào hỗ trợ, giới hạn kích thước và kết quả kỳ vọng, rồi yêu cầu trợ lý kiểm tra cách triển khai hiện có tiến qua các byte và báo thất bại.
Ví dụ thân chia khối có giới hạn là một nhiệm vụ bạn có thể xem xét. Nó chủ ý chấp nhận dạng hẹp, nên rà soát phần mở rộng và trường cuối không hỗ trợ cùng đầu vào cắt cụt và byte thừa. Yêu cầu thay đổi giữ giới hạn đã nêu trừ khi yêu cầu mở rộng rõ ràng. Cũng lần theo đầu ra giải mã vào mã gọi, vì kết quả byte đúng vẫn có thể bị thành phần nhận xử lý sai.
Với lựa chọn AI đã gỡ cơ chế từ chối, chọn mô hình có sẵn qua điểm cuối tương thích OpenAI hoặc Anthropic được hỗ trợ và cung cấp thông tin xác thực khi cần. Mô hình và máy chủ quyết định ngữ cảnh, công cụ và hạn chế áp dụng. Kiểm tra bản so sánh thay đổi và chạy dữ liệu hợp lệ, không hợp lệ qua kiểm thử dự án trước khi chấp nhận sửa bộ giải mã. Máy chủ mô hình cục bộ chạy riêng không khiến mọi công cụ hoặc dịch vụ kết nối đều cục bộ.
Rà soát quy ước hẹp của bộ giải mã
- Bộ giải mã có nên chấp nhận mọi dạng đầu vào chia khối?
Chỉ nếu đó là yêu cầu ứng dụng và triển khai được thiết kế, kiểm thử cho điều đó. Ví dụ hỗ trợ dạng giới hạn. Ghi rõ phần mở rộng, trường cuối và trường hợp không hỗ trợ khác thay vì coi minh họa hẹp là hỗ trợ giao thức đầy đủ.
- Tôi nên kiểm thử thân dữ liệu cắt cụt thế nào?
Cung cấp dữ liệu bị cắt ở ranh giới có ý nghĩa, gồm bên trong chuỗi kích thước, thân và dấu phân cách. Nêu hành vi từ chối kỳ vọng. Chạy qua điểm vào bộ giải mã thực tế để kết quả kiểm tra gồm cả xử lý đầu vào xung quanh.
- Tại sao kiểm tra byte còn lại sau khối cuối?
Ứng dụng cần chính sách xác định cho đầu vào chưa tiêu thụ. Kiểm tra liệu byte thừa nên bị từ chối hay do lớp khác xử lý, rồi kiểm thử quy ước đó. Vô tình bỏ qua chúng có thể che giấu bất đồng giữa bộ giải mã và mã gọi.
- Tên miền liên quan SQL có ngụ ý tính năng giải mã cơ sở dữ liệu không?
Không có tính năng như vậy được tuyên bố. Ví dụ dự án cung cấp liên quan giải mã byte, còn ChunkRavel là không gian lập trình AI trên Windows. Chọn tệp dự án và môi trường chạy thực tế cho nhiệm vụ thay vì suy ra khả năng sản phẩm từ tên miền.
ChunkRavel · Cập nhật 2026-10-25