BUG: HuggingFaceChatTarget runs model.generate() on the event loop

Đang mở Phù hợp với người mới
#4,046 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

@Shizoqua đang làm issue này rồi.

Từ ngày 7/11/2026.

  • #4047 của @Shizoqua — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
76/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
huggingface, python
Lĩnh vực
ai, backend

Hướng nghiên cứu

Tìm HuggingFaceChatTarget._send_prompt_to_target_async và kiểm tra nơi nó gọi self.model.generate(...); issue #2211 có thể cung cấp bối cảnh về việc chuyển tác vụ của model ra khỏi event loop. Tái hiện tình trạng bị chặn bằng cách patch generate để nó chờ một threading.Event, trong khi một tác vụ khác cố giải phóng sự kiện đó sau asyncio.sleep(0.05). Hoàn thành khi các tác vụ asyncio khác có thể chạy trong lúc tạo sinh.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Describe the bug

HuggingFaceChatTarget._send_prompt_to_target_async calls self.model.generate(...) directly inside the async method. Local generation can take seconds to minutes, and it blocks the event loop the whole time, so every other attack, scorer and target call in the same run stalls. #2211 moved model loading off the event loop, but generation still runs on it.

Steps/Code to Reproduce

In a unit test, patch the loaded model's generate to wait on a threading.Event, then send a prompt while another task tries to set that event after asyncio.sleep(0.05). The other task never runs until generate returns.

Expected Results

Other tasks keep running while the model generates.

Actual Results

The event loop is blocked for the full generation time.

Versions

PyRIT main.

Ngôn ngữ chính
Python
Star
4.7k
Fork
1k
Merge trung bình
2 ngày 4 giờ
Pull request đã merge (30 ngày)
510

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

  • Không có Dockerfile hay tệp Docker Compose
  • Có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của microsoft/PyRIT

Tất cả issue của microsoft/PyRIT

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.