feat: add wolframAlpha plugin

This commit is contained in:
Hk-Gosuto 2023-12-29 19:00:01 +08:00
parent 4551abdce8
commit 2a9b36f626
4 changed files with 40 additions and 6 deletions

View File

@ -76,15 +76,18 @@
- DuckDuckGo - DuckDuckGo
- 计算 - 计算
- [Calculator](https://js.langchain.com/docs/api/tools_calculator/classes/Calculator) - [Calculator](https://api.js.langchain.com/classes/langchain_tools_calculator.Calculator.html)
- [WolframAlpha](https://api.js.langchain.com/classes/langchain_tools.WolframAlphaTool.html)
- 环境变量:`WOLFRAM_ALPHA_APP_ID`
- 申请地址:[Wolfram|Alpha Developer Portal](https://developer.wolframalpha.com/)
- 网络请求 - 网络请求
- [WebBrowser](https://js.langchain.com/docs/api/tools_webbrowser/classes/WebBrowser) - [WebBrowser](https://api.js.langchain.com/classes/langchain_tools_webbrowser.WebBrowser.html)
- PDFBrowser - PDFBrowser
- ⚠ 仅在非 vercel 环境部署时可用 ⚠ - ⚠ 仅在非 vercel 环境部署时可用 ⚠
- 其它 - 其它
- [Wiki](https://js.langchain.com/docs/api/tools/classes/WikipediaQueryRun) - [Wiki](https://api.js.langchain.com/classes/langchain_tools.WikipediaQueryRun.html)
- DALL-E 3 - DALL-E 3
- DALL-E 3 插件需要配置对象存储服务,请参考 [对象存储服务配置指南](./docs/s3-oss.md) 配置 - DALL-E 3 插件需要配置对象存储服务,请参考 [对象存储服务配置指南](./docs/s3-oss.md) 配置
- 如无需图像转存则可以配置 `DALLE_NO_IMAGE_STORAGE=1` ,此时将直接将 DALL-E 服务返回的临时 URL 用于图像显示,注意:该链接具有时效性 - 如无需图像转存则可以配置 `DALLE_NO_IMAGE_STORAGE=1` ,此时将直接将 DALL-E 服务返回的临时 URL 用于图像显示,注意:该链接具有时效性

View File

@ -16,7 +16,7 @@ import { ACCESS_CODE_PREFIX, ServiceProvider } from "@/app/constant";
import * as langchainTools from "langchain/tools"; import * as langchainTools from "langchain/tools";
import { HttpGetTool } from "@/app/api/langchain-tools/http_get"; import { HttpGetTool } from "@/app/api/langchain-tools/http_get";
import { DuckDuckGo } from "@/app/api/langchain-tools/duckduckgo_search"; import { DuckDuckGo } from "@/app/api/langchain-tools/duckduckgo_search";
import { DynamicTool, Tool } from "langchain/tools"; import { DynamicTool, Tool, WolframAlphaTool } from "langchain/tools";
import { BaiduSearch } from "@/app/api/langchain-tools/baidu_search"; import { BaiduSearch } from "@/app/api/langchain-tools/baidu_search";
import { GoogleSearch } from "@/app/api/langchain-tools/google_search"; import { GoogleSearch } from "@/app/api/langchain-tools/google_search";
import { useAccessStore } from "@/app/store"; import { useAccessStore } from "@/app/store";
@ -282,6 +282,16 @@ export class AgentApi {
var tool = langchainTools[ var tool = langchainTools[
toolName as keyof typeof langchainTools toolName as keyof typeof langchainTools
] as any; ] as any;
if (
toolName === "wolfram_alpha" &&
process.env.WOLFRAM_ALPHA_APP_ID
) {
const tool = new WolframAlphaTool({
appid: process.env.WOLFRAM_ALPHA_APP_ID,
});
tools.push(tool);
return;
}
if (tool) { if (tool) {
tools.push(new tool()); tools.push(new tool());
} }
@ -387,7 +397,6 @@ export class AgentApi {
[handler], [handler],
); );
console.log("returning response");
return new Response(this.transformStream.readable, { return new Response(this.transformStream.readable, {
headers: { "Content-Type": "text/event-stream" }, headers: { "Content-Type": "text/event-stream" },
}); });

View File

@ -84,4 +84,15 @@ export const CN_PLUGINS: BuiltinPlugin[] = [
enable: false, enable: false,
onlyNodeRuntime: true, onlyNodeRuntime: true,
}, },
{
name: "WolframAlphaTool",
toolName: "wolfram_alpha",
lang: "cn",
description:
"在需要回答有关数学、科学、技术、文化、社会和日常生活的问题时非常有用。",
builtin: true,
createdAt: 1703846656000,
enable: false,
onlyNodeRuntime: false,
},
]; ];

View File

@ -87,4 +87,15 @@ export const EN_PLUGINS: BuiltinPlugin[] = [
enable: false, enable: false,
onlyNodeRuntime: true, onlyNodeRuntime: true,
}, },
{
name: "WolframAlphaTool",
toolName: "wolfram_alpha",
lang: "en",
description:
"Useful for when you need to answer questions about Math, Science, Technology, Culture, Society and Everyday Life.",
builtin: true,
createdAt: 1703846656000,
enable: false,
onlyNodeRuntime: false,
},
]; ];