Spaces:
Running
Running
| from transformers import Tool | |
| class WolframAlpha(Tool): | |
| name = "wolfram_alpha" | |
| description = ("This is a tool that uses WolframAlpha to compute any mathematical question. It takes one input query, and returns a verbose result in xml format, which includes the solution.") | |
| inputs = ["query"] | |
| outputs = ["result"] | |
| def __call__(self, query, output='xml', pod_format='plaintext'): | |
| base_url = 'http://api.wolframalpha.com/v2/query' | |
| output_opts = ['xml','json'] | |
| format_opts = ['plaintext', 'image', 'image,imagemap', 'mathml', 'sound', 'wav'] | |
| if output not in output_opts: | |
| return f"{output} is not a correct output parameter! It must be one of these: {output_opts}" | |
| if pod_format not in format_opts: | |
| return f"{pod_format} is not a correct pod_format parameter! It must be one of these: {format_opts}" | |
| params = { | |
| 'input': query, | |
| 'output': output, | |
| 'appid': CFG_appid, | |
| } | |
| print("About to response") | |
| response = requests.get(base_url, params=params) | |
| print("response:",response) | |
| if response.status_code == 200: | |
| if output == 'xml': | |
| return response.text | |
| elif output == 'json': | |
| # Remove unnecessary empty spaces | |
| return str(response.json()) | |
| else: | |
| return f"There was an error with the request, with response: {response}" | |