部署xiaozhi-server(小智ai服务端)遇到的一个问题

文章目录


前言

官方和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-=============================================================


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不断学习加努力

俺会努力的,一直免费的!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值