@@ -143,7 +143,7 @@ def _get_google_search(**kwargs: Any) -> Tool:
143
143
"news-api" : (_get_news_api , ["news_api_key" ]),
144
144
"tmdb-api" : (_get_tmdb_api , ["tmdb_bearer_token" ]),
145
145
}
146
- _EXTRA_TOOLS = {
146
+ _EXTRA_OPTIONAL_TOOLS = {
147
147
"wolfram-alpha" : (_get_wolfram_alpha , ["wolfram_alpha_appid" ]),
148
148
"google-search" : (_get_google_search , ["google_api_key" , "google_cse_id" ]),
149
149
}
@@ -172,7 +172,7 @@ def load_tools(
172
172
elif name in _EXTRA_LLM_TOOLS :
173
173
if llm is None :
174
174
raise ValueError (f"Tool { name } requires an LLM to be provided" )
175
- _get_tool_func , extra_keys = _EXTRA_TOOLS [name ]
175
+ _get_tool_func , extra_keys = _EXTRA_OPTIONAL_TOOLS [name ]
176
176
missing_keys = set (extra_keys ).difference (kwargs )
177
177
if missing_keys :
178
178
raise ValueError (
@@ -181,15 +181,9 @@ def load_tools(
181
181
)
182
182
sub_kwargs = {k : kwargs [k ] for k in extra_keys }
183
183
tools .append (_get_tool_func (llm = llm , ** sub_kwargs ))
184
- elif name in _EXTRA_TOOLS :
185
- _get_tool_func , extra_keys = _EXTRA_TOOLS [name ]
186
- missing_keys = set (extra_keys ).difference (kwargs )
187
- if missing_keys :
188
- raise ValueError (
189
- f"Tool { name } requires some parameters that were not "
190
- f"provided: { missing_keys } "
191
- )
192
- sub_kwargs = {k : kwargs [k ] for k in extra_keys }
184
+ elif name in _EXTRA_OPTIONAL_TOOLS :
185
+ _get_tool_func , extra_keys = _EXTRA_OPTIONAL_TOOLS [name ]
186
+ sub_kwargs = {k : kwargs [k ] for k in extra_keys if k in kwargs }
193
187
tools .append (_get_tool_func (** sub_kwargs ))
194
188
195
189
else :
@@ -199,4 +193,4 @@ def load_tools(
199
193
200
194
def get_all_tool_names () -> List [str ]:
201
195
"""Get a list of all possible tool names."""
202
- return list (_BASE_TOOLS ) + list (_EXTRA_TOOLS ) + list (_LLM_TOOLS )
196
+ return list (_BASE_TOOLS ) + list (_EXTRA_OPTIONAL_TOOLS ) + list (_LLM_TOOLS )
0 commit comments