Bỏ qua đến nội dung chính

Controlling model output

📖 Nội dung bài học

Lùi← Chuyển %0-9 Đường viền ký tự

Tóm tắt

Ngoài việc tạo ra các prompt tốt hơn, có hai kỹ thuật mạnh mẽ để kiểm soát đầu ra của Claude: tin nhắn trợ lý được điền trước và chuỗi dừng. Các phương pháp này cho phép bạn kiểm soát chính xác cách Claude phản hồi và khi nào nó dừng việc tạo văn bản.

Tin nhắn trợ lý được điền trước

Việc điền trước tin nhắn cho phép bạn cung cấp phần đầu của phản hồi của Claude, điều này ảnh hưởng mạnh mẽ đến hướng trả lời của nó. Thay vì để Claude tự quyết định cách bắt đầu phản hồi, bạn cung cấp cho nó một phần mở đầu cụ thể để hướng cuộc trò chuyện.

Đây là cách nó hoạt động: bạn xây dựng danh sách tin nhắn thông thường của mình với câu hỏi của người dùng, nhưng sau đó thêm một tin nhắn trợ lý ở cuối có chứa phần đầu của phản hồi bạn muốn. Khi Claude xử lý điều này, nó sẽ thấy tin nhắn trợ lý và nghĩ rằng "Tôi đã bắt đầu trả lời câu hỏi này rồi, vì vậy tôi nên tiếp tục từ nơi tôi đã dừng lại."

Ví dụ, nếu bạn hỏi "Uống trà hay cà phê tốt hơn vào bữa sáng?" và điền trước với "Cà phê tốt hơn vì", Claude sẽ tiếp tục từ điểm đó và xây dựng một phản hồi ủng hộ cà phê. Điểm mấu chốt là Claude sẽ chọn chính xác nơi văn bản được điền trước của bạn kết thúc - nó sẽ không lặp lại những gì bạn đã viết.

Hãy xem điều này trong thực tế:

messages = []
add_user_message(messages, "Uống cà phê hay trà tốt hơn vào bữa sáng?")
add_assistant_message(messages, "Cà phê tốt hơn vì")

chat(messages)

Điều này trả về một cái gì đó như "nó có nhiều caffeine hơn." Lưu ý rằng Claude tiếp tục trực tiếp từ văn bản được điền trước của bạn, vì vậy bạn sẽ cần kết hợp cả hai phần để có được phản hồi đầy đủ: "Cà phê tốt hơn vì nó có nhiều caffeine hơn."

Bạn có thể hướng Claude theo bất kỳ hướng nào bằng cách thay đổi văn bản được điền trước của mình:

  • "Trà tốt hơn vì" - hướng đến trà
  • "Chúng giống nhau vì" - tạo ra một phản hồi trung lập

Chuỗi dừng

Chuỗi dừng buộc Claude kết thúc phản hồi của nó ngay lập tức khi nó tạo ra văn bản cụ thể. Điều này hữu ích khi bạn muốn cắt bớt đầu ra tại một điểm cụ thể hoặc ngăn Claude tiếp tục vượt quá một dấu hiệu nhất định.

Khái niệm này rất đơn giản: bạn cung cấp một danh sách các chuỗi và ngay khi Claude tạo ra bất kỳ chuỗi nào trong số đó, nó sẽ dừng lại và trả về bất cứ thứ gì nó đã tạo ra cho đến nay. Bản thân chuỗi dừng không được bao gồm trong phản hồi.

Để dùng chuỗi dừng, bạn cần sửa đổi hàm chat của mình để chấp nhận chúng làm một tham số:

def chat(messages, system=None, temperature=1.0, stop_sequences=[]):
    params = {
        "modelId": model_id,
        "messages": messages,
        "inferenceConfig": {
            "temperature": temperature,
            "stopSequences": stop_sequences
        },
    }

Đây là một ví dụ thực tế:

messages = []
add_user_message(messages, "Đếm từ 1 đến 10")

chat(messages, stop_sequences=["5"])

Điều này trả về "1, 2, 3, 4," và dừng lại trước khi bao gồm "5". Bạn có thể chỉ định nhiều chuỗi dừng và Claude sẽ dừng lại ở chuỗi nào nó gặp trước tiên:

chat(messages, stop_sequences=["5", "3, 4"])

Chuỗi dừng đặc biệt hữu ích cho:

  • Kiểm soát độ dài của phản hồi
  • Dừng ở các điểm ngắt tự nhiên trong đầu ra có cấu trúc
  • Ngăn Claude tiếp tục vượt quá các dấu hiệu hoặc dấu phân cách cụ thể

Cả hai kỹ thuật đều cho phép bạn kiểm soát chi tiết hành vi của Claude, cho phép bạn định hình các phản hồi theo những cách mà chỉ riêng việc prompting không thể đạt được.

Tải xuống

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?