本文主要是介绍借助阿里云免费的大模型额度来做高质量的图转文识别,图片转文字,或者文字识别都可以使用,比传统的OCR模式要直接和高效很多 。
本文使用的技术是spring ai + qwen vl 。 Qwen vl有 100万Token 免费额度,可以用来免费做图片识别,实现简单,按本文方案一步一步做就可以实现。
同时 Qwen vl模型也是一个开源模型,可以自己部署实现类似的 免费调用效果 7B的模型就可以实现很好的效果了。
利用大模型提升Java图文识别的效率与准确性
在java开发场景中,我们经常遇到需要处理图文识别的问题。传统的解决方法通常是采用OCR技术,但其准确性和稳定性往往不尽人意。随着技术的进步,现在利用大模型进行java图文识别成为可能,并且能够提供更加出色的效果。通过引入专门训练的大模型,可以大大提高java图文识别的准确性与效率。这样的转变意味着开发者不再受限于传统OCR解决方案所带来的局限性,在实现更高质量java图文识别的同时,也极大地简化了开发流程。无论是对于个人项目还是企业级应用来说,采用大模型来支持java图文识别都是一个非常值得尝试的选择。它不仅能够有效提升用户体验,还能帮助开发者节省大量时间与精力投入到其他重要领域。因此,当你的项目中有涉及到java图文识别的需求时,考虑一下使用最新的大模型技术吧!这将为你的应用程序带来前所未有的改变。本例子使用java spring ai和国产大模型qwen vl来做样例,您也可以换成其他实现。
Spring AI框架概述
在过去,Java 缺乏一个统一且高效的 AI 应用框架,这限制了开发者在 Java 生态系统中快速集成和使用 AI 功能的能力。为了解决这一问题,Spring 团队推出了 Java Spring AI,这是一个专为 AI 工程设计的应用框架。它将 Spring 生态系统的设计原则,如可移植性和模块化设计,应用到了 AI 领域,并支持 POJOs 作为应用程序的构建块。
Java Spring AI 的核心优势在于它提供了一套统一的接口,可以标准化不同 AI 提供者的接口实现,使得开发者只需编写一次代码,通过修改配置即可轻松切换不同的 AI 服务提供商。此外,它与现有的 Spring 生态系统和 Java 的面向对象编程完美兼容,极大地简化了 AI 组件的集成过程。例如,在图文识别等应用场景中,Java Spring AI 可以帮助开发者快速搭建高效且易于维护的 AI 应用程序。
Qwen VL多模态大模型介绍
Qwen VL是一款专为图像和视频识别设计的多模态大模型,在国内技术水平领先。它在思南大模型评测中表现优异,仅排在国际知名模型GPT与Claude之后,并且在中国同类模型中位居首位。同时,在Hugging Face视觉大模型竞技场里,Qwen VL同样保持了中国第一的位置。欢迎各界人士参与到这些平台中来,通过实际测试体验并投票支持您喜爱的模型。此外,Qwen-VL-Plus及Qwen-VL-Max版本现提供限时免费试用机会,用户可直接访问通义千问官网或下载通义千问APP以享受Max版本的强大功能。
Spring AI Alibaba概述:简化阿里云大模型应用开发
Spring AI Alibaba是Spring AI框架针对阿里云百炼大模型系列的一个实现,旨在简化基于阿里云通义大模型的AI应用开发。它支持多种生成式任务,如对话、文生图、文生语音等,并提供了包括OutputParser、Prompt Template在内的实用工具。通过使用Spring AI Alibaba,开发者能够快速接入国产大模型,例如通义万象和通义千问,从而为业务增加更多智能化能力。其核心优势在于标准化了不同AI供应商的接口,使得仅需修改配置即可切换底层AI服务提供商,极大提高了开发效率和灵活性。此外,Spring AI Alibaba还支持对接OpenAI及其他本地部署的模型,进一步拓宽了应用场景。
使用Spring AI Alibaba实现图文识别的详细指南
基于Spring AI Alibaba进行图文识别,主要涉及到环境配置、依赖引入、API密钥设置以及具体的读图代码构建。下面将详细地按照这些步骤来进行说明。
前置准备
确保您的开发环境满足以下条件:
- JDK版本为17或以上。
- Spring Boot版本为3.3.x及以上。
申请通义千问的API Key
- 访问阿里云百炼页面,并登录您的阿里云账号。
- 开通“百炼大模型推理”服务,并等待开通成功的短信通知。
- 开通成功后,再次访问百炼页面,点击右上角的小人图标 -> API-KEY -> 创建新的API-KEY,生成API Key并记录下来。
配置通义千问API Key
在您的操作系统环境中执行如下命令来设置API Key:
export AI_DASHSCOPE_API_KEY=您的有效API-Key
开通通义万象图像生成模型
- 登录到百炼控制台。
- 在左侧菜单中选择“模型广场”,找到图像生成部分下的“通义万象”模型。
- 点击“API调用”按钮进入详情页,在顶部获取到模型的英文名
qwen-vl-max-latest
作为后续配置使用。
Maven配置
为了能够顺利使用Spring AI Alibaba相关功能,您需要在项目的pom.xml文件中添加特定的仓库信息和必要的依赖项:
添加Spring仓库
<repositories><repository><id>sonatype-snapshots</id><url>https://oss.sonatype.org/content/repositories/snapshots</url><snapshots><enabled>true</enabled></snapshots></repository><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>false</enabled></releases></repository></repositories>
引入必需依赖
<dependencies><dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter</artifactId><version>1.0.0-M3.1</version></dependency><!-- 其他项目所需依赖 -->
</dependencies>
同时别忘了设置Spring Boot的父级项目信息:
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.4</version><relativePath/>
</parent>
构建图文识别Controller
接下来定义一个REST控制器,用于处理图文图片上传及文本识别请求。这里我们将默认提示设为"识别图中的文字",并通过Flux异步流式返回结果。
@RestController
@RequestMapping("/ai")
public class HandwritingRecognitionController {private final ChatModel chatModel;public HandwritingRecognitionController(ChatModel chatModel) {this.chatModel = chatModel;}@Value("classpath:handwriting.png") // 图文图片路径private Resource handwritingResource;private static final String DEFAULT_PROMPT = "识别图中的文字";private static final String HANDWRITING_MODEL = "qwen-vl-max-latest"; // 使用的图文识别模型@GetMapping("/recognizeHandwriting")public Flux<String> recognizeHandwriting(@RequestParam(value = "prompt", required = false, defaultValue = DEFAULT_PROMPT) String prompt,HttpServletResponse response) throws Exception {response.setCharacterEncoding("UTF-8");List<Media> mediaList = List.of(new Media(MimeTypeUtils.IMAGE_PNG, handwritingResource));UserMessage message = new UserMessage(prompt, mediaList);message.getMetadata().put(DashScopeChatModel.MESSAGE_FORMAT, MessageFormat.IMAGE);Flux<ChatResponse> fluxResponse = chatModel.stream(new Prompt(message, DashScopeChatOptions.builder().withModel(HANDWRITING_MODEL).withMultiModel(true).build()));return fluxResponse.map(resp -> resp.getResult().getOutput().getContent());}
}
请确保在src/main/resources/
目录下放置一张名为handwriting.png
的图文图片作为测试样本。
完成上述所有步骤之后,启动您的Spring Boot应用程序,并通过浏览器或其他客户端工具向http://localhost:8080/ai/recognizeHandwriting
发送GET请求即可开始体验图文文字识别功能了。
以上就是利用Spring AI Alibaba实现图文识别功能的具体步骤与代码示例。