在本地Ollama上安装大模型,就可以将大模型当GPT一样使用进行交流,参考下面具体对接到SpringBoot的步骤。
本地搭建好springboot工程,然后在pom文件中引入Ollama核心依赖
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>
application.properties配置文件中添加Ollama相关的配置信息,Ollama本地端口为11434
server:
port: 8088
spring:
application:
name: chat-001
ai:
ollama:
base-url: http://localhost:11434
chat:
options:
model: qwen:0.5b-chat
openai:
api-key: 你的apikey
base-url: openai地址
Ollama聊天API的核心对象为OllamaChatClient,与上述的spring ai中提供的client对象类似,在程序中可以直接调用其api,如下,传入一个msg参数,返回响应的文本内容
import jakarta.annotation.Resource;
import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class OllamaChatController {
@Resource
private OllamaChatClient ollamaChatClient;
//http://localhost:8088/ollama/chat?msg=大数据的技术栈有哪些
@GetMapping("/ollama/chat")
public String ollamaChat(@RequestParam String msg){
String resMsg = ollamaChatClient.call(msg);
return resMsg;
}
}
然后启动服务,在浏览器中调用接口传入数据,就可以看到效果
也可以使用Prompt进行参数传递,在OllamaChatController中:
@GetMapping("/ollama/chat/v2")
public Object ollamaChatV2(@RequestParam String msg){
Prompt prompt = new Prompt(msg);
ChatResponse chatResponse = ollamaChatClient.call(prompt);
return chatResponse;
}
返回结果如下
但是这种返回json数据的时候,需要对json中的字段进行解析。
spring ai官网中也提供了Ollama的相关文档,地址:Ollama Chat :: Spring AI Reference,在文档中,可以找到很多有关Ollama的详细的配置参数,这些配置参数,都可以在Prompt对象或者配置文件中进行合理的使用,达到最佳的实践效果
在下面的接口中,仍然使用Prompt对象,里面传入更多的参数选项做控制
//http://localhost:8088/ollama/chat/v3?msg=中国排名前十的大学
@GetMapping("/ollama/chat/v3")
public Object ollamaChatV3(@RequestParam String msg){
Prompt prompt = new Prompt(
msg,
OllamaOptions.create()
.withModel("qwen:0.5b-chat")
.withTemperature(0.4F)
);
ChatResponse chatResponse = ollamaChatClient.call(prompt);
return chatResponse.getResult().getOutput().getContent();
}
再次调用一下接口
再次检查一下结果是否正确。这样就完成了springboot接入Ollama API
powered by kaifamiao