Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • MCP - Multi-Turn conversations

    Multi-Turn Conversations

    Quản lý Cuộc trò chuyện Nhiều lượt
    Khi làm việc với Anthropic API và Claude, có một khái niệm quan trọng mà bạn cần hiểu: Claude không lưu trữ bất kỳ lịch sử cuộc trò chuyện nào của bạn. Mỗi yêu cầu bạn thực hiện đều hoàn toàn độc lập, không có ký ức gì về các trao đổi trước đó.
    Điều này có nghĩa là nếu bạn muốn có một cuộc trò chuyện nhiều lượt mà Claude nhớ ngữ cảnh từ các tin nhắn trước đó, bạn cần tự xử lý trạng thái cuộc trò chuyện.

    Click image for larger version

Name:	image.png
Views:	12
Size:	20.4 KB
ID:	436163
    Vấn đề với Cuộc trò chuyện Không lưu trạng thái
    Giả sử bạn hỏi Claude "Quantum computing là gì?" và nhận được phản hồi tốt. Sau đó bạn hỏi tiếp "Viết thêm một câu nữa" - Claude sẽ không biết bạn đang nói đến gì. Nó sẽ viết một câu về điều gì đó hoàn toàn ngẫu nhiên vì nó không có ký ức gì về cuộc thảo luận về quantum computing.
    Cách thức Hoạt động của Cuộc trò chuyện Nhiều lượt
    Để duy trì ngữ cảnh cuộc trò chuyện, bạn cần làm hai việc:
    • Tự duy trì danh sách tất cả messages trong code của bạn
    • Gửi toàn bộ lịch sử tin nhắn với mỗi yêu cầu
    Đây là luồng thực sự hoạt động:
    1. Gửi tin nhắn user ban đầu của bạn cho Claude
    2. Lấy phản hồi của Claude và thêm nó vào danh sách tin nhắn như một assistant message
    3. Thêm câu hỏi tiếp theo của bạn như một user message khác
    4. Gửi toàn bộ lịch sử cuộc trò chuyện cho Claude
    Xây dựng Các Hàm Trợ giúp
    Để làm cho việc quản lý cuộc trò chuyện dễ dàng hơn, bạn có thể tạo ba hàm trợ giúp:
    python
    def add_user_message(messages, text):
    user_message = {"role": "user", "content": text}
    messages.append(user_message)

    def add_assistant_message(messages, text):
    assistant_message = {"role": "assistant", "content": text}
    messages.append(assistant_message)

    def chat(messages):
    message = client.messages.create(
    model=model,
    max_tokens=1000,
    messages=messages,
    )
    return message.content[0].text
    Kết hợp Tất cả lại
    Đây là cách bạn sử dụng các hàm này để duy trì cuộc trò chuyện:
    python
    # Bắt đầu với danh sách tin nhắn trống
    messages = []
    # Thêm câu hỏi user ban đầu
    add_user_message(messages, "Định nghĩa quantum computing trong một câu")

    # Nhận phản hồi của Claude
    answer = chat(messages)
    # Thêm phản hồi của Claude vào lịch sử cuộc trò chuyện
    add_assistant_message(messages, answer)
    # Thêm câu hỏi tiếp theo
    add_user_message(messages, "Viết thêm một câu nữa")
    # Nhận phản hồi tiếp theo với toàn bộ ngữ cảnh
    final_answer = chat(messages)
    Bây giờ Claude sẽ hiểu rằng "Viết thêm một câu nữa" đề cập đến việc mở rộng định nghĩa về quantum computing, bởi vì bạn đã cung cấp toàn bộ ngữ cảnh cuộc trò chuyện.
    Các hàm trợ giúp này sẽ hữu ích trong suốt quá trình làm việc với Claude của bạn, giúp việc xây dựng các ứng dụng có thể duy trì cuộc trò chuyện có ý nghĩa qua nhiều trao đổi trở nên dễ dàng hơn nhiều.
Working...
X