Bắt đầu ngayBắt đầu miễn phí

Tạo một hàm để trả về phản hồi từ LLM

Chatbot của bạn hiện có rất nhiều tool. Tuy vậy, vẫn hữu ích khi gọi LLM trực tiếp khi câu hỏi không liên quan đến bất kỳ tool nào đã được thêm vào chatbot. Giờ bạn sẽ định nghĩa một hàm kiểm tra tin nhắn cuối cùng trong cuộc hội thoại để tìm các lời gọi tool tiềm năng. Nếu không có, chatbot sẽ chỉ dùng LLM để trả lời. Để có thể xử lý cả truy vấn của người dùng lẫn phản hồi của chatbot, các mô-đun sau đã được nhập sẵn để xử lý các kiểu tin nhắn khác nhau.

from langchain_core.messages import AIMessage, HumanMessage

Bài tập này là một phần của khóa học

Thiết kế Hệ thống Agentic với LangChain

Xem khóa học

Hướng dẫn bài tập

  • Truy cập tin nhắn cuối cùng từ state bằng "messages".
  • Viết câu lệnh điều kiện để kiểm tra xem last_message có phải là AIMessage và tin nhắn này cũng có tool_calls.
  • Nếu điều kiện thỏa, trả về "response" đầu tiên từ tool_calls lấy từ last_message trong trường content của AIMessage.
  • Nếu điều kiện không thỏa, áp dụng .invoke() lên model_with_tools để tạo phản hồi, truyền toàn bộ lịch sử hội thoại từ state["messages"].

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Extract the last message from the history
def call_model(state: MessagesState):
    ____ = ____["____"][____]

    # If the last message has tool calls, return the tool's response
    if isinstance(____, ____) and ____.____:
        
        # Return only the messages from the tool call
        return {"messages": [____(content=____.____[0]["____"])]}
    
    # Otherwise, proceed with a regular LLM response
    return {"messages": [____.____(____["____"])]}
Chỉnh sửa và Chạy Mã