From 71278b189829014d02a66419b63eecd3a35ae750 Mon Sep 17 00:00:00 2001 From: 3030332422 <3030332422@qq.com> Date: Mon, 8 Jun 2026 11:38:11 +0800 Subject: [PATCH 1/9] =?UTF-8?q?docs:=E6=96=B0=E5=A2=9E=E8=81=94=E7=BD=91?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=8F=92=E4=BB=B6=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/web-search-integration.md | 65 ++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 docs/web-search-integration.md diff --git a/docs/web-search-integration.md b/docs/web-search-integration.md new file mode 100644 index 00000000..92915f5a --- /dev/null +++ b/docs/web-search-integration.md @@ -0,0 +1,65 @@ +# 联网搜索插件使用指南 + +## 功能简介 + +联网搜索插件 `web_search` 支持在对话过程中实时联网搜索信息并返回结果。插件支持两个搜索源:秘塔(Metaso)和Tavily,用户可根据需要选择其中一个。 + +## API Key申请指南 + +### 方式一:使用秘塔搜索(推荐) + +- 访问 [秘塔搜索API](https://metaso.cn/search-api/api-keys),注册并登录账号 +- 在API密钥管理页面,点击"创建新的Key" +- 复制生成的API Key(以 `mk-` 为前缀),这是配置所需的关键信息 + +### 方式二:使用Tavily搜索 + +- 访问 [Tavily控制台](https://app.tavily.com/home),注册并登录账号 +- 在控制台中创建API Key +- 复制生成的API Key(以 `tvly-` 为前缀),这是配置所需的关键信息 + +## 配置方式 + +### 方式1. 使用智控台部署(推荐) + +- 登录智控台 +- 进入"配置角色"页面,选择要配置的智能体 +- 点击"编辑功能"按钮,在右侧参数配置区域找到"联网搜索"插件 +- 勾选"联网搜索" +- 选择搜索源(metaso或tavily),并将对应的API Key填入配置项 +- 保存配置,再保存智能体配置 + +### 方式2. 单模块xiaozhi-server部署 + +在 `data/.config.yaml` 中配置: + +- 将搜索源填入 `provider`,可选值为 `metaso` 或 `tavily` +- 将申请到的API Key填入 `api_key` + +```yaml +plugins: + web_search: + provider: "metaso" + api_key: "你的API Key" +``` + +如需自定义返回结果数量和工具描述,可额外配置 `max_results` 和 `description`: + +```yaml +plugins: + web_search: + provider: "metaso" + description: "联网搜索工具。当用户明确需要联网搜索问题时使用此工具。" + max_results: 5 + api_key: "你的API Key" +``` + +同时在 `functions` 列表中确保已启用 `web_search`: + +```yaml +plugins: + functions: + - web_search +``` + +配置完成后重启服务即可生效。 From 945ab29bc3aafe360c4232cdcd80c81e2bc1495e Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Tue, 9 Jun 2026 17:11:35 +0800 Subject: [PATCH 2/9] =?UTF-8?q?add:=E5=A2=9E=E5=8A=A0=E8=81=94=E7=BD=91?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E7=9A=84=E6=95=99=E7=A8=8B=E5=92=8C=E8=87=AA?= =?UTF-8?q?=E7=BC=96=E8=AF=91docker=E9=95=9C=E5=83=8F=E7=9A=84=E6=95=99?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/FAQ.md | 2 + docs/docker-build.md | 79 ++++++++++++++++++++++++++++------ docs/web-search-integration.md | 10 ++++- 3 files changed, 76 insertions(+), 15 deletions(-) diff --git a/docs/FAQ.md b/docs/FAQ.md index f18f02aa..d5785ef3 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -65,6 +65,7 @@ VAD: 3、[如何部署MQTT网关开启MQTT+UDP协议](./mqtt-gateway-integration.md) 4、[如何自动拉取本项目最新代码自动编译和启动](./dev-ops-integration.md) 5、[如何与Nginx集成](https://github.com/xinnan-tech/xiaozhi-esp32-server/issues/791) +6、[修改代码后怎么编译自己的Docker镜像](./docker-build.md) ### 8、编译固件相关教程 1、[如何自己编译小智固件](./firmware-build.md) @@ -85,6 +86,7 @@ VAD: 11、[如何集成PowerMem智能记忆](./powermem-integration.md) 12、[如何配置天气插件查询天气](./weather-integration.md) 13、[如何开启设备呼叫插件](./device-call-guide.md) +14、[如何开启联网搜索功能](./web-search-integration.md) ### 10、数字人相关教程 1、[数字人digital-human启动方法](./digital-human-wakeword.md) diff --git a/docs/docker-build.md b/docs/docker-build.md index 118ed1c9..91d45fd5 100644 --- a/docs/docker-build.md +++ b/docs/docker-build.md @@ -1,21 +1,74 @@ # 本地编译docker镜像方法 -现在本项目已经使用github自动编译docker功能,本文档是提供给有本地编译docker镜像需求的朋友准备的。 +现在本项目已经使用`github`的`自动编译docker镜像`功能,如果您拉取的是项目发行的镜像,您没有自己编译镜像的需求,那就忽略本文档。 -1、安装docker -``` +如果您修改了源码,然后想采用`docker`的方式部署运行,可以参照以下步骤操作: + +## 1、环境准备 + +安装docker: +```bash sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` -2、编译docker镜像 -``` -#进入项目根目录 -# 编译server -docker build -t xiaozhi-esp32-server:server_latest -f ./Dockerfile-server . -# 编译web -docker build -t xiaozhi-esp32-server:web_latest -f ./Dockerfile-web . -# 编译完成后,可以使用docker-compose启动项目 -# docker-compose.yml你需要修改成自己编译的镜像版本 +## 2、编译镜像 + +当你修改好代码后,需要编译新的镜像时,需要按照以下步骤操作: + +准备好你的`你的用户名`和`新的版本号`。 +- 这个`你的用户名`是你在`docker hub`注册的用户名,例如`xiaozhi`。当然,如果你不需要推送到`docker hub`,你可以自由定义。 +- 这个`新的版本号`是你编译的镜像版本,例如`1.2.3`,你可以根据需要自定义或者使用日期格式(例如`20260609`)主要是方便和现在运行的版本号做区分,同时也方便下次回忆你是什么时候构建的,不要和现在你本机运行的版本号相同。 + +进入`xiaozhi-esp32-server`项目根目录,编译 server 和 web 两个镜像: + +```bash +cd 项目根目录 + +# 编译server镜像 +docker build -f Dockerfile-server -t 你的用户名/xiaozhi-esp32-server:新的版本号 . + +# 编译web镜像 +docker build -f Dockerfile-web -t 你的用户名/xiaozhi-esp32-server-web:新的版本号 . + +``` + +## 3、修改docker-compose配置 + +```bash cd main/xiaozhi-server -docker compose up -d +``` + +编辑 `docker-compose_all.yml` 文件,将镜像版本替换为你刚才编译的版本: + +```yaml +services: + xiaozhi-esp32-server: + image: 你的用户名/xiaozhi-esp32-server:新的版本号 # 修改为你的镜像地址 + ... + + xiaozhi-esp32-server-web: + image: 你的用户名/xiaozhi-esp32-server-web:新的版本号 #修改为你的镜像地址 + ... +``` + +## 4、重启服务 + +```bash +# 停止旧容器 +docker compose -f docker-compose_all.yml down + +# 启动新容器 +docker compose -f docker-compose_all.yml up -d +``` + +## 5、验证 + +查看日志确认服务启动正常: + +```bash +# 查看server日志 +docker logs -f -n 50 xiaozhi-esp32-server + +# 查看web日志 +docker logs -f -n 50 xiaozhi-esp32-server-web ``` diff --git a/docs/web-search-integration.md b/docs/web-search-integration.md index 92915f5a..25dd546a 100644 --- a/docs/web-search-integration.md +++ b/docs/web-search-integration.md @@ -6,7 +6,13 @@ ## API Key申请指南 -### 方式一:使用秘塔搜索(推荐) +目前我们适配了`秘塔搜索`和`Tavily搜索`。 +- Tavily搜索:每个月1000次免费额度。 +- 秘塔搜索:拥有较为优质的国内数据源。 + +## API Key申请指南 + +### 方式一:使用秘塔搜索 - 访问 [秘塔搜索API](https://metaso.cn/search-api/api-keys),注册并登录账号 - 在API密钥管理页面,点击"创建新的Key" @@ -26,7 +32,7 @@ - 进入"配置角色"页面,选择要配置的智能体 - 点击"编辑功能"按钮,在右侧参数配置区域找到"联网搜索"插件 - 勾选"联网搜索" -- 选择搜索源(metaso或tavily),并将对应的API Key填入配置项 +- 填入搜索源(`metaso`或`tavily`),并将对应的`API Key`填入配置项 - 保存配置,再保存智能体配置 ### 方式2. 单模块xiaozhi-server部署 From a2074dc0d812df7919bb12d0d302a8bd812c7562 Mon Sep 17 00:00:00 2001 From: DaGou12138 <991623169@qq.com> Date: Wed, 10 Jun 2026 15:00:29 +0800 Subject: [PATCH 3/9] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E7=9F=A5?= =?UTF-8?q?=E8=AF=86=E5=BA=93=E6=A8=A1=E5=9D=97=E5=BC=B9=E6=A1=86=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=A0=B7=E5=BC=8F=E5=85=A8=E5=B1=80=E8=A6=86=E7=9B=96?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E6=98=BE=E7=A4=BA=E5=BC=82=E5=B8=B8=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/manager-web/src/components/AddModelDialog.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main/manager-web/src/components/AddModelDialog.vue b/main/manager-web/src/components/AddModelDialog.vue index 862d8b29..58a4d3c8 100644 --- a/main/manager-web/src/components/AddModelDialog.vue +++ b/main/manager-web/src/components/AddModelDialog.vue @@ -1,6 +1,6 @@ + custom-class="add-model-dialog" :show-close="false" class="center-dialog"> {{ $t('modelConfigDialog.addModel') }} @@ -298,7 +298,7 @@ export default {