g4f的大模型,使用的时候报错:RetryProvider failed: Jmuz: ClientConnectorSSLError: Cannot connect to host jmuz.me

在使用g4f大模型的时候,碰到了报错:

RetryProviderError: RetryProvider failed: Jmuz: ClientConnectorSSLError: Cannot connect to host jmuz.me:443 ssl:default [[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1010)] Blackbox: ResponseStatusError: Response 500: OpenaiChat: NoValidHarFileError: No .har file found PollinationsAI: ResponseStatusError: Response 500: 429 Too Many Requests ChatGptEs: MissingRequirementsError: Install or update "curl_cffi" package | pip install -U curl_cffi

大约就是网站太拥堵了,或者是认证那块没过。

先进入python3.12系统

bash
source py312/bin/activate

因为FreeBSD默认是cshell,所以先执行了bash,再激活python环境。 

按照提示,尝试执行

pip install -U curl_cffi

因为是在FreeBSD,pip install -U curl_cffi报错:

pip install -U curl_cffi
Looking in indexes: https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
Collecting curl_cffi
  Downloading https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/7d/c0/18e408334c480f2cacca02feec8cd01dba9e3f1637cd03fd21b033c2bfa3/curl_cffi-0.10.0.tar.gz (144 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [43 lines of output]
      Traceback (most recent call last):
        File "/home/skywalk/py312/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
          main()
        File "/home/skywalk/py312/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
          json_out["return_val"] = hook(**hook_input["kwargs"])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/skywalk/py312/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 143, in get_requires_for_build_wheel
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 334, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=[])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 304, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 320, in run_setup
          exec(code, locals())
        File "<string>", line 16, in <module>
        File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 117, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 148, in setup
          _setup_distribution = dist = klass(attrs)
                                       ^^^^^^^^^^^^
        File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 323, in __init__
          _Distribution.__init__(self, dist_attrs)
        File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 309, in __init__
          self.finalize_options()
        File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 786, in finalize_options
          ep(self)
        File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 806, in _finalize_setup_keywords
          ep.load()(self, ep.name, value)
        File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/cffi/setuptools_ext.py", line 216, in cffi_modules
          add_cffi_module(dist, cffi_module)
        File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/cffi/setuptools_ext.py", line 49, in add_cffi_module
          execfile(build_file_name, mod_vars)
        File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/cffi/setuptools_ext.py", line 25, in execfile
          exec(code, glob, glob)
        File "scripts/build.py", line 51, in <module>
          arch = detect_arch()
                 ^^^^^^^^^^^^^
        File "scripts/build.py", line 48, in detect_arch
          raise Exception(f"Unsupported arch: {uname}")
      Exception: Unsupported arch: uname_result(system='FreeBSD', node='fb5', release='14.1-BETA3', version='FreeBSD 14.1-BETA3 releng/14.1-n267636-2a964a7fc34e GENERIC', machine='amd64')
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

尝试先安装cffi,再安装curl-cffi,cffi可以安装上:

pip install cffi

curl-cffi还是没有装上:

pip install -U curl_cffi 

问题在FreeBSD下没有解决。

总结下,FreeBSD下,现在安装python库,有些不容易装上,比如curl_cffi ,pydantic-core , aiohttp

但是g4f的gui服务还是需要,所以在FreeBSD里起了一台CBSD jail Ubuntu服务器起g4f的服务:

sudo cbsd jls

JNAME    JID  IP4_ADDR         HOST_HOSTNAME      PATH                                STATUS
ubjail2  3    192.168.1.13/24  ubjail2.my.domain  /usr/jails/jails-data/ubjail2-data  On

 安装g4f[all]

pip install g4f[all]

安装完毕后,分别g4f gui 和g4f api 起服务,然后测试服务,发现一切正常后,将它们使用nohup启动:

nohup g4f api &
nohup g4f gui &

这样先临时解决这个问题了。

后来写了一个sh文件,这样每次升级g4f更加方便一点:

#!/bin/bash
pip install -U g4f[all]
# 停止服务
pkill -f "g4f"

# 启动服务
nohup g4f api &
nohup g4f gui &

执行这个文件,先升级g4f,然后停止g4f的服务,然后再启动g4f api和gui服务。

其中api提供模型调用,gui提供8080端口的web访问。