Pular para o conteúdo principal

Integrar o Mordomo Espacial de IA ao Home Assistant

Crie um assistente de IA com controle por voz para a sua casa inteligente.

Imagine poder começar o dia simplesmente sussurrando para um dispositivo ao lado da cama: "Jarvis, bom dia. Como está o tempo hoje? E, por favor, ligue a cafeteira." Em resposta, seu assistente de IA confirma a previsão do tempo enquanto a sua cafeteira começa a preparar o café na cozinha.

Isso não é apenas um conceito de filme; é uma aplicação prática que você pode construir e implantar por conta própria. Este guia fornece uma solução passo a passo para integrar um assistente de IA local com seus dispositivos de casa inteligente. Ao final deste tutorial, você terá um hub de casa inteligente totalmente funcional e ativado por voz.

Este artigo fornecerá um guia passo a passo sobre como usar o Dify, o serviço de backend Xiaozhi e o SenseCAP Watcher para integrar um assistente de IA — capaz de compreensão de contexto, controle de dispositivos, consultas de status e até perguntas e respostas baseadas em conhecimento — ao seu sistema de casa inteligente Home Assistant. Você aprenderá a tornar a IA um assistente realmente eficiente na sua vida inteligente por meio de interações simples por voz.

Pré-requisitos

Tenha os seguintes itens e condições prontos:

DispositivoFinalidade
Home Assistant GreenUm sistema Home Assistant pré-implantado
ReComputer R1000Para implantar o Dify, o serviço Xiaozhi e interagir com o Watcher
SenseCAP WatcherA interface de interação homem-máquina
Um computadorPara acessar os aplicativos instalados

Além disso, é necessária uma conexão de rede estável.

Ⅰ. Instalação e Implantação

Nesta seção, vamos instalar e configurar os componentes centrais em três etapas:

  1. Instalar o Dify - O cérebro da aplicação de IA
  2. Instalar xiaozhi-esp32-server - A ponte que conecta a IA ao hardware
  3. Configurar o SenseCAP Watcher - Permitindo que o assistente de voz ouça você

Você pode pular as etapas a seguir e ir para Dify App Orchestration se já tiver instalado e configurado o Dify, o serviço de backend Xiaozhi e o SenseCAP Watcher.

Instalar o Dify

Por favor, instale o Docker primeiro, caso ainda não tenha feito isso.

dica

Para usuários na China continental, talvez seja necessário atualizar a fonte das imagens Docker:

bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

Observação: Este script é fornecido por um terceiro. Esta referência é apenas para fins de exemplo. Avalie você mesmo sua adequação e riscos.

Execute os seguintes comandos para instalar o Dify. Para mais detalhes, consulte Dify Install:

git clone https://github.com/langgenius/dify.git --branch 1.5.0 # Download the code for Dify version 1.5.0, check the repo for the latest version.
cd dify/docker # Change to the Docker configuration directory for Dify
cp .env.example .env # For beginners, no modification to this file is needed
docker compose up -d

Após a execução bem-sucedida dos comandos, o Dify deverá estar em funcionamento. Agora, você precisa encontrar o endereço IP do computador em que o Docker está rodando.

Encontrando o Endereço IP
  • No Windows, abra o Prompt de Comando (CMD) ou o PowerShell, digite ipconfig e procure por "Endereço IPv4".
  • No macOS ou Linux, abra o Terminal, digite ip addr ou ifconfig e encontre o endereço IP correspondente à sua interface de rede (geralmente começando com 192.168.x.x ou 10.x.x.x).

Supondo que o endereço IP do seu computador seja 192.168.101.109, abra um navegador e acesse http://192.168.101.109/install (na primeira visita você será redirecionado para a página de configuração inicial).

Siga as instruções na tela para concluir a criação da conta de administrador. Depois disso, você pode acessar o painel principal do Dify em http://192.168.101.109.

Configurar o Provedor de Modelo

Para permitir que sua aplicação de IA no Dify pense e responda, você precisa conectá-la a pelo menos um "Provedor de Modelo de Linguagem Grande".

  • Após fazer login no Dify, encontre o avatar do seu perfil na barra de navegação superior e clique em "Settings".
  • Selecione "Model Providers" no menu à esquerda.
  • Isso listará os vários provedores de modelo suportados pelo Dify (como OpenAI, Azure OpenAI, Volcano Engine, MiniMax, etc.). Escolha um provedor no qual você tenha uma conta e que deseje usar, depois clique em "Add".
  • Siga as instruções na tela para inserir as informações de autorização do seu provedor de modelo, como a API Key. Por exemplo, este guia usa o "Volcano Engine" como provedor de modelo.

Dify MCP authorize

Para instruções detalhadas, consulte Introduction to Integrating Large Models - Dify Docs:

Criar um Novo App do tipo Agent

No Dify, assistentes de IA existem como "Apps". Precisamos criar um app do tipo "Agent".

  • No painel principal do Dify, clique em "Create App".
  • Selecione o tipo de app como "Agent".
  • Dê um nome ao seu app (por exemplo, "Meu Mordomo Inteligente") e clique em "Create".

Obter a API Key do App

Para permitir que o "serviço de backend Xiaozhi" se comunique com este app do Dify, precisamos obter a API key do app.

  • Acesse o app Agent que você acabou de criar.
  • Na barra de navegação à esquerda dentro do app, encontre e clique no ícone que se parece com um terminal, que é "API Access".
  • Na página de API Access, clique em "API Key" no canto superior direito e, em seguida, clique no botão "Create Key" que aparecer.
  • O sistema irá gerar uma API key (também chamada de Token), por exemplo, app-T9jHW9pCtj3NVMHHPAPrNFAg.
IMPORTANTE

Copie essa API key imediatamente e cole em um local seguro (como um bloco de notas), pois iremos utilizá-la em breve.

加载中...

Instalar o Serviço de Backend Xiaozhi

O serviço de backend Xiaozhi é um programa projetado especificamente para a série de microcontroladores ESP32 (o SenseCAP Watcher é baseado no ESP32-S3). Ele recebe dados de voz do hardware, realiza o reconhecimento e os encaminha para o app de IA que acabamos de criar no Dify.

O serviço de backend Xiaozhi oferece dois métodos de instalação: instalação simplificada e instalação de módulo completo. Para mais detalhes, consulte Choosing a Deployment Method.

Recomendamos a instalação full-module para uma experiência mais conveniente.

Execute o seguinte script de instalação rápida:

curl -L -o xiaozhi-server-docker-setup.sh https://raw.githubusercontent.com/xinnan-tech/xiaozhi-esp32-server/main/docker-setup.sh
chmod +x xiaozhi-server-docker-setup.sh
./xiaozhi-server-docker-setup.sh

Após a conclusão da execução do script, será criada uma pasta chamada xiaozhi-server no diretório atual e serão baixados automaticamente os arquivos necessários para o serviço de backend Xiaozhi e os modelos básicos de reconhecimento de fala.

Para a experiência funcional completa, precisamos instalar usando o arquivo de configuração full-module. Execute novamente o seguinte comando:

cd xiaozhi-server
wget https://raw.githubusercontent.com/xinnan-tech/xiaozhi-esp32-server/refs/heads/main/main/xiaozhi-server/docker-compose_all.yml
wget https://raw.githubusercontent.com/xinnan-tech/xiaozhi-esp32-server/refs/heads/main/main/xiaozhi-server/config_from_api.yaml
mv data/.config.yaml data/.config.yaml.bk
mv config_from_api.yaml data/.config.yaml

Agora, tente iniciar o contêiner para o serviço de backend Xiaozhi full-module:

docker compose -f docker-compose_all.yml up -d

Depois que terminar, execute o seguinte comando para visualizar as informações de log.

docker logs -f xiaozhi-esp32-server-web

Quando você vir a saída de log, isso significa que o seu console de controle foi iniciado com sucesso.

2025-xx-xx 22:11:12.445 [main] INFO  c.a.d.s.b.a.DruidDataSourceAutoConfigure - Init DruidDataSource
2025-xx-xx 21:28:53.873 [main] INFO xiaozhi.AdminApplication - Started AdminApplication in 16.057 seconds (process running for 17.941)
http://localhost:8002/xiaozhi/doc.html

Agora, você pode visitar http://localhost:8002 para fazer login no console de controle e registrar o primeiro usuário. O primeiro usuário será o superadministrador; usuários comuns posteriores só podem ser criados pelo superadministrador.

Resolver conflitos de porta do serviço Docker

O serviço de backend Xiaozhi usa várias portas de rede por padrão (por exemplo, o serviço WebSocket mapeia a porta 8000 da máquina host para a porta 8000 do contêiner por padrão). Se essas portas já estiverem sendo usadas por outros programas no seu computador, o comando docker compose up -d pode falhar com um erro de conflito de porta.

Nesse caso, você precisa editar o arquivo docker-compose_all.yml localizado na pasta xiaozhi-server.

Encontre as seções ports: dos serviços xiaozhi-esp32-server e xiaozhi-esp32-server-web, por exemplo:

xiaozhi-esp32-server:
ports:
- "8088:8000" # The left is the host port, the right is the container port
xiaozhi-esp32-server-web:
ports:
- "8002:8002"
  • Se a porta 8000 estiver em conflito, você pode alterá-la para outra porta não utilizada, como 8088, de modo que a configuração fique - "8088:8000". Salve o arquivo após fazer a alteração e execute docker compose up -d novamente.
  • Observação: Se você alterar aqui a porta da máquina host (por exemplo, de 8000 para 8088), então deverá usar o novo número de porta correspondente ao configurar /data.config.yaml e o SenseCAP Watcher.

Etapa 1: Gerenciamento de Parâmetros

Após fazer login com a conta de superadministrador, navegue até "Parameter Management" no menu superior do console de controle. Encontre o primeiro item na lista, que possui o código de parâmetro server.secret, e copie o seu "Parameter Value".

Modifique o arquivo .config.yaml no diretório data dentro de xiaozhi-server. Encontre o item de configuração manager-api e altere o valor de secret para o valor de parâmetro que você acabou de copiar. Ao mesmo tempo, altere a URL para http://xiaozhi-esp32-server-web:8002/xiaozhi.

manager-api:
url: http://xiaozhi-esp32-server-web:8002/xiaozhi
secret: 12345678-xxxx-xxxx-xxxx-123456789000 # Please replace this with your server.secret value

Etapa 2: Configurar a Comunicação Entre Containers

Como o Dify e o serviço de backend Xiaozhi são iniciados separadamente via Docker, eles podem estar em diferentes "redes virtuais" por padrão e não conseguir se comunicar diretamente. Precisamos conectar o container do serviço Dify API à rede do serviço Xiaozhi.

docker network connect xiaozhi-server_default docker-api-1

Após esse comando, o serviço Xiaozhi poderá acessar o serviço Dify API no endereço http://dify-api-1:5001/v1.

Por que não usar host.docker.internal?

Você pode considerar usar host.docker.internal (um nome DNS especial para acessar o host de dentro de um container Docker) como solução de conexão. Porém, observe que, se o serviço docker-api-1 (o container Dify API) não mapear sua porta para o host, ou se o próprio serviço não escutar diretamente na interface de rede do host, o container xiaozhi-server não conseguirá acessar docker-api-1 com sucesso via host.docker.internal:5001. Portanto, garantir que ambos os containers estejam na mesma rede Docker e se comuniquem por nomes de serviço é o método de configuração mais recomendado e confiável, especialmente quando o serviço docker-api-1 opera principalmente dentro da rede de containers.

Etapa 3: Reiniciar o xiaozhi-esp32-server

Depois de configurar as informações acima, você precisa reiniciar o serviço de backend Xiaozhi para que as alterações entrem em vigor. Isso ocorre porque o processo de instalação usa o server.secret para se conectar ao serviço.

docker restart xiaozhi-esp32-server

Verificar os logs do serviço de backend Xiaozhi (Opcional):

Se você quiser confirmar que o serviço Xiaozhi foi iniciado e está em execução corretamente, pode executar o seguinte comando para visualizar os logs em tempo real:

docker logs -f xiaozhi-esp32-server

(xiaozhi-esp32-server é o nome padrão do container do serviço. Pressione Ctrl+C para sair da visualização de logs.)

Se você vir logs semelhantes aos seguintes, isso indica que o servidor foi iniciado com sucesso.

25-02-23 12:01:09[core.websocket_server] - INFO - Websocket address is      ws://xxx.xx.xx.xx:8000/xiaozhi/v1/
25-02-23 12:01:09[core.websocket_server] - INFO - =======The address above is a websocket protocol address, please do not access it with a browser=======
25-02-23 12:01:09[core.websocket_server] - INFO - To test the websocket, please open test_page.html in the test directory with Google Chrome
25-02-23 12:01:09[core.websocket_server] - INFO - =======================================================

Supondo que o endereço IP do seu computador seja 192.168.101.109, as interfaces OTA e WebSocket do serviço de backend Xiaozhi agora devem ser:

Interface OTA:

http://192.168.101.109:8002/xiaozhi/ota/

Interface WebSocket:

ws://192.168.101.109:8000/xiaozhi/v1/

Lembre-se de substituir 192.168.101.109 pelo endereço IP em que o seu serviço Xiaozhi está em execução.

Etapa 4: Configurar o Serviço para se Conectar ao Dify

Precisamos informar ao serviço de backend Xiaozhi como encontrar e usar o app de IA que criamos no Dify. Isso envolve direcionar todas as requisições de LLM para o Dify, modificando a configuração do grande modelo de linguagem.

Faça login novamente no console de controle do serviço de backend Xiaozhi. No menu superior, encontre "Model Configuration" e clique em "Large Language Models" na barra lateral esquerda. Encontre a primeira entrada, "Dify", e clique no botão de modificar. Na caixa de diálogo que aparecer, preencha a API Key do app que você criou no Dify. Além disso, altere o Base URL para http://dify-api-1:5001/v1.

[!tip] Você também pode criar vários apps Dify e depois configurar vários grandes modelos de linguagem Dify no console de controle.

Etapa 5: Adicionar Agent

Clique em "Agents" no menu superior e depois em "Add Agent". Digite qualquer nome, por exemplo, Dify_Agent.

Para o Dify_Agent recém-adicionado, clique em "Configure Role" para entrar na configuração de função. Em seguida, na barra lateral direita, altere o "Large Language Model (LLM)" para "Dify" (a conexão Dify que você configurou anteriormente). Modifique outras funções conforme necessário e clique em "Save Configuration".

Usaremos isso na próxima seção ao configurar o assistente Watcher.

Ⅱ. Configurar o SenseCAP Watcher

Agora, precisamos configurar o dispositivo SenseCAP Watcher para que ele saiba onde se conectar ao serviço de backend Xiaozhi que acabamos de configurar.

Note

Este guia usa a versão 1.6.2 do Xiaozhi AI Chatbot para o SenseCAP Watcher. Se você estiver usando uma versão diferente, talvez precise ajustar a configuração de acordo.

Modificar o Endereço OTA

Ligue o SenseCAP Watcher e conecte-se à sua rede WiFi a partir de qualquer dispositivo.

Após conectar com sucesso, acesse 192.168.4.1 para configurar a conexão WiFi e o endereço OTA.

O endereço OTA deve ser:

http://<IP_Address>:<Port_Number>/xiaozhi/ota/
  • <IP_Address>: Substitua pelo endereço IP da rede local do computador que está executando o serviço de backend Xiaozhi (por exemplo, 192.168.101.109).
  • <Port_Number>: Substitua pelo número da porta OTA exposta pelo serviço de backend Xiaozhi. Se você não modificou o arquivo docker-compose.yaml de xiaozhi-server anteriormente, esse valor será 8002. Se o tiver alterado (por exemplo, para 8088), você deve usar aqui o número de porta modificado.

Por exemplo:

http://192.168.101.109:8002/xiaozhi/ota/

Após concluir a configuração e confirmar, o dispositivo será reiniciado automaticamente e tentará se conectar ao serviço de backend Xiaozhi.

Depois que se conectar com sucesso ao serviço OTA, o dispositivo Watcher anunciará um código de verificação.

Em seguida, no console de controle, sob o Dify_Agent que você criou, clique em "Device Management". Clique em "Add New", insira o código de verificação anunciado pelo dispositivo e clique em "Save".

Depois de concluir a configuração conforme descrito acima, o Watcher poderá se conectar ao serviço de backend Xiaozhi.

🎉 Neste ponto, toda a instalação de software e a configuração básica de hardware estão concluídas! Em seguida, vamos focar em "orquestrar" nosso aplicativo de IA na plataforma Dify, permitindo que ele entenda e responda aos nossos comandos de controle da casa inteligente.

Ⅲ. Orquestração do App Dify

Vamos voltar para a plataforma Dify e configurar o app Agent que criamos anteriormente para que ele consiga se comunicar com o Home Assistant e entender nossos comandos.

Ⅰ. Adicionar a Ferramenta MCP

Para permitir que o Dify controle dispositivos no Home Assistant, precisamos adicionar a ele uma "Tool". Essa ferramenta é baseada no MCP (Meta Control Protocol).

Na barra de navegação superior da página do app Dify, encontre a opção "Tools", procure por "MCP SSE" e baixe o plugin correspondente.

Configurar a Ferramenta MCP para se Conectar ao HA

Após a instalação, clique novamente nesta ferramenta. Ela solicitará que você forneça as informações de configuração do serviço MCP para que o Dify possa se comunicar com ele via MCP. Seguindo o modelo e a documentação MCP Server - Home Assistant, você normalmente precisará inserir uma configuração em formato JSON semelhante à abaixo:

{
"Home Assistant": {
"url": "http://your_ha_ip:8123/mcp_server/sse",
"headers": {
"Authorization": "Bearer your_ha_token"
},
"timeout": 10,
"sse_read_timeout": 60
}
}

Obter o Endereço IP do Home Assistant (your_ha_ip)
Endereço IP do HA

Se o seu Home Assistant estiver em execução em http://homeassistant.local:8123, você pode tentar dar um ping em homeassistant.local na linha de comando do seu computador para obter o endereço IP.

Você também pode encontrar o endereço IP de homeassistant.local nas configurações da interface de rede IPv4 em http://homeassistant.local:8123/config/network.

Como alternativa, faça login no seu Home Assistant; normalmente você encontrará o endereço IPv4 em "Settings" > "System" > "Network".

Supondo que o endereço atual do seu Home Assistant seja 192.168.101.160, então a sua SSE URL será:

http://192.168.101.160:8123/mcp_server/sse
Obter o Long-Lived Access Token do Home Assistant (your_ha_token)

Faça login no seu Home Assistant.

  • Clique no seu nome de usuário no canto inferior esquerdo para ir para a página "Profile", ou vá diretamente para http://homeassistant.local:8123/profile/security.
  • Role até o final da página para encontrar a seção "Long-Lived Access Tokens".
  • Clique em "Create Token", dê a ele um nome (por exemplo, Dify_MCP) e depois clique em "OK".
Concluir a Configuração

Supondo que o IP do seu Home Assistant seja 192.168.101.160 e o token que você obteve seja eyJhbGciOi...G4s6IQw (o token longo real foi abreviado aqui), a configuração JSON completa deve ser:

{
"Home Assistant": {
"url": "http://192.168.101.160:8123/mcp_server/sse",
"headers": {
"Authorization": "Bearer eyJhbGciOi...G4s6IQw"
},
"timeout": 10,
"sse_read_timeout": 60
}
}

Copie essa configuração JSON concluída e cole-a na caixa de entrada de configuração de autorização para a ferramenta MCP no Dify (substituindo o conteúdo do modelo original na caixa de entrada). Em seguida, clique em "Save" ou "OK". Se a configuração estiver correta, você deverá ver uma notificação indicando que a autorização foi bem-sucedida ou que a ferramenta está disponível.

Isso permitirá que você chame a ferramenta MCP no app que você criou.

Ⅱ. Escrevendo o Prompt

Um prompt é a instrução que você dá ao Agente de IA, dizendo qual papel ele deve desempenhar, como deve funcionar e quais são suas capacidades e limitações.

  • Na área de configurações "Orchestrate" ou "Prompt" do seu app Dify Agent, você verá uma caixa de texto onde pode inserir seu prompt.
  • Para um cenário de casa inteligente, você pode criar um prompt simples que diga à IA que ela pode chamar a ferramenta Home Assistant para controlar dispositivos ou consultar seu status.

Um exemplo de prompt simples:

# Role
You are a helpful smart home assistant.

# Workflow
1. When the user makes a request to control devices in the home (like turning lights on/off, adjusting the air conditioner) or to query device status, you must use the tool named "Home Assistant" to accomplish it.
2. First, analyze the user's intent to determine which device to control and what action to perform.
3. Then, generate the command statement to call the "Home Assistant" tool.
4. If the user is just making small talk, or asks a question unrelated to smart home control, please converse with the user in a friendly manner.

# Requirements
- Your answers should be as concise and clear as possible.
- You can only control devices connected via the "Home-Assistant" tool.
- Clearly inform the user whether the operation was successful or provide the information queried.

dica

O prompt acima é uma estrutura bem básica. Você pode modificar e expandir esse prompt com base nos seus dispositivos Home Assistant reais e nas funções que deseja implementar, para atender melhor às suas necessidades.

Por exemplo, você pode adicionar nomes de dispositivos mais específicos, áreas de cômodos ou até definir uma "personalidade" específica para a IA.

O recurso de orquestração de prompt do Dify é muito poderoso, oferecendo suporte a recursos avançados como variáveis, contexto e bases de conhecimento. Você pode consultar a documentação oficial do Dify e aprender sobre Prompt Engineering para criar aplicações de IA mais poderosas.

Após escrever e salvar seu prompt, seu aplicativo de casa inteligente com IA estará essencialmente configurado!

Fazendo um Teste

Agora, pegue o seu SenseCAP Watcher, tente falar com ele e veja se o seu assistente de casa inteligente com IA consegue responder corretamente aos seus comandos e controlar seus dispositivos inteligentes por meio do Home Assistant!

Por exemplo, você pode tentar dizer: "Ligue a luz da sala de estar" ou "Qual é a temperatura no quarto agora?" (Isso pressupõe que você já configurou esses dispositivos no Home Assistant e que seu prompt e o Dify Agent conseguem entender e processar corretamente esses comandos).

Referências

Perguntas e Respostas

Como atualizar o xiaozhi-esp32-server?

Vá para a pasta onde os arquivos Docker do backend do seu servidor Xiaozhi estão armazenados.

docker compose -f docker-compose_all.yml down
docker rmi ghcr.nju.edu.cn/xinnan-tech/xiaozhi-esp32-server:server_latest
docker rmi ghcr.nju.edu.cn/xinnan-tech/xiaozhi-esp32-server:web_latest

Em seguida, atualize o arquivo compose (se ele tiver sido atualizado) e faça o pull das novas imagens.

Opcional: Atualize os arquivos de configuração. Para atualizações de versão principal, os arquivos de configuração podem ser diferentes. Copie o conteúdo abaixo como seu script de atualização:

#!/bin/bash

# Generic function to update a file
update_file() {
local FILE="$1"
local URL="$2"
local BACKUP_SUFFIX=$(date +%Y%m%d%H%M%S).bk
local TEMP_FILE="/tmp/$(basename "$FILE")"

# Ensure the target directory exists
local DIR=$(dirname "$FILE")
[ ! -d "$DIR" ] && mkdir -p "$DIR"

# If the file doesn't exist, download it directly
if [ ! -f "$FILE" ]; then
wget -O "$FILE" "$URL" && echo "$FILE does not exist, downloaded." && return
fi

# Download to a temporary file and compare differences
wget -O "$TEMP_FILE" "$URL" && diff "$FILE" "$TEMP_FILE" >/dev/null && {
echo "$FILE has no differences, no update needed.";
rm "$TEMP_FILE";
return;
}
echo "$FILE has differences:"
diff "$FILE" "$TEMP_FILE"

# Prompt the user whether to overwrite
echo -n "Overwrite the current file? (y/n): "
read CONFIRM
if [ "$CONFIRM" != "y" ]; then
echo "Update for $FILE canceled."
rm "$TEMP_FILE"
return
fi

# Back up the old file and replace it
cp "$FILE" "$FILE.$BACKUP_SUFFIX" && mv "$TEMP_FILE" "$FILE" && echo "$FILE has been updated and backed up as $FILE.$BACKUP_SUFFIX"
}

# Update data/.config.yaml
CONFIG_FILE="data/.config.yaml"
CONFIG_URL="https://raw.githubusercontent.com/xinnan-tech/xiaozhi-esp32-server/refs/heads/main/main/xiaozhi-server/config_from_api.yaml"
update_file "$CONFIG_FILE" "$CONFIG_URL"

# Update docker-compose_all.yml
DOCKER_COMPOSE_FILE="docker-compose_all.yml"
DOCKER_COMPOSE_URL="https://raw.githubusercontent.com/xinnan-tech/xiaozhi-esp32-server/refs/heads/main/main/xiaozhi-server/docker-compose_all.yml"
update_file "$DOCKER_COMPOSE_FILE" "$DOCKER_COMPOSE_URL"

echo "All file updates are complete!"
docker compose -f docker-compose_all.yml up -d
Loading Comments...