ПочатиПочніть безкоштовно

Створіть функцію для повернення відповіді LLM

Ваш чат-бот тепер має чимало інструментів. Однак корисно викликати LLM і самостійно, коли запит не стосується жодного з доданих до чат-бота інструментів. Тепер ви визначите функцію, яка перевіряє останнє повідомлення в розмові на наявність можливих викликів інструментів. Якщо їх немає, чат-бот просто використає LLM, щоб повернути відповідь. Щоб обробляти і запити користувача, і відповіді чат-бота, для вас імпортовано такі модулі для роботи з різними типами повідомлень.

from langchain_core.messages import AIMessage, HumanMessage

Ця вправа є частиною курсу

Проєктування агентних систем з LangChain

Переглянути курс

Інструкції до вправи

  • Отримайте останнє повідомлення зі state, використовуючи "messages".
  • Напишіть умовний вираз, щоб перевірити, чи є last_message екземпляром AIMessage і чи містить це повідомлення tool_calls.
  • Якщо умова виконується, поверніть перший "response" з tool_calls, взятий з last_message, у полі content об'єкта AIMessage.
  • Якщо умова не виконується, застосуйте .invoke() до model_with_tools, щоб згенерувати відповідь, передавши повну історію розмови з state["messages"].

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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": [____.____(____["____"])]}
Редагувати та запускати код