You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Clarifai Python GRPC客户端调用模型时出现握手错误如何解决

问题原因

你遇到的SSL证书验证失败报错,是gRPC版本更新后内置的根证书信任列表与Clarifai服务端使用的SSL证书不兼容导致的。

修复方案

按优先级选择以下方案操作即可:

  • 方案一:降级gRPC到兼容版本
    两周前运行正常,直接将gRPC相关包回退到当时的版本即可,参考命令:
pip install grpcio==1.38.1 grpcio-tools==1.38.1 clarifai-grpc==7.4.0

安装完成后直接运行原有脚本即可恢复正常。

  • 方案二:显式指定系统根证书初始化通道
    如果不想降级gRPC版本,替换原有代码中初始化channel的代码即可:
import grpc
from clarifai_grpc.grpc.api import service_pb2_grpc

# 不同操作系统根证书路径不同,按需调整
# macOS路径
cert_path = "/etc/ssl/cert.pem"
# Linux路径
# cert_path = "/etc/ssl/certs/ca-certificates.crt"
# Windows路径可自行导出系统受信任根证书后指定本地路径

with open(cert_path, "rb") as f:
    root_certs = f.read()
credentials = grpc.ssl_channel_credentials(root_certificates=root_certs)
channel = grpc.secure_channel("api.clarifai.com:443", credentials)
stub = service_pb2_grpc.V2Stub(channel)

剩下的代码逻辑不需要修改,直接运行即可。

  • 方案三:临时关闭证书验证(仅测试场景使用,禁止生产环境使用)
    如果只是本地测试,不想修改证书配置,可以临时关闭SSL验证,替换初始化channel的代码为:
import grpc
from clarifai_grpc.grpc.api import service_pb2_grpc

credentials = grpc.ssl_channel_credentials()
channel = grpc.secure_channel(
    "api.clarifai.com:443",
    credentials,
    options=[("grpc.enable_http_proxy", 0), ("grpc.ssl_target_name_override", "api.clarifai.com")]
)
stub = service_pb2_grpc.V2Stub(channel)

内容的提问来源于stack exchange,提问作者Bernardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:27:01