Bouw een Wikipedia-tool
De schoolleiding is erg blij met je werk! Ze willen de chatbot nog krachtiger maken door externe bronnen toe te voegen. Jij stelt voor om de chatbot toegang te geven tot Wikipedia. De schoolleiding gaat akkoord met het verlengen van je opdracht, dus besluit je een tool voor de chatbot te bouwen met de Wikipedia-API.
De volgende modules zijn alvast voor je geïmporteerd: WikipediaQueryRun, WikipediaAPIWrapper
Deze oefening maakt deel uit van de cursus
Agentic Systems ontwerpen met LangChain
Oefeninstructies
- Maak een
api_wrapperdieWikipediaAPIWrapper()initialiseert mettop_k_results=1om alleen het bovenste Wikipedia-resultaat op te halen. - Maak een
WikipediaQueryRun()-tool met de naamwikipedia_toolen geef deapi_wrapperals invoer mee voordat je deze opslaat in een lijsttools. - Bind de lijst
toolsaan dellmdoor deze door te geven aan de.bind_tools()-methode. - Om de chatbot het antwoord via de tool te laten geven, geef je de inhoud van
"messages"instatedoor aan de.invoke()-methode en pas je deze toe opllm_with_tools.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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": [____.____(____["____"])]}