feat: 增加bing搜索插件支持
This commit is contained in:
parent
f7bba11890
commit
d693d51201
19
README.md
19
README.md
|
@ -31,17 +31,28 @@
|
|||
|
||||
- 除插件工具外,与原项目保持一致 [ChatGPT-Next-Web 主要功能](https://github.com/Yidadaa/ChatGPT-Next-Web#主要功能)
|
||||
- 基于 [LangChain](https://github.com/hwchase17/langchainjs) 实现的插件功能,目前支持以下插件,未来会添加更多
|
||||
- 搜索
|
||||
- [SerpAPI](https://js.langchain.com/docs/api/tools/classes/SerpAPI)
|
||||
- [Calculator](https://js.langchain.com/docs/api/tools_calculator/classes/Calculator)
|
||||
- [BingSerpAPI](https://js.langchain.com/docs/api/tools/classes/BingSerpAPI)
|
||||
- DuckDuckGo
|
||||
|
||||
- 计算
|
||||
- [Calculator](https://js.langchain.com/docs/api/tools_calculator/classes/Calculator)
|
||||
|
||||
- 网络请求
|
||||
- HttpGet
|
||||
|
||||
|
||||
|
||||
## 开发计划
|
||||
|
||||
- [x] 支持使用 DuckDuckGo 作为默认搜索引擎
|
||||
|
||||
当前配置 `SERPAPI_API_KEY` 时优先使用 `serpapi` 作为搜索插件,不配置时默认使用 `duckduckgo` 作为搜索插件。
|
||||
当前配置 `SERPAPI_API_KEY` 时优先使用 `SerpAPI` 作为搜索插件,不配置时默认使用 `DuckDuckGo` 作为搜索插件。
|
||||
|
||||
当前配置 `BING_SEARCH_API_KEY` 时优先使用 `BingSerpAPI` 作为搜索插件,不配置时默认使用 `DuckDuckGo` 作为搜索插件。
|
||||
|
||||
优先级:`SerpAPI > BingSerpAPI > DuckDuckGo`
|
||||
|
||||
- [ ] 插件列表页面开发
|
||||
- [ ] 支持开关指定插件
|
||||
|
@ -126,6 +137,10 @@ Your openai api key.
|
|||
|
||||
[SerpApi: Google Search API](https://serpapi.com/)
|
||||
|
||||
### `BING_SEARCH_API_KEY` (optional)
|
||||
|
||||
[Web Search API | Microsoft Bing](https://www.microsoft.com/en-us/bing/apis/bing-web-search-api)
|
||||
|
||||
### `CODE` (optional)
|
||||
|
||||
Access passsword, separated by comma.
|
||||
|
|
|
@ -6,6 +6,7 @@ import { ChatOpenAI } from "langchain/chat_models/openai";
|
|||
import { BaseCallbackHandler } from "langchain/callbacks";
|
||||
|
||||
import {
|
||||
BingSerpAPI,
|
||||
DynamicTool,
|
||||
RequestsGetTool,
|
||||
RequestsPostTool,
|
||||
|
@ -145,7 +146,14 @@ async function handle(req: NextRequest) {
|
|||
});
|
||||
|
||||
let searchTool: Tool = new DuckDuckGo();
|
||||
if (process.env.SERPAPI_API_KEY) {
|
||||
if (process.env.BING_SEARCH_API_KEY) {
|
||||
let bingSearchTool = new BingSerpAPI(process.env.BING_SEARCH_API_KEY);
|
||||
searchTool = new DynamicTool({
|
||||
name: "bing_search",
|
||||
description: bingSearchTool.description,
|
||||
func: async (input: string) => bingSearchTool.call(input),
|
||||
});
|
||||
} else if (process.env.SERPAPI_API_KEY) {
|
||||
let serpAPITool = new SerpAPI(process.env.SERPAPI_API_KEY);
|
||||
searchTool = new DynamicTool({
|
||||
name: "google_search",
|
||||
|
|
37
yarn.lock
37
yarn.lock
|
@ -16,9 +16,9 @@
|
|||
"@jridgewell/trace-mapping" "^0.3.9"
|
||||
|
||||
"@anthropic-ai/sdk@^0.5.7":
|
||||
version "0.5.9"
|
||||
resolved "https://registry.yarnpkg.com/@anthropic-ai/sdk/-/sdk-0.5.9.tgz#8a78f3a0558b2aee6572bab1f38f0c996999b985"
|
||||
integrity sha512-9/TYca4qSe0xG40LLNf5vemybw5JAKF5OE6Eiyc+O+h3+VGGPeOKo+1SHaWBP5zS7bGX2o3Ne6EonPWyh9oNqA==
|
||||
version "0.5.10"
|
||||
resolved "https://registry.yarnpkg.com/@anthropic-ai/sdk/-/sdk-0.5.10.tgz#8cd0b68ac32c71e579b466a89ea30338f2165a32"
|
||||
integrity sha512-P8xrIuTUO/6wDzcjQRUROXp4WSqtngbXaE4GpEu0PhEmnq/1Q8vbF1s0o7W07EV3j8zzRoyJxAKovUJtNXH7ew==
|
||||
dependencies:
|
||||
"@types/node" "^18.11.18"
|
||||
"@types/node-fetch" "^2.6.4"
|
||||
|
@ -1526,14 +1526,14 @@
|
|||
form-data "^3.0.0"
|
||||
|
||||
"@types/node@*":
|
||||
version "20.4.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.5.tgz#9dc0a5cb1ccce4f7a731660935ab70b9c00a5d69"
|
||||
integrity sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==
|
||||
version "20.4.8"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.8.tgz#b5dda19adaa473a9bf0ab5cbd8f30ec7d43f5c85"
|
||||
integrity sha512-0mHckf6D2DiIAzh8fM8f3HQCvMKDpK94YQ0DSVkfWTG9BZleYIWudw9cJxX8oCk9bM+vAkDyujDV6dmKHbvQpg==
|
||||
|
||||
"@types/node@^18.11.18":
|
||||
version "18.17.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.1.tgz#84c32903bf3a09f7878c391d31ff08f6fe7d8335"
|
||||
integrity sha512-xlR1jahfizdplZYRU59JlUx9uzF1ARa8jbhM11ccpCJya8kvos5jwdm2ZAgxSCwOl0fq21svP18EVwPBXMQudw==
|
||||
version "18.17.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.3.tgz#409febdc84478b452306a8112c692e800ad9f6fe"
|
||||
integrity sha512-2x8HWtFk0S99zqVQABU9wTpr8wPoaDHZUcAkoTKH+nL7kPv3WUI9cRi/Kk5Mz4xdqXSqTkKP7IWNoQQYCnDsTA==
|
||||
|
||||
"@types/node@^20.3.3":
|
||||
version "20.3.3"
|
||||
|
@ -1811,12 +1811,10 @@ acorn@^8.9.0:
|
|||
integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
|
||||
|
||||
agentkeepalive@^4.2.1:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.3.0.tgz#bb999ff07412653c1803b3ced35e50729830a255"
|
||||
integrity sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==
|
||||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923"
|
||||
integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==
|
||||
dependencies:
|
||||
debug "^4.1.0"
|
||||
depd "^2.0.0"
|
||||
humanize-ms "^1.2.1"
|
||||
|
||||
aggregate-error@^3.0.0:
|
||||
|
@ -2766,11 +2764,6 @@ delayed-stream@~1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
|
||||
|
||||
depd@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
|
||||
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
|
||||
|
||||
dequal@^2.0.0:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
|
||||
|
@ -4269,9 +4262,9 @@ langchain@^0.0.114:
|
|||
zod-to-json-schema "^3.20.4"
|
||||
|
||||
langsmith@~0.0.11:
|
||||
version "0.0.16"
|
||||
resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.0.16.tgz#5afdf6155ae58b8f99868b00cca575a25cb616ad"
|
||||
integrity sha512-HD97KJaSpCcuixbjfRhpSFdo5rWz28OJiUVs5uBRZDKUN2Amg4PWd0NFzGO3xC8osnjPPRvgH9by6Ige79hjxQ==
|
||||
version "0.0.19"
|
||||
resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.0.19.tgz#10813120f69596975682197134e547a5ca753172"
|
||||
integrity sha512-eqql2sv4LgLNuC0yFEeJ1Eh81KlvYeTwl3xuqUgzfox2/gCdiAi3BC0Lv/9+6hoV2yx/0krs2O4zRdnJYm6eow==
|
||||
dependencies:
|
||||
"@types/uuid" "^9.0.1"
|
||||
commander "^10.0.1"
|
||||
|
|
Loading…
Reference in New Issue