springboot集成ollama并调用阿里大模型

准备:

1、 下载ollama windows版本并安装打开

  官网:https://ollama.com/download/windows

 2、https://ollama.com/library/qwen 搜索qwen找到你想下载对应的 我这里选最小的0.5b为例

3、打开ollama在控制台输入  安装千问大模型 0.5b版的

ollama run qwen:0.5b

安装完可以测试下:

集成

1、准备好一个springboot项目  我这里jdk版本使用的jdk17

 加入springboot-ai自动装配依赖jar

    <dependency>
            <groupId>io.springboot.ai</groupId>
            <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
            <version>1.0.3</version>
        </dependency>

yml配置文件

server:
  port: 8080
spring:
  application:
    name: spring-ai
  ai:
    ollama:
      base-url: http://localhost:11434
      chat:
        options:
          model: qwen:0.5b
  autoconfigure:
    exclude:
      - org.springframework.cloud.function.context.config.ContextFunctionCatalogAutoConfiguration

controller



import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.chat.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.ai.ollama.api.OllamaOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @ClassName:OllamaChatClientController
 * @Author: heng
 * @Date: 2025/1/7 13:56
 * @Description: 使用Ollama聊天api
 */
@Slf4j
@RestController
public class OllamaChatClientController {

    @Autowired
    private  OllamaChatClient ollamaChatClient;

    @GetMapping("/ollama/chat/msg")
    public String sendollaMachat(@RequestParam String msg) {
        return ollamaChatClient.call(msg);
    }

    @GetMapping("/ollama/chat/prompt")
    public Object sendollaMachatV2(@RequestParam String msg) {
        Prompt prompt = new Prompt(msg);
        return ollamaChatClient.call(prompt);
    }

    @GetMapping("/ollama/chat/model")
    public Object sendollaMachatV3(@RequestParam String msg) {
        Prompt prompt = new Prompt(
                msg,
                OllamaOptions.create()
                        .withModel("qwen:0.5b")
                        .withTemperature(0.4F));
        ChatResponse chatResponse = ollamaChatClient.call(prompt);
        return chatResponse.getResult().getOutput().getContent();
    }
}

测试

### Spring Boot 集成 Ollama 调用 DeepSeek 示例 #### 准备工作 为了使Spring Boot项目能够集成Ollama成功调用DeepSeek服务,需先完成如下准备事项: - 注册 DeepSeek 账号获取API Key[^2]。 #### 添加依赖项 在项目的`pom.xml`文件中加入必要的Maven依赖来支持HTTP请求操作以及JSON处理等功能。假设这里使用的是Apache HttpClient库来进行网络通信,则应添加相应版本的HttpClient依赖;同时还需要引入Jackson用于对象映射转换等用途。 ```xml <dependencies> <!-- Apache HttpClient --> <dependency> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> <version>5.1</version> </dependency> <!-- Jackson JSON Processor --> <dependency> <groupId>com.fasterxml.jackson.core</gpuId>jackson-databind</artifactId> <version>2.13.0</version> </dependency> <!-- 如果需要其他特定于Ollama的支持库也在此处声明 --> </dependencies> ``` #### 创建配置类 创建一个新的Java类作为应用程序级别的Bean定义容器,在其中注入所需的外部资源和服务实例化逻辑。对于本案例而言,主要是指设置好访问DeepSeek API所需的信息(如URL路径、认证令牌等),将这些参数封装在一个可重用的对象里供后续业务层调用。 ```java @Configuration public class AppConfig { @Value("${deeplearn.api.url}") private String apiUrl; @Value("${deeplearn.api.key}") private String apiKey; @Bean public RestTemplate restTemplate() { return new RestTemplate(); } @Bean public HttpHeaders headers(){ HttpHeaders header = new HttpHeaders(); header.set("Authorization", "Bearer "+apiKey); return header; } } ``` 注意上述代码片段中的`${...}`表达式代表从application.properties或environment variables读取环境变量的方式加载实际值。 #### 编写Service接口及其实现 设计一个简单的service interface用来描述预期的行为模式——即向远程服务器发起POST请求提交待分析的数据样本,解析返回的结果集。接着给出具体的implmentation部分负责组装完整的RequestEntity实体传入execute方法执行异步任务等待响应到来后再做进一步加工处理最终形成易于理解的形式反馈给前端界面展示出来。 ```java @Service public class AnalysisServiceImpl implements AnalysisService { @Autowired private RestTemplate restTemplate; @Override public Map<String,Object> analyzeText(String text){ HttpEntity<String> requestEntity = new HttpEntity<>(text,headers); ResponseEntity<Map> responseEntity = restTemplate.exchange(apiUrl, HttpMethod.POST,requestEntity,new ParameterizedTypeReference<Map<String,Object>>() {}); if(responseEntity.getStatusCode().is2xxSuccessful()){ return responseEntity.getBody(); }else{ throw new RuntimeException("Failed to get response from server"); } } } ``` 以上就是关于如何基于Spring Boot框架快速搭建起一套可以对接第三方AI平台的基础架构概览。当然这只是一个非常基础的例子,具体应用时可能还会涉及到更多细节上的优化调整比如错误捕获机制的设计、超时控制策略的选择等方面的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值