問題の核心
curlはOK、Python v0もOK。どちらもrequests + certifiWindowsの証明書ストアを自然に参照する。- Python v1 (
openai-python ≥1.x) は内部でHTTPXを使うようになり、最近のhttpx 0.28系にAzureルートをつかみ損なうバグがあってCERTIFICATE_VERIFY_FAILED起こるgithub.com。
すぐ試せるワークアラウンド
バッシュコピー# 1) httpx を 0.27 系に戻す
pip install "openai>=1,<2" httpx==0.27.2
# 2) それでもダメな場合は CA バンドルを明示
pip install -U certifi
パイソンコピーimport certifi, httpx, openai
client = openai.AzureOpenAI(
api_key=KEY, azure_endpoint=ENDPOINT, api_version="2024-02-01",
http_client=httpx.Client(verify=certifi.where()) # ←ここ
)
これでほとんどの環境は解決コミュニティpython-httpx.org。
PEMは誰が利用できますか?
- 公開エンドポイントならユーザーが作成する必要はない。
certifiに含まれたルートで十分。 - 社内CA/プライベートリンクで「自己設定」なら管理者からルートCAを受け取る→
verify="path/to/ca.pem"指定として。 ユーザーが勝手に生成するものではない。
サーバー側作業が要る?
公開 Azure エンドポイントなら基本は不要。クライアント側(httpx + CA バンドル)の問題だという結論になるよ。


コメント