Python入门实战:调用GLM-OCR API实现第一个文字识别程序
Python入门实战:调用GLM-OCR API实现第一个文字识别程序
你是不是经常看到一些图片里的文字,想把它提取出来,却只能手动一个字一个字地敲?或者你刚接触编程,想找一个有趣又实用的项目来练手?今天,我们就来用Python写一个简单的程序,让它帮你“看懂”图片里的文字。
这个程序的核心,是调用一个名为GLM-OCR的服务。你可以把它想象成一个非常聪明的“眼睛”,我们只需要把图片交给它,它就能把图片里的文字读出来,然后告诉我们。整个过程,你只需要写十几行Python代码。
跟着这篇教程,即使你之前没怎么写过代码,也能在半小时内,做出你的第一个文字识别工具,亲眼看到程序把图片变成文字。这种亲手实现一个功能的感觉,非常棒。
1. 准备工作:搭建你的编程环境
在开始写代码之前,我们需要确保电脑上已经准备好了必要的工具。这就像做饭前要先准备好锅和食材一样。
1.1 安装Python
Python是我们的“主厨工具”。首先,检查一下你的电脑是否已经安装了Python。
打开你的命令行工具:
- 在Windows上,可以搜索“cmd”或“PowerShell”。
- 在Mac上,可以搜索“终端”。
打开后,输入下面的命令并按回车:
python --version
或者
python3 --version
如果屏幕上显示了类似 Python 3.8.10 这样的版本号,恭喜你,Python已经安装好了。如果提示“找不到命令”,则需要去安装。
如何安装Python? 访问Python官方网站,下载最新的稳定版本(建议3.8或以上)。安装时,请务必勾选“Add Python to PATH”这个选项,这能让你在命令行里轻松使用Python。
1.2 安装必要的“调料”:requests库
我们的程序需要通过互联网与GLM-OCR服务对话,requests库就是帮我们发送和接收信息的“邮差”。安装它非常简单。
在刚才的命令行窗口里,输入以下命令:
pip install requests
如果上面的命令速度慢或者报错,可以试试用国内的镜像源,速度会快很多:
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
看到“Successfully installed”的字样,就说明安装成功了。
1.3 准备一张测试图片
找一张包含清晰文字的图片,比如一张打印体的文档截图、一个路牌照片,或者一本书的封面。把它保存到你的电脑上,记住存放的路径。为了简单起见,建议把图片直接放在你准备写代码的文件夹里,并且把图片名改成简单的英文,比如 test.jpg 或 demo.png。
2. 理解核心原理:程序如何工作
在动手写代码前,我们先花两分钟了解一下整个流程,这样写的时候心里更有数。
整个过程就像寄信和收信:
- 我们(客户端):准备好图片,写好请求信(告诉API我要识别图片)。
- 邮差(requests库):把我们的信和图片打包,通过互联网寄给GLM-OCR服务。
- GLM-OCR服务(服务器):收到信和图片后,用它的“眼睛”和“大脑”识别文字。
- GLM-OCR服务:把识别结果写成一封回信(通常是JSON格式),交给邮差。
- 邮差:把回信送给我们。
- 我们:拆开回信,把里面的文字内容提取出来,展示在屏幕上。
我们写的代码,就是在指挥“邮差”完成第1、2步,并处理第5、6步。而第3、4步是GLM-OCR服务在云端自动完成的,我们无需关心。
3. 编写你的第一个OCR程序
现在,打开你喜欢的文本编辑器(比如VS Code、PyCharm,甚至系统的记事本都可以),创建一个新文件,命名为 first_ocr.py。
3.1 导入“邮差”
在Python文件的开头,我们首先要请“邮差”出场。
import requests
import json
import requests:引入我们刚才安装的库,这样我们就可以使用它来发送网络请求了。import json:GLM-OCR返回的数据是JSON格式,这个库能帮我们轻松地解析它。
3.2 设置收信地址和服务参数
我们需要告诉程序,信要寄到哪里,以及一些必要的说明。
# GLM-OCR API的服务地址(这里是一个示例地址,实际使用时需要替换)
api_url = "http://your-glm-ocr-server-address/v1/ocr"
# 准备请求头,告诉服务器我们发送的是图片文件
headers = {
'accept': 'application/json',
}
# 准备要发送的数据,这里我们告诉API,我们是通过上传文件的方式来识别
files = {
'image': ('test.jpg', open('test.jpg', 'rb'), 'image/jpeg')
}
重要提示:
api_url:这是最关键的一行。http://your-glm-ocr-server-address/v1/ocr只是一个占位符。你需要将它替换成你实际部署的GLM-OCR服务的真实API地址。这通常由提供该服务的平台或你自己部署的服务器给出。files:这里定义了我们要上传的文件。‘test.jpg‘是你的图片文件名,请确保它和你在文件夹里存放的图片名一致。‘rb‘表示以二进制只读模式打开文件,这是上传文件必须的格式。
3.3 寄出请求并等待回信
现在,让“邮差”出发。
# 发送POST请求到API
response = requests.post(api_url, headers=headers, files=files)
这行代码做了所有网络通信的复杂工作。它把图片、请求头等信息打包,发送到 api_url 指定的地址,然后把对方的回应保存在 response 这个变量里。
3.4 拆开回信并读出内容
邮差回来了,我们看看回信里写了什么。
# 检查请求是否成功(HTTP状态码为200表示成功)
if response.status_code == 200:
# 解析返回的JSON数据
result = response.json()
# 从结果中提取识别出的文本
# 注意:这里假设返回的JSON结构中有‘text‘字段,实际结构需根据API文档调整
recognized_text = result.get('text', '未找到text字段')
# 打印识别结果
print("识别成功!图片中的文字是:")
print("-" * 30)
print(recognized_text)
print("-" * 30)
else:
# 如果请求失败,打印错误信息
print(f"请求失败,状态码:{response.status_code}")
print(f"错误信息:{response.text}")
代码解读:
if response.status_code == 200::这是网络请求的惯例,200代表“一切OK”。我们先判断请求是否成功。result = response.json():将服务器返回的JSON格式字符串,转换成Python里容易操作的字典或列表。recognized_text = result.get(‘text‘, ‘未找到text字段‘):尝试从结果字典中获取键为‘text‘的值,也就是识别出的文字。如果找不到这个键,就使用默认提示。请注意:不同的OCR API返回的JSON结构可能不同,‘text‘这个字段名需要你根据实际的GLM-OCR API文档进行调整。常见的字段名也可能是‘result‘、‘data‘等。- 最后,用
print函数把识别出的文字漂亮地打印在控制台上。
3.5 完整的代码
把上面的所有部分组合起来,你的 first_ocr.py 文件内容应该是这样的(记得替换 api_url 和图片文件名):
import requests
import json
# 1. 设置API地址和参数(请替换为真实的API地址)
api_url = "http://your-glm-ocr-server-address/v1/ocr"
headers = {
'accept': 'application/json',
}
# 2. 准备图片文件(请确保‘test.jpg‘存在于当前目录)
files = {
'image': ('test.jpg', open('test.jpg', 'rb'), 'image/jpeg')
}
try:
# 3. 发送请求
print("正在发送图片到OCR服务...")
response = requests.post(api_url, headers=headers, files=files)
# 4. 处理响应
if response.status_code == 200:
result = response.json()
# 根据实际API返回结构调整字段名,这里假设是‘text‘
recognized_text = result.get('text', '未找到text字段')
print("识别成功!图片中的文字是:")
print("-" * 30)
print(recognized_text)
print("-" * 30)
else:
print(f"识别失败,状态码:{response.status_code}")
print(f"错误详情:{response.text}")
except FileNotFoundError:
print("错误:未找到图片文件‘test.jpg‘,请检查文件名和路径。")
except Exception as e:
print(f"程序运行出错:{e}")
我额外添加了 try…except 语句来捕获可能出现的错误,比如图片文件找不到,或者网络问题,这样程序就不会突然崩溃,而是会友好地告诉你哪里出了问题。
4. 运行程序,见证奇迹
保存好你的代码文件。打开命令行,使用 cd 命令切换到存放 first_ocr.py 和 test.jpg 的文件夹。
例如,如果你的文件在桌面上的 my_ocr_project 文件夹里:
cd Desktop/my_ocr_project
然后,运行你的程序:
python first_ocr.py
如果一切顺利,几秒钟后,你将在命令行窗口中看到图片里的文字被清晰地打印出来!那一刻的成就感,就是编程最大的乐趣之一。
5. 可能遇到的问题和小技巧
第一次运行,很可能会遇到一些小麻烦。别担心,这都很正常。
-
问题1:提示
No module named ‘requests‘解决:回到第一步,在命令行里运行pip install requests,确保安装成功。 -
问题2:提示
FileNotFoundError解决:检查代码里open(‘test.jpg‘, ‘rb‘)中的文件名,是否和你文件夹里的图片名字完全一致(包括后缀.jpg或.png)。最好把图片和代码放在同一个文件夹。 -
问题3:请求失败,状态码是404或500 解决:这通常意味着
api_url地址不对。请仔细检查你填写的GLM-OCR服务地址是否正确、完整,并确保该服务正在运行。你需要参考该服务的部署文档来获取正确的API端点。 -
问题4:识别结果为空或乱码 解决:
- 换一张更清晰、字体更规范的图片试试。
- 打印出完整的
result看看(print(json.dumps(result, indent=2, ensure_ascii=False))),确认返回的JSON结构到底是什么,然后调整代码中result.get(‘text‘)里的字段名。
小技巧:如果你想识别其他格式的图片(比如PNG),只需把代码中 files 字典里的 ‘image/jpeg‘ 改成 ‘image/png‘,同时文件名也改成对应的 .png 文件即可。
6. 总结与下一步
恭喜你!你已经成功完成了第一个与AI服务交互的Python程序。整个过程,你不仅学会了如何安装Python库、发送HTTP请求、处理JSON数据,更重要的是,你实现了一个真实可用的功能——图片文字识别。
这个简单的程序就像一个起点。你可以基于它做很多有趣的扩展:
- 批量处理:写一个循环,让它自动识别一个文件夹里的所有图片。
- 生成文件:把识别出的文字自动保存到一个
.txt或.docx文件里,而不是仅仅打印在屏幕上。 - 简单GUI:用
tkinter库做一个带有“选择图片”按钮和“显示结果”框的小窗口,让程序更友好。 - 尝试其他API:理解了这套“请求-响应”的模式后,你可以用几乎相同的代码结构,去调用其他AI服务的API,比如语音识别、图像生成等。
编程的学习就是这样一个不断“动手尝试 -> 遇到问题 -> 解决问题 -> 获得新想法”的循环。希望这个小小的OCR程序,能成为你探索Python和AI世界的一个愉快开端。动手去修改它,打破它,再修复它,你会学到更多。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐



所有评论(0)