Wikipedia 도구 만들기
학교 행정팀이 여러분의 작업에 매우 만족하고 있어요! 이제 외부 리소스를 통합해 챗봇을 더 강력하게 만들고 싶어 합니다. 여러분은 챗봇에 Wikipedia 접근 기능을 추가하자고 제안했고, 행정팀도 의뢰 연장을 승인했어요. 그래서 Wikipedia API를 사용해 챗봇용 도구를 만들어 보기로 했습니다.
다음 모듈이 시작을 돕기 위해 이미 임포트되어 있습니다: WikipediaQueryRun, WikipediaAPIWrapper
이 연습은 강의의 일부입니다
LangChain으로 에이전트형 시스템 설계하기
연습 안내
WikipediaAPIWrapper()를top_k_results=1로 초기화하는api_wrapper를 만들어, Wikipedia 상위 1개 결과만 가져오도록 하세요.api_wrapper를 입력으로 전달해wikipedia_tool이라는 이름의WikipediaQueryRun()도구를 만든 뒤, 이를tools라는 리스트에 저장하세요..bind_tools()메서드에tools리스트를 전달해llm에 바인딩하세요.- 챗봇이 도구로 응답하도록 유도하려면,
state의"messages"내용을.invoke()메서드에 전달하고 이를llm_with_tools에 적용하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Initialize Wikipedia API wrapper to fetch top one result
api_wrapper = ____(top_k_results=1)
# Create a Wikipedia query tool using the API wrapper
wikipedia_tool = ____(api_wrapper=____)
tools = [____]
# Bind the Wikipedia tool to the language model
llm_with_tools = ____.____(____)
# Modify chatbot function to respond with Wikipedia
def chatbot(state: State):
return {"messages": [____.____(____["____"])]}