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.
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:
Để 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.
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.
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
- Gửi tin nhắn user ban đầu của bạn cho Claude
- 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
- Thêm câu hỏi tiếp theo của bạn như một user message khác
- Gửi toàn bộ lịch sử cuộc trò chuyện cho Claude
Để 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.