Jogue ChatGPT e outros LLM com Xiaomi AI Speaker
Sistema e Shell | Linux *sh | Usuários do Windows CMD | Usuários do Windows PowerShell |
---|---|---|---|
1. Pacote de instalação | pip install miservice_fork | pip install miservice_fork | pip install miservice_fork |
2. Defina variáveis | export MI_USER=xxx export MI_PASS=xxx | set MI_USER=xxx set MI_PASS=xxx | $env:MI_USER="xxx" $env:MI_PASS="xxx" |
3. Obtenha MI_DID | micli list | micli list | micli list |
4. Defina MI_DID | export MI_DID=xxx | set MI_DID=xxx | $env:MI_DID="xxx" |
Notas sobre interações interativas entre Xiaoai e ChatGPT sem root
pip install -U --force-reinstall xiaogpt[locked]
micli list
no terminal local para obter o DID do seu alto-falante. Se for bem-sucedido, não se esqueça de definir export MI_DID=xxx para este MI_DID.xiaogpt --hardware ${your_hardware} --use_chatgpt_api
hardware Você vê que há um número de modelo na bunda de Xiao Ai, digite-o. Se você não conseguir encontrá-lo em sua bunda ou o modelo estiver errado, você pode usar micli mina
para. encontre o número do modelo.--cookie '${cookie}'
Don não se esqueça de colocar o cookie entre aspas simples--use_command
para usar o comando para tts.--mute_xiaoai
para interromper rapidamente as respostas de Xiaoai--account ${account} --password ${password}
--use_chatgpt_api
para ter uma conversa mais tranquila, que é muito rápida e proporciona uma experiência de conversação Openai api, comando --use_chatgpt_api
.--api_base ${url}
. Observe que a API inserida aqui deve ser ' https://xxxx/v1
' e o nome do domínio precisa ser colocado entre aspas.--use_moonshot_api
e outros modelos, consulte abaixo开始持续对话
e entrar automaticamente no estado de conversa contínua, e结束持续对话
para encerrar o estado de conversa contínua.--tts edge
para obter melhores recursos de tts--tts fish --fish_api_key <your-fish-key> --fish_voice_key <fish-voice>
para obter o recurso fish-audio (veja abaixo como obter a voz do peixe)--tts openai
para obter recursos openai tts--tts azure --azure_tts_speech_key <your-speech-key>
para obter recursos do Azure TTS--use_langchain
em vez de --use_chatgpt_api
para chamar o serviço LangChain (chatgpt padrão) para implementar recuperação online e operações matemáticas.por exemplo
export OPENAI_API_KEY= ${your_api_key}
xiaogpt --hardware LX06 --use_chatgpt_api
# or
xiaogpt --hardware LX06 --cookie ${cookie} --use_chatgpt_api
# 如果你想直接输入账号密码
xiaogpt --hardware LX06 --account ${your_xiaomi_account} --password ${your_password} --use_chatgpt_api
# 如果你想 mute 小米的回答
xiaogpt --hardware LX06 --mute_xiaoai --use_chatgpt_api
# 使用流式响应,获得更快的响应
xiaogpt --hardware LX06 --mute_xiaoai --stream
# 如果你想使用 google 的 gemini
xiaogpt --hardware LX06 --mute_xiaoai --use_gemini --gemini_key ${gemini_key}
# 如果你想使用自己的 google gemini 服务
python3 xiaogpt.py --hardware LX06 --mute_xiaoai --use_gemini --gemini_key ${gemini_key} --gemini_api_domain ${gemini_api_domain}
# 如果你想使用阿里的通义千问
xiaogpt --hardware LX06 --mute_xiaoai --use_qwen --qwen_key ${qwen_key}
# 如果你想使用 kimi
xiaogpt --hardware LX06 --mute_xiaoai --use_moonshot_api --moonshot_api_key ${moonshot_api_key}
# 如果你想使用 llama3
xiaogpt --hardware LX06 --mute_xiaoai --use_llama --llama_api_key ${llama_api_key}
# 如果你想使用 01
xiaogpt --hardware LX06 --mute_xiaoai --use_yi_api --ti_api_key ${yi_api_key}
# 如果你想使用 LangChain+SerpApi 实现上网检索或其他本地服务(目前仅支持 stream 模式)
export OPENAI_API_KEY= ${your_api_key}
export SERPAPI_API_KEY= ${your_serpapi_key}
xiaogpt --hardware Lx06 --use_langchain --mute_xiaoai --stream --openai_key ${your_api_key} --serpapi_api_key ${your_serpapi_key}
Use git clone para executar
export OPENAI_API_KEY= ${your_api_key}
python3 xiaogpt.py --hardware LX06
# or
python3 xiaogpt.py --hardware LX06 --cookie ${cookie}
# 如果你想直接输入账号密码
python3 xiaogpt.py --hardware LX06 --account ${your_xiaomi_account} --password ${your_password} --use_chatgpt_api
# 如果你想 mute 小米的回答
python3 xiaogpt.py --hardware LX06 --mute_xiaoai
# 使用流式响应,获得更快的响应
python3 xiaogpt.py --hardware LX06 --mute_xiaoai --stream
# 如果你想使用 ChatGLM api
python3 xiaogpt.py --hardware LX06 --mute_xiaoai --use_glm --glm_key ${glm_key}
# 如果你想使用 google 的 gemini
python3 xiaogpt.py --hardware LX06 --mute_xiaoai --use_gemini --gemini_key ${gemini_key}
# 如果你想使用自己的 google gemini 服务
python3 xiaogpt.py --hardware LX06 --mute_xiaoai --use_gemini --gemini_key ${gemini_key} --gemini_api_domain ${gemini_api_domain}
# 如果你想使用阿里的通义千问
python3 xiaogpt.py --hardware LX06 --mute_xiaoai --use_qwen --qwen_key ${qwen_key}
# 如果你想使用 kimi
xiaogpt --hardware LX06 --mute_xiaoai --use_moonshot_api --moonshot_api_key ${moonshot_api_key}
# 如果你想使用 01
xiaogpt --hardware LX06 --mute_xiaoai --use_yi_api --ti_api_key ${yi_api_key}
# 如果你想使用豆包
python3 xiaogpt.py --hardware LX06 --mute_xiaoai --use_doubao --stream --volc_access_key xxxx --volc_secret_key xxx
# 如果你想使用 llama3
python3 xiaogpt.py --hardware LX06 --mute_xiaoai --use_llama --llama_api_key ${llama_api_key}
# 如果你想使用 LangChain+SerpApi 实现上网检索或其他本地服务(目前仅支持 stream 模式)
export OPENAI_API_KEY= ${your_api_key}
export SERPAPI_API_KEY= ${your_serpapi_key}
python3 xiaogpt.py --hardware Lx06 --use_langchain --mute_xiaoai --stream --openai_key ${your_api_key} --serpapi_api_key ${your_serpapi_key}
Se você deseja iniciar por meio de um único arquivo de configuração, também é possível especificar o arquivo de configuração por meio do parâmetro --config
. O arquivo de configuração deve ser uma prioridade de parâmetro de formato Yaml ou JSON legal.
python3 xiaogpt.py --config xiao_config.yaml
# or
xiaogpt --config xiao_config.yaml
ou
cp xiao_config.yaml.example xiao_config.yaml
python3 xiaogpt.py
Para especificar parâmetros do modelo OpenAI, como model, temporal, top_p, especifique em config.yaml:
gpt_options :
temperature : 0.9
top_p : 0.9
Consulte a documentação da API Open AI para funções de parâmetros específicos. Documentação do ChatGLM
parâmetro | ilustrar | valor padrão | Valor opcional |
---|---|---|---|
hardware | Modelo do dispositivo | ||
conta | Conta Xiaoai | ||
senha | Senha da conta Xiaoai | ||
openai_key | apikey do openai | ||
moonshot_api_key | apikey por moonshot kimi | ||
yi_api_key | 01 apikey de wanwu | ||
lhama_api_key | lhama3 apikey para groq | ||
serpapi_api_key | Referência de chave Serpapi SerpAPI | ||
glm_key | chatglm apikey | ||
gemini_key | referência apikey de gêmeos | ||
gemini_api_domain | Referência de nome de domínio personalizado do Gemini | ||
chave_qwen | referência apikey de qwen | ||
biscoitos | Cookie da conta Xiaoai (você pode deixar em branco se fizer login com a senha acima) | ||
mi_did | dispositivo fez | ||
usar_comando | Use o comando MI para interagir com Xiaoai | false | |
mute_xiaoai | Pare rapidamente a resposta do próprio Xiaoai | true | |
detalhado | Se deseja imprimir logs detalhados | false | |
robô | O tipo de bot usado atualmente suporta chatgptapi, newbing, qwen, gemini | chatgptapi | |
tts | Tipo de TTS usado | mi | edge , openai , azure , volc , baidu , google , minimax |
tts_options | Dicionário de parâmetros TTS, consulte tetos para obter os parâmetros disponíveis | ||
incitar | Solicitação personalizada | 请用100字以内回答 | |
palavra-chave | Lista de palavras de solicitação personalizada | ["请"] | |
change_prompt_keyword | Alterar lista de acionadores de palavras de prompt | ["更改提示词"] | |
iniciar_conversação | Inicie palavras-chave de conversa contínua | 开始持续对话 | |
fim_conversação | Encerrar palavras-chave de conversa em andamento | 结束持续对话 | |
fluxo | Use respostas de streaming para respostas mais rápidas | true | |
procurador | Suporta proxy HTTP, passe o URL do proxy http | "" | |
opções_gpt | Dicionário de parâmetros para API OpenAI | {} | |
ID_de_implantação | ID de implantação do serviço Azure OpenAI | Consulte isto como encontrar o deploy_id | |
base_api | Se você precisar substituir a API padrão ou usar o serviço Azure OpenAI | Por exemplo: https://abc-def.openai.azure.com/ | |
volc_access_key | Por favor, obtenha a chave de acesso do Volcano Engine aqui | ||
volc_secret_key | Por favor, obtenha a chave secreta do Volcano Engine aqui |
--use_command
LX04, Esses modelos também suportam apenas o TTS original de Xiaoai.C:Users用户名
após implantar o pacote. projeto localmente e, em seguida, jogue-o no servidor onde você não pode fazer login. Se for Linux, coloque-o na pasta inicial do usuário atual. Neste momento, você pode executar novamente o comando anterior e fazer login. normalmente sem nenhum acidente (mas o cookie pode expirar após um período de tempo e precisa ser reiniciado. get)https://www.youtube.com/watch?v=K4YA8YwzOOA
Imagem do Docker X86/ARM: yihong0618/xiaogpt
docker run -e OPENAI_API_KEY= < your-openapi-key > yihong0618/xiaogpt <命令行参数>
como
docker run -e OPENAI_API_KEY= < your-openapi-key > yihong0618/xiaogpt --account= < your-xiaomi-account > --password= < your-xiaomi-password > --hardware= < your-xiaomi-hardware > --use_chatgpt_api
O arquivo de configuração do xiaogpt pode ser processado especificando volume /config e especificando o parâmetro --config, como
docker run -v < your-config-dir > :/config yihong0618/xiaogpt --config=/config/config.yaml
docker run -v < your-config-dir > :/config --network=host yihong0618/xiaogpt --config=/config/config.yaml
docker build -t xiaogpt .
Se a compilação falhar ou a instalação for lenta ao instalar dependências, você poderá usar o parâmetro --build-arg
para especificar o endereço de origem doméstico ao criar a imagem do Docker:
docker build --build-arg PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple -t xiaogpt .
Se você precisar compilar x86 no Apple M1/M2
docker buildx build --platform=linux/amd64 -t xiaogpt-x86 .
Atualmente, oferecemos suporte a três TTS de terceiros: edge/openai/azure/volc/baidu/google
edge-tts fornece recursos semelhantes ao Microsoft TTS azure-tts fornece recursos semelhantes ao Microsoft Azure TTS openai-tts fornece recursos semelhantes ao OpenAI TTS fish-tts fornece recursos semelhantes ao fish TTS
Você pode habilitá-lo através do parâmetro tts
,
tts : edge
Para edge Veja mais suporte a idiomas, escolha um
edge-tts --list-voices
e80ea225770f42f79d50aa98be3cedfc
é o ID da chave do som tts : fish
# TTS 参数字典,参考 https://github.com/frostming/tetos 获取可用参数
tts_options : {
" api_key " : " xxxxx " ,
" voice " : " xxxxxx "
}
Como o Edge TTS inicia um serviço HTTP local, você precisa mapear a porta do contêiner para o host e especificar o nome do host da máquina local:
docker run -v < your-config-dir > :/config -p 9527:9527 -e XIAOGPT_HOSTNAME= < your ip > yihong0618/xiaogpt --config=/config/config.yaml
Observe que a porta deve ser mapeada de forma consistente com o contêiner e XIAOGPT_HOSTNAME precisa ser definido como o endereço IP do host, caso contrário, Xiaoai não poderá reproduzir voz normalmente.
持续会话功能
Obrigado é o suficiente