概要:本文章是通过Python+豆包AI+腾讯云OBS共同完成的解题助手。当然这其中也有基于deepseekAI生成代码的技术支持

在暑期中期,我选择将此项目作为我的第一篇博客,用以巩固并分享我对Python知识的理解,让各位看客能够在巩固Python代码的同时,还能够将现在的AI技术融入其中,了解API、OBS等技术的具体使用。接下来我就从python环境搭建再到最后的项目整体实战来一一讲解,讲得不好或者是有错的,可以在评论区指出,谢谢!!!

一、配置Python环境

Python环境的配置,是整个大项目的最最重要的前提。我在这里所使用的VSCode的配置方法。(Pycharm也可以,可能会比VSCode的配置简单些,各位看官可以去找找相关的教程)

首先,我们需要下载VSCode跨平台代码编辑器,可以通过官网进行下载(选择对应平台进行安装即可)

安装完成后布置项目的虚拟环境(本机环境也可以,见仁见智),接下来得关注对应的依赖库和工具:

1.python版本:3.8以上

2.PyQt5:用于构建图形化界面

3.OpenCV:用于处理摄像头图像

4.qcloud_cos:腾讯云OBS存储SDK

5.volcenginesdkarkruntime:火山引擎方舟AI SDK

pip install PyQt5 opencv-python qcloud_cos volcenginesdkarkruntime

二、项目的思路

鉴于我们是要完成一个AI智能解题助手,那么我们就得从几个方面入手。

1.如何获取要提问题目?

这个问题答案比较容易实现,要么通过文本输入,要么通过图像识别。在本次实战中,为了更多的体现出实战的效果,我将获取题目的输入设置为拍照输入,这样子能够让AI更好的识别对应题的题目和对应的几何图形。

流程(一):

摄像头图像捕获:调用电脑摄像头,捕捉题目图片。

2.如何将图片“给”到AI?

这个问题我查找了火山引擎相关模型和API的相关文档,在大模型上我们可以选择多模态的AI模型(例如:Doubao-1.5-thinking-vision-pro 模型),使用豆包的原因是因为在我写作的这个时间点,我觉得豆包的多模态做的还算是不错的,综合性算是比较强的。

由于传入的图片需要可以用公开链接访问到,所以我摸出了我二月份不知道为何开的OBS存储,将图片上传到腾讯OBS存储来生成可访问的链接(如果没有OBS存储的话,可以试试图床)

流程(二):

图像上传:将图像上传至腾讯云OBS存储,生成公开链接

当流程一跟流程二完成后,就只剩下让AI分析题目内容并给出详细的解题步骤和答案

三、项目的实现

1. 摄像头模块实现

使用OpenCV捕获摄像头图像,并通过PyQt5界面展示,捕获特定区域的题目图像用于分析。

2. 腾讯云OBS配置与上传

设置腾讯云OBS存储服务,上传捕获的图像,并生成可公开访问的URL。

ps:在实现过程中需要腾讯云的API_KEY和API_SECERT哦,可以参考腾讯云文档中相关链接获取(API_KEY和API_SECERT等敏感信息在实际开发中需要妥善管理,不宜明文暴露。)

cos_config = CosConfig(
    Region="ap-guangzhou",
    SecretId=secret_id,
    SecretKey=secret_key
)
cos_client = CosS3Client(cos_config)
cos_client.put_object(
    Bucket=bucket_name,
    Body=image_data,
    Key=object_name,
    ACL='public-read'
)

3. AI解题接口调用

调用火山引擎的方舟AI API,实现智能分析与解题。

ps:在实现过程中需要方舟的API_KEY哦,可以参考方舟文档中相关链接获取(API_KEY等敏感信息在实际开发中需要妥善管理,不宜明文暴露。)

client = Ark(base_url="https://ark.cn-beijing.volces.com/api/v3", api_key=ark_key)
response = client.chat.completions.create(
    model=model_name,
    messages=[{"role": "user", "content": [{"type": "image_url", "image_url": {"url": image_url}}, {"type": "text", "text": "解答数学问题,详细步骤及答案以Markdown返回"}]}]
)

4.界面设计与交互

常用的GUI库的话,Thinker组件和功能相对基础,扩展性较弱‌。所以我在文章上方关于GUI库的依赖库选择了Pyqt5库。关于界面布局的实现,我采用DeepseekAI的帮忙(主要是豆包所生成的代码不太符合我想要的效果),具体的交互逻辑我也书写在下方的提示词上。

Deepseek的提示词如下:
请帮我写一段python程序,该程序可以实现
1.该程序可以调用电脑摄像头进行拍照图片,可以识别电脑多个摄像头,并可以让用户选择其中一个,注意做好摄像头的切换时界面的更新处理
2.调用大模型API识别题目,请你结合api文档和图片转化文档,来让拍摄后的图片通过腾讯云api生成线上链接传入大模型api中
3.接受大模型的返回值后,显示在画面上,并且存为pdf或者word文档
4.该程序有个图形化界面,界面使用PyQt5,整体采用*****(这里填上你所希望的呈现出来的界面)

四、项目的效果图

ps:本人的审美观可能不是很好,如果有大佬做出来效果更好的,欢迎评论区分享~~~

总结

通过以上步骤,我们成功搭建了一款实用的AI智能数学解题助手。项目利用了云存储与AI技术的结合,体现了Python在现代教育科技中的强大应用潜力。此项目不仅提高了解题效率,更让学生享受科技赋能的学习体验。

希望本文能帮助到有兴趣使用Python和AI实现教育类应用的开发者。