File size: 638 Bytes
ceb70c7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#
# SPDX-FileCopyrightText: Hadad <hadad@linuxmail.org>
# SPDX-License-Identifier: Apache-2.0
#

import json

def extract_tool_parameters(raw_parameters, fallback_engine="google"):
    try:
        parsed_params = json.loads(raw_parameters or "{}")
        if "engine" in parsed_params and parsed_params["engine"] not in ["google", "bing", "baidu"]:
            parsed_params["engine"] = fallback_engine
        if "engine" not in parsed_params:
            parsed_params["engine"] = fallback_engine
        return parsed_params, None
    except Exception as parse_error:
        return None, f"Invalid tool arguments: {str(parse_error)}"