文章目录
前言
官方和b站有非常多并且详细的部署说明:
https://github.com/xinnan-tech/xiaozhi-esp32-server/blob/main/docs/Deployment.md
https://www.bilibili.com/video/BV1gePuejEvT/?vd_source=fad3315452b2c42bff3f9df483cb15f8
但是部署后运行时依然遇到了一个问题:
conda activate xiaozhi-esp32-server && python app.py
250417 11:01:35[0.2.1_SiFuChEdnofu][core.utils.vad]-INFO-SileroVAD
250417 11:01:39[0.2.1_SiFuChEdnofu][core.providers.asr.fun_local]-INFO-funasr version: 1.2.3.
Traceback (most recent call last):
File "/home/zhanggang/xiaozhi-esp32-server/main/xiaozhi-server/app.py", line 49, in <module>
asyncio.run(main())
File "/home/zhanggang/anaconda3/envs/xiaozhi-esp32-server/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/home/zhanggang/anaconda3/envs/xiaozhi-esp32-server/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
return future.result()
File "/home/zhanggang/xiaozhi-esp32-server/main/xiaozhi-server/app.py", line 32, in main
ws_server = WebSocketServer(config)
File "/home/zhanggang/xiaozhi-esp32-server/main/xiaozhi-server/core/websocket_server.py", line 16, in __init__
self._create_processing_instances()
File "/home/zhanggang/xiaozhi-esp32-server/main/xiaozhi-server/core/websocket_server.py", line 47, in _create_processing_instances
llm.create_instance(
File "/home/zhanggang/xiaozhi-esp32-server/main/xiaozhi-server/core/utils/llm.py", line 21, in create_instance
return sys.modules[lib_name].LLMProvider(*args, **kwargs)
File "/home/zhanggang/xiaozhi-esp32-server/main/xiaozhi-server/core/providers/llm/openai/openai.py", line 21, in __init__
self.client = openai.OpenAI(api_key=self.api_key, base_url=self.base_url)
File "/home/zhanggang/anaconda3/envs/xiaozhi-esp32-server/lib/python3.10/site-packages/openai/_client.py", line 130, in __init__
super().__init__(
File "/home/zhanggang/anaconda3/envs/xiaozhi-esp32-server/lib/python3.10/site-packages/openai/_base_client.py", line 863, in __init__
self._client = http_client or SyncHttpxClientWrapper(
File "/home/zhanggang/anaconda3/envs/xiaozhi-esp32-server/lib/python3.10/site-packages/openai/_base_client.py", line 755, in __init__
super().__init__(**kwargs)
File "/home/zhanggang/anaconda3/envs/xiaozhi-esp32-server/lib/python3.10/site-packages/httpx/_client.py", line 693, in __init__
proxy_map = self._get_proxy_map(proxies or proxy, allow_env_proxies)
File "/home/zhanggang/anaconda3/envs/xiaozhi-esp32-server/lib/python3.10/site-packages/httpx/_client.py", line 218, in _get_proxy_map
return {
File "/home/zhanggang/anaconda3/envs/xiaozhi-esp32-server/lib/python3.10/site-packages/httpx/_client.py", line 219, in <dictcomp>
key: None if url is None else Proxy(url=url)
File "/home/zhanggang/anaconda3/envs/xiaozhi-esp32-server/lib/python3.10/site-packages/httpx/_config.py", line 338, in __init__
raise ValueError(f"Unknown scheme for proxy URL {url!r}")
ValueError: Unknown scheme for proxy URL URL('socks://127.0.0.1:7897/')
问题的原因是问题出在 OpenAI 客户端尝试使用 SOCKS 代理,但它不支持这种格式。
好像是因为科学上网或者别的网络代理的缘故。
解决方法很简单;
只需要禁用代理环境变量及可:
conda activate xiaozhi-esp32-server && env -u http_proxy -u https_proxy -u all_proxy -u HTTP_PROXY -u HTTPS_PROXY -u ALL_PROXY python app.py
解决完之后运行会显示:
250417 11:03:54[0.2.1_SiFuChEdnofu][core.utils.vad]-INFO-SileroVAD
250417 11:03:57[0.2.1_SiFuChEdnofu][core.providers.asr.fun_local]-INFO-funasr version: 1.2.3.
250417 11:03:57[0.2.1_SiFuChEdnofu][core.websocket_server]-INFO-Server is running at ws://192.168.10.109:8000/xiaozhi/v1/
250417 11:03:57[0.2.1_SiFuChEdnofu][core.websocket_server]-INFO-=上面的地址是websocket协议地址,请勿用浏览器访问=
250417 11:03:57[0.2.1_SiFuChEdnofu][core.websocket_server]-INFO-如想测试websocket请用谷歌浏览器打开test目录下的test_page.html
250417 11:03:57[0.2.1_SiFuChEdnofu][core.websocket_server]-INFO-=============================================================