g4f api报错:ImportError: cannot import name ‘model_validator‘ from ‘pydantic‘
执行g4f api,报错:
from pydantic import BaseModel, Field, model_validator
ImportError: cannot import name 'model_validator' from 'pydantic' (/usr/lib/python3/dist-packages/pydantic/__init__.py)
看来问题出在pydantic库
升级pydantic
pip install pydantic -U
然后报错:
import_email_validator()
File "/home/skywalk/.local/lib/python3.10/site-packages/pydantic/networks.py", line 950, in import_email_validator
raise ImportError('email-validator version >= 2.0 required, run pip install -U email-validator')
ImportError: email-validator version >= 2.0 required, run pip install -U
看来问题出在 email-validator
更新 email-validator库
pip install -U email-validator
再执行报错:
File "/home/skywalk/.local/lib/python3.10/site-packages/g4f/requests/raise_for_status.py", line 72, in raise_for_status
raise CloudflareError(f"Response {response.status_code}: Cloudflare detected")
g4f.requests.raise_for_status.CloudflareError: Response 403: Cloudflare detected
这个错误信息表明你在访问一个受到Cloudflare保护的网页时,收到了403 Forbidden的响应。Cloudflare通常用于保护网站免受DDoS攻击和其他恶意活动。此外,它还可能会限制某些类型的请求,例如机器人流量。
这个问题不致命,大约还能用。
使用curl测试
curl -X POST "http://192.168.1.5:1337/v1/chat/completions" \-H "Content-Type: application/json" \-d '{"messages": [{"role": "user","content": "Hello"}],"model": "gpt-4o"}'curl -X POST "http://192.168.1.13:1337/v1/chat/completions" \-H "Content-Type: application/json" \-d '{"messages": [{"role": "user","content": "Hello"}],"model": "gpt-4o-mini"}'
测试通过:
{"id":"chatcmpl-arAvxmXH3GQcPAsKLxMhtveH1GJb","object":"chat.completion","created":1745941254,"model":"gpt-4o","provider":"PollinationsAI","choices":[{"index":0,"message":{"role":"assistant","content":"Hey there! What’s on your mind today?","tool_calls":null},"finish_reason":"stop"}],"usage":{"prompt_tokens":249,"completion_tokens":11,"total_tokens":260,"prompt_tokens_details":{"cached_tokens":0},"completion_tokens_details":{}}}
证明g4f的api可以正常使用了。