ERROR:pdf2zh.converter:‘str‘ object has no attribute ‘choices‘ converter.py:357

pdf2zh 翻译报错修复记录 (2026-04-09)

错误

复制代码
ERROR:pdf2zh.converter:'str' object has no attribute 'choices'  converter.py:357

环境

  • pdf2zh 1.9.11, openai 2.30.0, Python 3.11
  • 安装路径: C:\Users\23670\AppData\Local\Programs\Python\Python311\Lib\site-packages\pdf2zh\
  • 启动方式: pdf2zh -i

原因

translator.pyOpenAITranslator.do_translate() 调用 client.chat.completions.create() 后直接访问 response.choices[0].message.content,但 API(或代理)返回了 str 而非 ChatCompletion 对象。

修复

文件: translator.py 第446行附近,添加 isinstance(response, str) 兜底:

python 复制代码
# 修改前
response = self.client.chat.completions.create(...)
if not response.choices:
    if hasattr(response, "error"):
        raise ValueError("Error response from Service", response.error)
content = response.choices[0].message.content.strip()

# 修改后
response = self.client.chat.completions.create(...)
if isinstance(response, str):
    content = response.strip()
else:
    if not response.choices:
        if hasattr(response, "error"):
            raise ValueError("Error response from Service", response.error)
    content = response.choices[0].message.content.strip()

注意

  • 升级 pdf2zh 会覆盖此修改,需重新打补丁
  • 其他翻译器类(AzureOpenAI、Silicon等)有同样问题但未改,按需修复
相关推荐
2301_789015622 小时前
C++:智能指针
c语言·开发语言·汇编·c++·智能指针
沐知全栈开发2 小时前
SOAP 语法详解
开发语言
cch89182 小时前
PHP vs Java:谁更适合你的项目?
java·开发语言·php
:1212 小时前
servlet
servlet
lg_cool_2 小时前
Python 框架之py_trees
开发语言·数据结构·python
萧逸才2 小时前
【learn-claude-code】S11AutonomousAgents - 自主 Agent:自动认领任务 + 空闲轮询
java·人工智能·ai
李少兄2 小时前
优化高负载详情接口:基于字段选择与懒加载的实践
java
wjs20242 小时前
Go 语言函数
开发语言
攻城狮的梦2 小时前
线上接收附件回调超时排查复现
开发语言·php·lavarel