Spring AI
Spring AI简介
Spring AI官方文档
Spring AI 是一个面向人工智能工程的应用框架,它类似于一个客户端,可以实现向不同厂商对应的AI模型服务发送请求获取响应
SpringAI目前能够支持的AI模型

Spring AI实践
Open ai Api Key第三方平台
在该平台上注册可以免费获取一定的使用额度

参考SpringAI openAI官方文档,快速搭建一个应用
引入pom依赖
| 12
 3
 4
 
 | dependency><groupId>org.springframework.ai</groupId>
 <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
 </dependency>
 
 | 
进行相关配置
| 12
 3
 4
 5
 6
 7
 8
 
 | spring.ai.openai.base-url=https://api.xty.app
 
 spring.ai.openai.api-key=sk-yJ86bNiRwQJVyczO122aF307B7554905A0F53eF6B3B27132
 
 spring.ai.openai.chat.options.model=gpt-3.5-turbo
 
 spring.ai.openai.chat.options.temperature=0.7
 
 | 
编写一个简单controller
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 | @RestControllerpublic class ChatController {
 
 private final OpenAiChatClient chatClient;
 
 @Autowired
 public ChatController(OpenAiChatClient chatClient) {
 this.chatClient = chatClient;
 }
 
 @GetMapping("/ai/generate")
 public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
 return Map.of("generation", chatClient.call(message));
 }
 
 @GetMapping("/ai/generateStream")
 public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
 Prompt prompt = new Prompt(new UserMessage(message));
 return chatClient.stream(prompt);
 }
 }
 
 | 
测试
构造请求:http://localhost:8080/ai/generate?message=%E5%AD%A6%E4%B9%A0Java%E8%B7%AF%E7%BA%BF
得到的响应:

其他应用
调用openAI相关模型生成图片
官方文档参考
相关配置
| 12
 3
 4
 
 | spring.ai.openai.image.enabled=true
 
 spring.ai.openai.image.options.model=dall-e-3
 
 | 
controller代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | @Autowired
 OpenAiImageClient openAiImageClient;
 @GetMapping("/ai/image")
 public String generateImage(String prompt){
 ImageResponse response = openAiImageClient.call(new ImagePrompt(prompt));
 
 
 
 return response.getResult().getOutput().getUrl();
 }
 
 | 
测试
构造请求:http://localhost:8080/ai/image?prompt=一个女孩坐在苹果树下
响应结果:

在浏览器直接输入上述url即可显示下图

扩展
AnythingLLM:基于RAG方案构专属私有知识库(开源|高效|可定制)
我们可以使用AnythingLLM 配合 Ollama 构建自己的知识库,可以通过给本地模型喂入一些文本文档,使其具有一些特殊领域的知识
比如:我们选择本地Ollama模型,直接提问得到的结果如下

我们给其上传一个文本txt文件,文本内容如下:
然后上传该文本文件,喂入模型

再次提问:

也可以直接给一个网页链接,其可以自动爬取网页内容训练模型
比如我们给其输入网页:https://eic.hust.edu.cn/info/1195/7541.htm

喂入数据模型之前提问结果:

喂入数据之后模型提问结果:
