Xiaomi AI 스피커로 ChatGPT 및 기타 LLM 플레이
시스템 및 셸 | 리눅스 *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" |
루트 없이 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
옵션을 사용하세요.--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 기능을 얻을 수 있습니다(물고기 음성을 얻는 방법은 아래 참조).--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
model, temporary, top_p와 같은 OpenAI 모델 매개변수를 지정하려면 config.yaml에 지정하세요.
gpt_options :
temperature : 0.9
top_p : 0.9
특정 매개변수 기능에 대해서는 Open AI API 문서를 참조하세요. ChatGLM 문서
매개변수 | 설명하다 | 기본값 | 선택적 값 |
---|---|---|---|
하드웨어 | 장치 모델 | ||
계정 | 샤오아이 계정 | ||
비밀번호 | Xiaoai 계정 비밀번호 | ||
openai_key | openai의 apikey | ||
Moonshot_api_key | Moonshot Kimi의 apikey | ||
yi_api_key | 01 완우의 아피키 | ||
llama_api_key | groq용 llama3 API 키 | ||
serpapi_api_key | Serpapi 키 참조 SerpAPI | ||
glm_key | chatglm apikey | ||
gemini_key | 제미니 apikey 참조 | ||
gemini_api_domain | Gemini의 사용자 정의 도메인 이름 참조 | ||
qwen_key | qwen의 apikey 참조 | ||
쿠키 | Xiaoai 계정 쿠키(위 비밀번호로 로그인하는 경우 공백으로 놔두셔도 됩니다) | ||
mi_did | 장치가 그랬어요 | ||
use_command | MI 명령을 사용하여 Xiaoai와 상호작용 | false | |
mute_xiaoai | 샤오아이의 대답을 빨리 멈추세요 | true | |
말 수가 많은 | 상세 로그 인쇄 여부 | false | |
봇 | 현재 사용되는 봇 유형은 chatgptapi, newbing, qwen, gemini를 지원합니다. | chatgptapi | |
ㅜㅜ | 사용된 TTS 유형 | mi | edge , openai , azure , volc , baidu , google , minimax |
tts_옵션 | TTS 매개변수 사전, 사용 가능한 매개변수는 tetos를 참조하세요. | ||
즉각적인 | 맞춤 프롬프트 | 请用100字以内回答 | |
예어 | 맞춤 요청 단어 목록 | ["请"] | |
변경_프롬프트_키워드 | 프롬프트 단어 트리거 목록 변경 | ["更改提示词"] | |
시작_대화 | 진행중인 대화 키워드를 시작하세요 | 开始持续对话 | |
end_conversation | 진행 중인 대화 종료 키워드 | 结束持续对话 | |
개울 | 더 빠른 응답을 위해 스트리밍 응답 사용 | true | |
대리 | HTTP 프록시 지원, http 프록시 URL 전달 | "" | |
gpt_옵션 | OpenAI API용 매개변수 사전 | {} | |
배포_ID | Azure OpenAI 서비스의 배포 ID | 배포_ID를 찾는 방법은 여기를 참조하세요. | |
api_base | 기본 API를 교체해야 하거나 Azure OpenAI 서비스를 사용해야 하는 경우 | 예: https://abc-def.openai.azure.com/ | |
volc_access_key | 여기에서 볼케이노 엔진의 액세스 키를 받으세요. | ||
volc_secret_key | 여기에서 볼케이노 엔진의 비밀 키를 얻으세요. |
--use_command
LX04, 이 모델은 Xiaoai의 원래 TTS만 지원합니다.C:Users用户名
에서 .mi.token을 찾을 수 있습니다. 로컬로 하신 후 로그인이 안되는 서버에 던지시면 됩니다. 리눅스라면 현재 사용자의 홈 폴더에 넣어두시면 이전 명령어를 다시 실행하시면 정상적으로 로그인이 가능합니다. 아무런 사고 없이 (단, 쿠키는 일정 시간이 지나면 만료될 수 있으므로 다시 시작해야 합니다. get)https://www.youtube.com/watch?v=K4YA8YwzOOA
X86/ARM 도커 이미지: 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 .
현재 세 가지 타사 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
엣지의 경우 더 많은 언어 지원을 확인하고 하나를 선택하세요.
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가 정상적으로 음성을 재생할 수 없습니다.
持续会话功能
지원하기 위해 일부 코드를 리팩토링했습니다. 감사합니다.