Hello大家好,今天写一些不烧脑的文章,我们来体验一下Spring的新框架Spring AI,只是简单玩玩不深入😏
Spring AI 简介
- Spring AI是为了简化人工智能相关应用程序的开发
- Spring AI的诞生,灵感来自于LangChain等项目
Ollama的初体验
是什么
简单使用
- 下载并傻瓜式安装
- 选择模型,拉取并运行
ollama pull qwen
ollama pull llama3
- 使用体验
ollama run qwen
Spring AI项目搭建
环境
- JDK17
- SpringBoot3.2.5
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring-ai.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Controller
@RestController
public class ChatController {
private final OllamaChatClient chatClient;
public ChatController(OllamaChatClient chatClient) {
this.chatClient = chatClient;
}
@GetMapping("/ai/chat")
public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return Map.of("generation", chatClient.call(message));
}
@GetMapping("/ai/genClothes")
public Map genCompanyName(@RequestParam("message") String message) {
String template = "今天温度是 %s 摄氏度,上衣应该穿什么?裤子应该穿什么?鞋子穿什么?请回答的简单一些";
ChatResponse response = chatClient.call(
new Prompt(
String.format(template, message),
OllamaOptions.create()
.withModel("qwen")
.withTemperature((float) 0.4)
));
return Map.of("name", response.getResult().getOutput().getContent());
}
}
application.yml
spring:
ai:
ollama:
base-url: http://localhost:11434
chat:
enabled: true
options:
model: llama3
temperature: 0.5
spring.ai.ollama.chat.temperature:取值0~1,值越高,回答结果越新颖
启动Ollama
这里有这个图标,并且要使用的模型已经pull到了本地就可以了
成果展示
llama3使用
穿衣建议(qwen使用)
qwen:通义千问大模型
总结
- Spring AI为我们封装了调用大模型的细节
- Ollama类似于Docker,拉取和运行模型