mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-05-23 06:00:17 +09:00
34 lines
1.0 KiB
TypeScript
34 lines
1.0 KiB
TypeScript
import { Tool } from "@langchain/core/tools";
|
|
|
|
export class WolframAlphaTool extends Tool {
|
|
name = "wolfram_alpha_llm";
|
|
|
|
description = `A wrapper around Wolfram Alpha. Useful for when you need to answer questions about Math, Science, Technology, Culture, Society and Everyday Life. Input should be a search query. If the result contains an image link, use the markdown syntax to return the image.`;
|
|
|
|
constructor() {
|
|
super();
|
|
}
|
|
|
|
async _call(query: string) {
|
|
const appid = process.env.WOLFRAM_ALPHA_APP_ID;
|
|
if (!appid) {
|
|
return "`WOLFRAM_ALPHA_APP_ID` Not configured";
|
|
}
|
|
const url = `https://www.wolframalpha.com/api/v1/llm-api?appid=${appid}&input=${encodeURIComponent(
|
|
query,
|
|
)}`;
|
|
console.log("[WolframAlphaTool]", url);
|
|
try {
|
|
const res = await fetch(url, {
|
|
method: "GET",
|
|
});
|
|
const resText = await res.text();
|
|
console.log(resText);
|
|
return resText;
|
|
} catch (ex) {
|
|
console.error("[WolframAlphaTool]", ex);
|
|
return "query error";
|
|
}
|
|
}
|
|
}
|