写在前面
什么是Spring AI,SpringAI 是Spring 官方社区项目,旨在简化 Java AI 应用程序开发,让 Java 开发者想使用 Spring 开发普通应用一样开发 AI 应用。支持所有主要的模型提供商,如OpenAI,Microsoft,Amazon,Google和Huggingface,支持的模型类型包括聊天和文本到图像。
我们可以从Spring AI的官网描述中,总结出Spring AI的几个核心的关键词:
- 提供抽象能力
- 简化AI应用的开发
- 模型与向量支持
- AI集成与自动配置
什么是Spring Cloud Alibaba AI
而SpringAI 主要面向的是国外的各种大模型接入,对于国内开发者可能不太友好。于是乎,Spring Cloud Alibaba AI 便问世了,Spring Cloud Alibaba AI 以 Spring AI 为基础,并在此基础上提供阿里云通义系列大模型全面适配,开发者可以使用 Spring Cloud Alibaba AI 开发基于通义的聊天、图片或语音生成 AI 应用。
动手体验Spring Cloud Alibaba AI
要使用Spring Cloud Alibaba接入通义千问,您可以按照以下步骤操作:
环境准备
- 确保您的开发环境已安装JDK 17或更高版本。
开通DashScope并创建API-KEY
- 访问阿里云百炼页面,登录您的阿里云账号
- 选择开通“百炼大模型推理”服务,等待开通成功的通知
- 开通成功后,进入账户设置,选择API-KEY,创建一个新的API-KEY并记录下来
操作步骤:https://help.aliyun.com/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key
添加依赖
- 在项目的pom.xml文件中,加入Spring Cloud Alibaba 2023.0.1.0版本的依赖
配置API-Key
application.yml或application.properties中配置通义千问的API-Key。例如,在application.properties中配置如下:
对接文本模型-测试基本QA
- 具体的实现类如下:
由 Spring AI 自动注入 ChatClient、StreamingChatClient,ChatClient 屏蔽底层通义大模型交互细节,后者用于流式调用。对于QA而言,仅仅通过client.call(prompt)一行代码就可以完成对模型的调用。
- 新建一个控制器类:
新建/simple接口,用来测试基本QA
- 编写 Spring 入口类并启动应用
至此,便完成了最简单的文本QA AI 应用开发,与普通的 Spring Boot 应用开发步骤完全一致。
应用效果验证
进入 resources/static 目录下,使用浏览器打开 index.html 文件,输入问题,即可获得输出响应(确保 api-key 有效):
总结
仅仅简单测试了文本QA,在官方示例中还有文生图以及语音合成三个功能,Spring Cloud Alibaba AI有很多丰富的功能,如流式调用、POJO转换、AI Role等功能,感兴趣可以自行前往官方example仓库查看。Spring Cloud Alibaba AI简化开发。个人开发者如果仅仅需要简答的问答接口,无需使用Spring AI,其也支持其它模型
然而当项目中需要开发比较复杂的AI功能,如果仅仅使用官方的SDK,写出的代码可能不太容易长期维护