Đường của user và đường của evaluation phải tách nhau

Đường của user và đường của evaluation phải tách nhau A data-flow diagram generated by Archify. 01 / Request 02 / Xử lý 03 / Phản hồi 04 / Sau khi user đã rời đi User · đang chờ câu trả lời · 01 / Request User đang chờ câu trả lời RAG pipeline · rewrite, retrieve, generate · 02 / Xử lý RAG pipeline rewrite, retrieve, generate Câu trả lời · trả ngay, không chờ judge · 03 / Phản hồi Câu trả lời trả ngay, không chờ judge User đã có kết quả · trước khi chấm điểm xong · 04 / Sau khi user đã rời đi User đã có kết quả trước khi chấm điểm xong Trace exporter · ghi bất đồng bộ · 02 / Xử lý Trace exporter ghi bất đồng bộ Judge và kiểm tra rẻ · chậm cũng không ai chờ · 03 / Phản hồi Judge và kiểm tra rẻ chậm cũng không ai chờ Metrics store · dashboard và cảnh báo · 04 / Sau khi user đã rời đi Metrics store dashboard và cảnh báo một request sinh câu trả lời trả về ngay bản sao của trace qua hàng đợi điểm kèm lý do Legend primary data data store data flow

Judge không được nằm trên critical path

  • • Generation 1,8 giây cộng hai judge có thể thành hơn 4 giây
  • • Judge còn trở thành một dependency mới của request path
  • • Judge lỗi hoặc rate limit sẽ kéo theo cả sản phẩm

Development thì ngược lại

  • • Lúc phát triển, chấm điểm ngay tại chỗ là hợp lý
  • • DeepEval để metrics chạy chặn đúng cho mục đích đó
  • • Production thì chuyển sang metric collection bất đồng bộ

Hệ quả kiến trúc

  • • Trace store thành nguồn dữ liệu, không phải log để ngắm
  • • Sampler đứng giữa trace store và judge để giữ chi phí
  • • Alert đọc từ metrics store, không đọc từ request