From a4a59f7c08aabb575d3a211686706864af4af172 Mon Sep 17 00:00:00 2001 From: Jerron Lim Date: Thu, 23 May 2024 05:31:58 +0800 Subject: [PATCH] community[patch]: add args_schema to WikipediaQueryRun (#22019) Description: This change adds args_schema (pydantic BaseModel) to WikipediaQueryRun for correct schema formatting on LLM function calls Issue: currently using WikipediaQueryRun with OpenAI function calling returns the following error "TypeError: WikipediaQueryRun._run() got an unexpected keyword argument '__arg1' ". This happens because the schema sent to the LLM is "input: '{"__arg1":"Hunter x Hunter"}'" while the method should be called with the "query" parameter. --------- Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com> Co-authored-by: Bagatur --- .../langchain_community/tools/wikipedia/tool.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libs/community/langchain_community/tools/wikipedia/tool.py b/libs/community/langchain_community/tools/wikipedia/tool.py index a74d437538d42..66af94e41a055 100644 --- a/libs/community/langchain_community/tools/wikipedia/tool.py +++ b/libs/community/langchain_community/tools/wikipedia/tool.py @@ -1,13 +1,20 @@ """Tool for the Wikipedia API.""" -from typing import Optional +from typing import Optional, Type from langchain_core.callbacks import CallbackManagerForToolRun +from langchain_core.pydantic_v1 import BaseModel, Field from langchain_core.tools import BaseTool from langchain_community.utilities.wikipedia import WikipediaAPIWrapper +class WikipediaQueryInput(BaseModel): + """Input for the WikipediaQuery tool.""" + + query: str = Field(description="query to look up on wikipedia") + + class WikipediaQueryRun(BaseTool): """Tool that searches the Wikipedia API.""" @@ -20,6 +27,8 @@ class WikipediaQueryRun(BaseTool): ) api_wrapper: WikipediaAPIWrapper + args_schema: Type[BaseModel] = WikipediaQueryInput + def _run( self, query: str,