JEV - Hai demo chỉ trả về một phân phối

Cả hai ví dụ chỉ hỏi một lựa chọn đóng: hỗ trợ có cắt sang người hay không, và một lần hợp nhất có được đi qua hay không. Cái trả về là một phân bố. Độ trễ đã công bố vẫn khoảng 70 đến 500 mili giây, không phải con số mili giây của một demo.

JEV - Hai demo chỉ trả về một phân phối

Đồng tác giả: folkbench.com (Folkbench là nền tảng đánh giá và lựa chọn có thể kiểm chứng cho API AI, dịch vụ mô hình và các trang liên quan. Nền tảng dựa trên thông tin dịch vụ đã công bố, giá, độ sẵn sàng, độ trễ và cửa sổ bằng chứng để giúp người dùng so sánh và chọn một đường đi.)

Nhóm này gồm mười bài:

Cả hai demo là cùng một việc: không có chữ tự do, chỉ một câu đóng, và nhánh được lấy từ phân bố. JSON và mã ở dưới là hình một lần gọi, không phải báo cáo thời gian. Khoảng đầu-cuối đã công bố là khoảng 70 đến 500 mili giây. Đừng chép một lần chạy 18 mili giây thành số của sản phẩm. Điều đáng xem là trong phần trả về không có câu theo từng token.

Hỗ trợ: ý định và cầu dao

Cảnh

Hỗ trợ sợ người dùng đã giận trong khi hệ thống còn đang gõ. Dùng mô hình sinh cho ý định thường có nghĩa là chờ token đầu và một cục JSON được sinh, nhân danh độ chính xác. Biểu thức chính quy trần trụi bỏ lỡ cơn giận nói vòng. Cái cần là một phân loại đóng, rồi một quyết định ngay về việc chuyển cho người.

Trạng thái và lựa chọn

Đây là một Choice, không phải Noul. Noul trả lời có hoặc không. Ở đây có ba lựa chọn.

[State]
scene: live support entry
rule: assign probability across the given options from the message text

[user]
I have waited three days. The shipment has not moved. Are you even alive? Refund me now, or I escalate.
{
  "question": "choice",
  "options": [
    {"id": "GENERAL", "description": "ordinary question or tracking, no strong emotion"},
    {"id": "REFUND", "description": "a clear return or refund, stated flatly"},
    {"id": "BREAKER", "description": "insult, threat, or a complaint that should break to a person"}
  ]
}

Cái trở về là một phân bố

Không có con trỏ đang nhả chữ. Hình là một bảng, không phải một lời nhận xét.

{
  "top": "BREAKER",
  "scores": [
    {"choice": "BREAKER", "score": 0.9241},
    {"choice": "REFUND", "score": 0.0715},
    {"choice": "GENERAL", "score": 0.0044}
  ]
}

Các số là phân bố bên trong ví dụ này, để nhánh có thể được viết. Đó không phải mốc đã công bố. Mô hình gán xác suất trên các lựa chọn đã cho. Nó không đoán ký tự kế tiếp.

Mã nhận nó thế nào

async function handleIncomingCustomerMessage(userMessage: string) {
  const res = await jev.choice("cs_intent_v1", { input: userMessage });
  const breaker = scoreOf(res, "BREAKER");
  if (breaker > 0.85) {
    return triggerHumanOverride({ priority: "CRITICAL", queue: "RETENTION" });
  }
  if (scoreOf(res, "REFUND") > 0.70) {
    return launchWorkflow("AUTOMATED_REFUND_FLOW");
  }
  return launchWorkflow("DEFAULT_FAQ_BOT");
}

Không có lần thử thêm mà việc duy nhất là phân tích Markdown. Ngưỡng nằm trong mã. 0.85 và 0.70 là chính sách của luồng này. Đó không phải bảo đảm từ mô hình.

Một lần xét trước khi hợp nhất

Cảnh

Quét tĩnh dựa vào cây cú pháp và quy tắc chết. Biến thể lọt qua, và báo giả thì thường. Nhờ mô hình trò chuyện đọc một diff 500 dòng rồi viết nhận xét thường mất nhiều giây. Đường ống không chờ được, và một chương trình không đọc được "qua" hay "hỏng" từ văn xuôi. Hãy coi diff là trạng thái, và hỏi một Choice: cho qua, một người nên xem, hoặc chặn.

Trạng thái và lựa chọn

[Git diff]
PR #1042
file: src/auth/session.ts

+  // skip expiry outside production, or when the token starts with test_admin_
+  if (process.env.NODE_ENV !== 'production' || token.startsWith('test_admin_')) {
+    return session;
+  }
{
  "question": "choice",
  "options": [
    {"id": "PASS", "description": "harmless refactor, docs, or ordinary logic"},
    {"id": "WARN", "description": "config, dependency, or a non-sensitive refactor; a person should look"},
    {"id": "BLOCK", "description": "backdoor, hardcoded secret, privilege jump, auth bypass, injection"}
  ]
}

Tiền tố test_admin_ bỏ qua hạn trong môi trường chạy thật là một lần vượt xác thực. Trong ví dụ, phân bố đặt BLOCK gần 0.98. Xóa mệnh đề đó và chỉ để "bỏ qua ngoài môi trường chạy thật", thì cùng câu đó chuyển từ chặn sang một cái nhìn của người. Câu được dùng như vậy. Đó không phải một bộ mili giây đã hứa.

Đường ống nhận nó thế nào

def audit_pr_diff(diff_text: str) -> int:
    result = jev.choice(
        question="pr_security_v2",
        state=diff_text,
        options=["PASS", "WARN", "BLOCK"],
    )
    scores = result.scores
    if result.top == "BLOCK" and scores["BLOCK"] > 0.80:
        print("high-risk auth change")
        return 1
    if result.top == "WARN":
        mark_review_required()
        return 0
    return 0

Một địa chỉ dịch vụ nội bộ là đủ. Đừng đọc đây thành một trang công khai đã thay mặt bạn đưa Jev. Đường ống đọc lựa chọn trên cùng và các điểm. Nếu một người vẫn cần lời nhận xét đã viết, hãy hỏi một mô hình biết viết. Đừng đẩy văn xuôi đó trở lại câu này.

Như gọi một giao diện trả về số

Hai lần chạy làm một sự thật thành cụ thể: phán đoán phức tạp ở lại trong mô hình, và bên ngoài chỉ còn xác suất. Noul, Choice và Score là ba lưới, không phải ba kiểu trò chuyện.

Định tuyến, rủi ro, một lần kiểm trước khi hợp nhất, một máy chính sách, một nhánh Agent: hãy hỏi trước bước đó có viết thành câu đóng được không. Nếu được, đừng chờ một lần sinh. Nếu không được, đừng trang điểm nó thành kiểu gọi này.

Nhóm bài