升级 openai 到 1.0 后,代码里 openai.ChatCompletion.create 直接 AttributeError,提示 module has no attribute ChatCompletion。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
pip install 'openai==0.28.1' python -c "import openai;print(openai.__version__)"
1.0 把模块级接口换成了客户端实例,老写法整体移除。依赖文件写的是 openai>=0.28,pip 装到了最新版。这一点先确认清楚,后面就不用反复试。
「SDK 版本不兼容」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。报错里带路径的,先去看那个路径在不在、权限对不对。
同一份配置存在多处的,先确认改的是被加载的那一份。
具体做法是,依赖先锁到 0.28.x 恢复服务;按新接口改成 OpenAI().chat.completions.create;或迁移到兼容层 openai.lib.legacy;回归流式和非流式两条路径。
改完照着核一遍,服务启动不再报 AttributeError 两种调用方式都返回 200。
