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

如何通过LLMWhisperer Python API保留OCR输出的特殊字符?

解决LLMWhisperer Python客户端OCR特殊字符丢失问题

以下是针对特殊字符被错误替换的具体调整策略:

1. 排查返回文本是否已损坏

在写入文件前,先打印提取文本的原始表示,确认问题出在客户端返回还是文件写入环节:

from unstract.llmwhisperer.client import LLMWhispererClient

client = LLMWhispererClient(base_url="https://llmwhisperer-api.unstract.com/v1", api_key="my-api-key")

whisper = client.whisper(file_path="my-file-path", 
        processing_mode="ocr", pages_to_extract="1")

extracted_text = whisper["extracted_text"]
# 打印原始字符表示,查看特殊字符是否正确
print(repr(extracted_text))

如果输出里的特殊字符显示为\uXXXX格式或正确的UTF-8字符,说明客户端返回没问题,问题出在文件写入或后续查看环节;如果显示为�或乱码,说明客户端接收响应时编码处理有误。

2. 优化文件写入的编码配置

即使指定了utf8,可以补充参数确保特殊字符不被丢弃,同时明确换行符格式避免干扰:

with open("transcript.txt", "w", encoding='utf-8', errors='strict', newline='\n') as file:
    file.write(extracted_text)
  • errors='strict':遇到无法编码的字符直接报错,方便定位问题;若需强制保留可改为errors='replace',但优先排查根源。
  • newline='\n':统一换行符格式,避免不同系统下的编码冲突。

3. 确认文件查看工具的编码设置

很多时候不是文件本身问题,而是打开工具用了错误编码(比如Windows记事本默认GBK)。请用支持UTF-8的编辑器(如VS Code、Notepad++)打开,并将编辑器编码设置为UTF-8。

4. 手动处理API响应编码(若返回文本已损坏)

如果打印repr(extracted_text)发现乱码,说明客户端可能错误解析了API响应编码,可绕过客户端直接用HTTP请求手动解码:

import requests

url = "https://llmwhisperer-api.unstract.com/v1/whisper"
headers = {"Authorization": "Bearer my-api-key"}
files = {"file": open("my-file-path", "rb")}
data = {"processing_mode": "ocr", "pages_to_extract": "1"}

response = requests.post(url, headers=headers, files=files, data=data)
# 手动指定UTF-8解码响应内容
response.encoding = 'utf-8'
result = response.json()
extracted_text = result["extracted_text"]

with open("transcript.txt", "w", encoding='utf-8') as file:
    file.write(extracted_text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 22:39:52