Xiaomi AI Speaker で ChatGPT やその他の LLM をプレイする
システムとシェル | Linux *sh | Windows CMD ユーザー | Windows PowerShell ユーザー |
---|---|---|---|
1. インストールパッケージ | pip install miservice_fork | pip install miservice_fork | pip install miservice_fork |
2. 変数を設定する | 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. MI_DID を取得する | micli list | micli list | micli list |
4. MI_DID を設定する | export MI_DID=xxx | set MI_DID=xxx | $env:MI_DID="xxx" |
root を使用しない Xiaoai と ChatGPT 間の対話型対話に関する注意事項
pip install -U --force-reinstall xiaogpt[locked]
micli list
実行してスピーカーの DID を取得します。成功したら、この MI_DID にエクスポート MI_DID=xxx を設定することを忘れないでください。xiaogpt --hardware ${your_hardware} --use_chatgpt_api
hardware を実行します。Xiao Ai のお尻にモデル番号があるのがわかります。お尻にない場合、またはモデルが間違っている場合は、 micli mina
使用して入力できます。型番を見つけます。--cookie '${cookie}'
を使用します。クッキーを一重引用符で囲むことを忘れないでください--use_command
使用して tts にコマンドを使用できます。--mute_xiaoai
オプションを使用して、Xiaoai の回答をすぐに停止します--account ${account} --password ${password}
を使用します--use_chatgpt_api
の API を使用して、よりスムーズな会話を実現します。これは非常に高速で、Openai API、コマンド--use_chatgpt_api
実現します。--api_base ${url}
を使用してください。ここで入力する API は「 https://xxxx/v1
」である必要があり、ドメイン名は引用符で囲む必要があることに注意してください。--use_moonshot_api
およびその他のモデルは以下を参照してください开始持续对话
指示すると、自動的に連続会話状態になり、结束持续对话
指示すると、連続会話状態が終了します。--tts edge
使用すると、tts 機能を向上させることができます--tts fish --fish_api_key <your-fish-key> --fish_voice_key <fish-voice>
を使用して、fish-audio 機能を取得できます (fish voice の取得方法については、以下を参照してください)。--tts openai
使用して openai tts 機能を取得できます--tts azure --azure_tts_speech_key <your-speech-key>
を使用して、Azure TTS 機能を取得できます。--use_chatgpt_api
の代わりに--use_langchain
使用して LangChain (デフォルトの chatgpt) サービスを呼び出し、オンライン検索と数学的操作を実装できます。例えば
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}
git clone を使用して実行します
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}
単一の構成ファイルから開始する場合は、 --config
パラメーターを使用して構成ファイルを指定することもできます。その構成ファイルは、有効な Yaml または JSON 形式のパラメーターの優先順位である必要があります。
python3 xiaogpt.py --config xiao_config.yaml
# or
xiaogpt --config xiao_config.yaml
または
cp xiao_config.yaml.example xiao_config.yaml
python3 xiaogpt.py
OpenAI モデルのパラメーター (model、temporal、top_p など) を指定するには、config.yaml で次のように指定してください。
gpt_options :
temperature : 0.9
top_p : 0.9
特定のパラメータ関数については、Open AI API ドキュメントを参照してください。 ChatGLM ドキュメント
パラメータ | 説明する | デフォルト値 | オプションの値 |
---|---|---|---|
ハードウェア | デバイスモデル | ||
アカウント | シャオアイアカウント | ||
パスワード | Xiaoai アカウントのパスワード | ||
openai_key | openai の apikey | ||
Moonshot_api_key | apikey by ムーンショット・キミ | ||
yi_api_key | 01 ワンウーのアピキー | ||
ラマ_api_key | Groq 用の llama3 apikey | ||
serpapi_api_key | Serpapi キー リファレンス SerpAPI | ||
glm_key | チャットGLMアピキー | ||
ジェミニキー | ジェミニ apikey リファレンス | ||
gemini_api_domain | Gemini のカスタム ドメイン名のリファレンス | ||
qwen_key | qwen の apikey リファレンス | ||
クッキー | XiaoaiアカウントのCookie(上記のパスワードでログインする場合は空白のままでも大丈夫です) | ||
mi_did | デバイスがやった | ||
use_command | MI コマンドを使用して Xiaoai と対話する | false | |
mute_xiaoai | シャオアイの答えをすぐに止めてください | true | |
冗長な | 詳細ログを印刷するかどうか | false | |
ボット | 現在使用されているボット タイプは、chatgptapi、newbing、qwen、gemini をサポートしています。 | chatgptapi | |
tts | TTSタイプを使用 | mi | edge 、 openai 、 azure 、 volc 、 baidu 、 google 、 minimax |
tts_options | TTS パラメータ辞書。利用可能なパラメータについては tetos を参照してください。 | ||
プロンプト | カスタムプロンプト | 请用100字以内回答 | |
キーワード | カスタムリクエストワードリスト | ["请"] | |
変更プロンプト_キーワード | プロンプトワードトリガーリストの変更 | ["更改提示词"] | |
会話の開始 | 進行中の会話のキーワードを開始する | 开始持续对话 | |
会話の終了 | 進行中の会話キーワードを終了する | 结束持续对话 | |
ストリーム | ストリーミング応答を使用して応答を高速化する | true | |
プロキシ | HTTP プロキシをサポートし、http プロキシ URL を渡します | 「」 | |
gpt_options | OpenAI API用パラメータ辞書 | {} | |
デプロイメント ID | Azure OpenAI サービスのデプロイメント ID | deployment_idを見つける方法はこれを参照してください | |
api_base | デフォルトの API を置き換える必要がある場合、または Azure OpenAI サービスを使用する必要がある場合 | 例: https://abc-def.openai.azure.com/ | |
volc_access_key | ここからVolcano Engineのアクセスキーを取得してください | ||
volc_secret_key | ここからVolcano Engineの秘密鍵を取得してください |
--use_command
LX04、これらのモデルは、Xiaoai のオリジナル TTS のみをサポートしています。C:Users用户名
に .mi.token が見つかります。 Linuxの場合は、現在のユーザーのホームフォルダに置いてください。この時、先ほどのコマンドを再実行すると正常にログインできます。事故はありませんでした (ただし、一定期間が経過すると Cookie が期限切れになる可能性があるため、再起動する必要があります。取得)https://www.youtube.com/watch?v=K4YA8YwzOOA
X86/ARM Docker イメージ: yihong0618/xiaogpt
docker run -e OPENAI_API_KEY= < your-openapi-key > yihong0618/xiaogpt <命令行参数>
のように
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
xiaogpt の構成ファイルは、ボリューム /config を指定し、パラメーター --config を指定することで処理できます。たとえば、
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 .
依存関係のインストール時にビルドが失敗したりインストールが遅い場合は、Docker イメージをビルドするときに--build-arg
パラメーターを使用して国内ソース アドレスを指定できます。
docker build --build-arg PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple -t xiaogpt .
Apple M1/M2 で x86 をコンパイルする必要がある場合
docker buildx build --platform=linux/amd64 -t xiaogpt-x86 .
現在、3 つのサードパーティ TTS をサポートしています:edge/openai/azure/volc/baidu/google
Edge-tts は、Microsoft TTS と同様の機能を提供します azure-tts は、Microsoft Azure TTS と同様の機能を提供します openai-tts は、OpenAI TTS と同様の機能を提供します Fish-tts は、fish TTS と同様の機能を提供します
パラメータtts
を通じて有効にできます。
tts : edge
エッジの場合は、言語サポートをさらに表示し、1 つ選択してください
edge-tts --list-voices
e80ea225770f42f79d50aa98be3cedfc
はサウンドのキー ID です tts : fish
# TTS 参数字典,参考 https://github.com/frostming/tetos 获取可用参数
tts_options : {
" api_key " : " xxxxx " ,
" voice " : " xxxxxx "
}
Edge TTS はローカル HTTP サービスを開始するため、コンテナーのポートをホストにマップし、ローカル マシンのホスト名を指定する必要があります。
docker run -v < your-config-dir > :/config -p 9527:9527 -e XIAOGPT_HOSTNAME= < your ip > yihong0618/xiaogpt --config=/config/config.yaml
ポートはコンテナと一致してマッピングする必要があり、XIAOGPT_HOSTNAME をホストの IP アドレスに設定する必要があることに注意してください。そうしないと、Xiaoai は正常に音声を再生できません。
持续会话功能
をサポートするために一部のコードをリファクタリングしましたありがとうだけで十分です