From 0da77be66c9ae1b8ac8623104ac82bd1c09861b1 Mon Sep 17 00:00:00 2001 From: fujie Date: Mon, 16 Mar 2026 15:11:25 +0800 Subject: [PATCH] fix: clarify single-call multi-repo usage --- .../plugins/tools/batch-install-plugins-tool.md | 4 +++- .../tools/batch-install-plugins-tool.zh.md | 4 +++- docs/plugins/tools/batch-install-plugins.md | 4 +++- docs/plugins/tools/batch-install-plugins.zh.md | 4 +++- plugins/tools/batch-install-plugins/README.md | 4 +++- .../tools/batch-install-plugins/README_CN.md | 4 +++- .../batch_install_plugins.py | 17 ++++++++++++++--- 7 files changed, 32 insertions(+), 9 deletions(-) diff --git a/docs/plugins/tools/batch-install-plugins-tool.md b/docs/plugins/tools/batch-install-plugins-tool.md index adc9f62..6258b67 100644 --- a/docs/plugins/tools/batch-install-plugins-tool.md +++ b/docs/plugins/tools/batch-install-plugins-tool.md @@ -62,6 +62,8 @@ The `repo` parameter accepts one or more `owner/repo` values separated by commas After plugin discovery and filtering, OpenWebUI opens a browser dialog built with the `execute` event. The dialog merges results from every requested repository, groups them by repository, supports type filters and keyword search, and lets you check exactly which plugins to install before the API calls start. +If one user request mentions multiple repositories, keep them in the same request so the model can pass them into a single tool call. + ## Quick Start: Install Popular Collections Copy any of these prompts and paste them into your chat: @@ -89,7 +91,7 @@ Install all plugins from rbb-dev/Open-WebUI-OpenRouter-pipe Install all plugins from Fu-Jie/openwebui-extensions, Classic298/open-webui-plugins ``` -Use any line as-is, or combine repositories in one request. Already installed plugins are automatically updated. +Use any line as-is, or combine repositories in one request. If you want plugins from multiple repositories, prefer one combined request instead of sending separate lines. Already installed plugins are automatically updated. ## Usage Examples diff --git a/docs/plugins/tools/batch-install-plugins-tool.zh.md b/docs/plugins/tools/batch-install-plugins-tool.zh.md index c529d57..fe98cc8 100644 --- a/docs/plugins/tools/batch-install-plugins-tool.zh.md +++ b/docs/plugins/tools/batch-install-plugins-tool.zh.md @@ -62,6 +62,8 @@ 在插件发现和过滤完成后,OpenWebUI 会通过 `execute` 事件打开浏览器选择对话框。对话框会合并所有目标仓库的结果,按仓库分组展示,并支持类型筛选、关键词搜索和描述查看,再开始调用安装 API。 +如果一次用户请求里提到了多个仓库,尽量保持在同一次请求里,让模型把它们合并到一次工具调用中。 + ## 快速开始:安装热门插件集 复制以下任一提示词,粘贴到你的对话框中: @@ -89,7 +91,7 @@ 从 Fu-Jie/openwebui-extensions、Classic298/open-webui-plugins 安装所有插件 ``` -你可以直接使用任意一行,也可以在一次请求里组合多个仓库。已安装的插件会自动更新。 +你可以直接使用任意一行,也可以在一次请求里组合多个仓库。如果想安装多个仓库的插件,优先使用一条合并后的请求,而不是分成多行单独发送。已安装的插件会自动更新。 ## 使用示例 diff --git a/docs/plugins/tools/batch-install-plugins.md b/docs/plugins/tools/batch-install-plugins.md index e0b9741..6729970 100644 --- a/docs/plugins/tools/batch-install-plugins.md +++ b/docs/plugins/tools/batch-install-plugins.md @@ -66,6 +66,8 @@ The `repo` parameter accepts one or more `owner/repo` values separated by commas After plugin discovery and filtering, OpenWebUI opens a browser dialog built with the `execute` event. The dialog merges results from every requested repository, groups them by repository, supports type filters and keyword search, and lets you check exactly which plugins to install before the API calls start. +If one user request mentions multiple repositories, keep them in the same request so the model can pass them into a single tool call. + ## Quick Start: Install Popular Collections Copy any of these prompts and paste them into your chat: @@ -93,7 +95,7 @@ Install all plugins from rbb-dev/Open-WebUI-OpenRouter-pipe Install all plugins from Fu-Jie/openwebui-extensions, Classic298/open-webui-plugins ``` -Use any line as-is, or combine repositories in one request. Already installed plugins are automatically updated. +Use any line as-is, or combine repositories in one request. If you want plugins from multiple repositories, prefer one combined request instead of sending separate lines. Already installed plugins are automatically updated. ## Usage Examples diff --git a/docs/plugins/tools/batch-install-plugins.zh.md b/docs/plugins/tools/batch-install-plugins.zh.md index 1a43034..f91114c 100644 --- a/docs/plugins/tools/batch-install-plugins.zh.md +++ b/docs/plugins/tools/batch-install-plugins.zh.md @@ -66,6 +66,8 @@ 在插件发现和过滤完成后,OpenWebUI 会通过 `execute` 事件打开浏览器选择对话框。对话框会合并所有目标仓库的结果,按仓库分组展示,并支持类型筛选、关键词搜索和描述查看,再开始调用安装 API。 +如果一次用户请求里提到了多个仓库,尽量保持在同一次请求里,让模型把它们合并到一次工具调用中。 + ## 快速开始:安装热门插件集 复制以下任一提示词,粘贴到你的对话框中: @@ -93,7 +95,7 @@ 从 Fu-Jie/openwebui-extensions、Classic298/open-webui-plugins 安装所有插件 ``` -你可以直接使用任意一行,也可以在一次请求里组合多个仓库。已安装的插件会自动更新。 +你可以直接使用任意一行,也可以在一次请求里组合多个仓库。如果想安装多个仓库的插件,优先使用一条合并后的请求,而不是分成多行单独发送。已安装的插件会自动更新。 ## 使用示例 diff --git a/plugins/tools/batch-install-plugins/README.md b/plugins/tools/batch-install-plugins/README.md index e0b9741..6729970 100644 --- a/plugins/tools/batch-install-plugins/README.md +++ b/plugins/tools/batch-install-plugins/README.md @@ -66,6 +66,8 @@ The `repo` parameter accepts one or more `owner/repo` values separated by commas After plugin discovery and filtering, OpenWebUI opens a browser dialog built with the `execute` event. The dialog merges results from every requested repository, groups them by repository, supports type filters and keyword search, and lets you check exactly which plugins to install before the API calls start. +If one user request mentions multiple repositories, keep them in the same request so the model can pass them into a single tool call. + ## Quick Start: Install Popular Collections Copy any of these prompts and paste them into your chat: @@ -93,7 +95,7 @@ Install all plugins from rbb-dev/Open-WebUI-OpenRouter-pipe Install all plugins from Fu-Jie/openwebui-extensions, Classic298/open-webui-plugins ``` -Use any line as-is, or combine repositories in one request. Already installed plugins are automatically updated. +Use any line as-is, or combine repositories in one request. If you want plugins from multiple repositories, prefer one combined request instead of sending separate lines. Already installed plugins are automatically updated. ## Usage Examples diff --git a/plugins/tools/batch-install-plugins/README_CN.md b/plugins/tools/batch-install-plugins/README_CN.md index 1a43034..f91114c 100644 --- a/plugins/tools/batch-install-plugins/README_CN.md +++ b/plugins/tools/batch-install-plugins/README_CN.md @@ -66,6 +66,8 @@ 在插件发现和过滤完成后,OpenWebUI 会通过 `execute` 事件打开浏览器选择对话框。对话框会合并所有目标仓库的结果,按仓库分组展示,并支持类型筛选、关键词搜索和描述查看,再开始调用安装 API。 +如果一次用户请求里提到了多个仓库,尽量保持在同一次请求里,让模型把它们合并到一次工具调用中。 + ## 快速开始:安装热门插件集 复制以下任一提示词,粘贴到你的对话框中: @@ -93,7 +95,7 @@ 从 Fu-Jie/openwebui-extensions、Classic298/open-webui-plugins 安装所有插件 ``` -你可以直接使用任意一行,也可以在一次请求里组合多个仓库。已安装的插件会自动更新。 +你可以直接使用任意一行,也可以在一次请求里组合多个仓库。如果想安装多个仓库的插件,优先使用一条合并后的请求,而不是分成多行单独发送。已安装的插件会自动更新。 ## 使用示例 diff --git a/plugins/tools/batch-install-plugins/batch_install_plugins.py b/plugins/tools/batch-install-plugins/batch_install_plugins.py index e9af29f..fd8adce 100644 --- a/plugins/tools/batch-install-plugins/batch_install_plugins.py +++ b/plugins/tools/batch-install-plugins/batch_install_plugins.py @@ -5,7 +5,7 @@ author_url: https://github.com/Fu-Jie/openwebui-extensions funding_url: https://github.com/open-webui version: 1.1.0 openwebui_id: c9fd6e80-d58f-4312-8fbb-214d86bbe599 -description: One-click batch install plugins from GitHub repositories to your OpenWebUI instance. +description: One-click batch install plugins from one or more GitHub repositories to your OpenWebUI instance. If a user mentions multiple repositories in one request, combine them into a single tool call. """ import ast @@ -1470,7 +1470,7 @@ async def discover_plugins_from_repos( class ListParams(BaseModel): repo: str = Field( default=DEFAULT_REPO, - description="One or more GitHub repositories (owner/repo), separated by commas, semicolons, or new lines", + description="One or more GitHub repositories (owner/repo), separated by commas, semicolons, or new lines. If the user mentions multiple repositories in one request, combine them here and call the tool once.", ) plugin_types: List[str] = Field( default=["pipe", "action", "filter", "tool"], @@ -1481,7 +1481,7 @@ class ListParams(BaseModel): class InstallParams(BaseModel): repo: str = Field( default=DEFAULT_REPO, - description="One or more GitHub repositories (owner/repo), separated by commas, semicolons, or new lines", + description="One or more GitHub repositories (owner/repo), separated by commas, semicolons, or new lines. If the user mentions multiple repositories in one request, combine them here and call the tool once instead of making separate calls.", ) plugin_types: List[str] = Field( default=["pipe", "action", "filter", "tool"], @@ -1516,6 +1516,11 @@ class Tools: repo: str = DEFAULT_REPO, plugin_types: List[str] = ["pipe", "action", "filter", "tool"], ) -> str: + """List plugins from one or more repositories in a single call. + + If a user request mentions multiple repositories, combine them into the + `repo` argument instead of calling this tool multiple times. + """ user_ctx = await _get_user_context(__user__, __event_call__, __request__) lang = user_ctx.get("user_language", "en-US") @@ -1557,6 +1562,12 @@ class Tools: exclude_keywords: str = "", timeout: int = DEFAULT_TIMEOUT, ) -> str: + """Install plugins from one or more repositories in a single call. + + If a user request mentions multiple repositories, combine them into the + `repo` argument and call this tool once instead of making parallel + calls for each repository. + """ user_ctx = await _get_user_context(__user__, __event_call__, __request__) lang = user_ctx.get("user_language", "en-US") event_emitter = __event_emitter__ or emitter