Trích khối dấu huyền có giới hạn
Trích khối ba dấu huyền ở cột không từ văn bản tối đa 4096 ký tự với nhãn ngôn ngữ ASCII tùy chọn.
import re
def fenced_blocks(text):
if type(text) is not str or len(text) > 4096:
raise ValueError("fence.input")
blocks, body, language = [], None, None
for line in text.splitlines():
if body is None:
opening = re.fullmatch(r"```([A-Za-z0-9_-]*)", line)
if opening:
body, language = [], opening[1]
elif line == "```":
blocks.append((language, "\n".join(body)))
body = None
else:
body.append(line)
if body is not None:
raise ValueError("fence.unclosed")
return blocks
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
Thử khối rỗng và xuống dòng chuẩn hóa, từ chối khối chưa đóng và để nguyên dạng Markdown khác mà không chạy mã.
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.
import re
def fenced_blocks(text):
if type(text) is not str or len(text) > 4096:
raise ValueError("fence.input")
blocks, body, language = [], None, None
for line in text.splitlines():
if body is None:
opening = re.fullmatch(r"```([A-Za-z0-9_-]*)", line)
if opening:
body, language = [], opening[1]
elif line == "```":
blocks.append((language, "\n".join(body)))
body = None
else:
body.append(line)
if body is not None:
raise ValueError("fence.unclosed")
return blocks
Tách quy ước trích xuất khỏi việc thực thi
FenceLilt cung cấp không gian lập trình AI trên Windows cho lập trình viên xây dựng tính năng xử lý văn bản nhỏ với quy tắc đầu vào được chủ ý giới hạn. Mở dự án và mô tả tính năng nên nhận diện gì, để nguyên gì và báo đầu vào chưa hoàn chỉnh thế nào. Mô hình kết nối sau đó có thể kiểm tra nguồn và đề xuất thay đổi theo những ranh giới đó.
Trích xuất khối mã có dấu rào cung cấp nhiệm vụ cụ thể. Dùng quy tắc dấu đánh dấu và nhãn ngôn ngữ của ví dụ hiện có để thảo luận dạng chấp nhận, bao gồm khối rỗng và xuống dòng. Yêu cầu trợ lý giải thích bộ phân tích đề xuất xử lý khối chưa đóng thế nào trước khi rà soát triển khai. Phần thân trích xuất là văn bản; chọn chạy bất cứ thứ gì từ nó là tính năng khác với yêu cầu khác.
Chạy dữ liệu kiểm thử đầu ra chính xác trong dự án sau khi kiểm tra bản vá, bao gồm dạng không hỗ trợ không được vô tình diễn giải lại. Rà soát giới hạn kích thước và xử lý lỗi cùng trích xuất thành công. Để được AI hỗ trợ, cấu hình đ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. Có thể chọn mô hình không hạn chế nếu dịch vụ cung cấp, còn dung lượng ngữ cảnh và công cụ khả dụng phụ thuộc máy chủ. Phiên làm việc hữu ích kết thúc bằng thay đổi có ngôn ngữ chấp nhận và hành vi thất bại bạn mô tả rõ được.
Kiểm tra tính năng trích xuất có giới hạn
Trích xuất khối mã có nghĩa là chạy nội dung không?
Không. Nhiệm vụ này trả văn bản theo quy ước dấu đánh dấu xác định. Tách mọi quyết định thực thi sau đó khỏi trích xuất, và rà soát mã phía sau để việc xử lý phần thân trả về không bất ngờ gọi lệnh hay đánh giá mã nguồn.
Thủ tục này có nên chấp nhận mọi kiểu dấu rào Markdown không?
Ví dụ hiện có chủ ý hỗ trợ dạng giới hạn. Liệt kê dấu và nhãn ứng dụng cần, rồi kiểm tra rõ từng loại. Mở rộng sang dạng Markdown khác là thay đổi yêu cầu, không phải hệ quả tự động của việc dọn bộ phân tích.
Nên xử lý khối chưa đóng thế nào?
Nêu liệu đầu vào chưa hoàn chỉnh có bị từ chối trước khi triển khai thay đổi. Nhiệm vụ minh họa từ chối nó. Đưa dữ liệu kiểm thử đi đến cuối khi khối vẫn mở và xác minh mã gọi trình bày kết quả đó phù hợp.
Tại sao giữ ví dụ không hỗ trợ trong kiểm thử?
Chúng thể hiện nơi tính năng dừng lại. Biểu thức mô hình gợi ý có thể vô tình nhận diện thêm dạng, thay đổi hành vi mà không có lỗi rõ ràng. Kiểm tra cùng lúc văn bản được chấp nhận và để nguyên để triển khai giữ ranh giới mong muốn.
FenceLilt · Cập nhật 2026-10-25