spring boot简单运用ollama大模型(windows版本)

news/2024/9/18 6:57:20/文章来源:https://www.cnblogs.com/lannoy/p/18375635

1、下载模型(windows为例)

  打开官方网站https://ollama.com/download/windows。

  打开exe文件,打开命令行工具,直接运行ollama run 要下载的模型(右上角的models能找到你想要的,例子以llama3.1展示,spring ai暂时非全支持,支持模型步骤2列出)

  运行完后直接是这样显示

  

  至此,模型就安装完毕。

2、创建spring 项目

  1、创建spring boot项目。以maven为例(spring ai 以jdk17的版本)

    <properties><java.version>17</java.version><spring-ai.version>1.0.0-M1</spring-ai.version></properties><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-ollama-spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></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><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories>

  2、修改配置(application.yml)

spring:application:name: demoai:ollama:base-url: http://localhost:11434chat:options:model: llama3.1temperature: 0.7

  这个里面对应的模型要你下载的,我们是llama3.1,地址是本机的地址, spring ai 支持的模型仅下列

 

  3、创建聊天控制类

import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatModel;
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;
import reactor.core.publisher.Flux;import java.util.Map;@RestController
public class ChatController {private final OllamaChatModel chatModel;@Autowiredpublic ChatController(OllamaChatModel chatModel) {this.chatModel = chatModel;}@GetMapping("/ai/generate")public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {return Map.of("generation", chatModel.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 chatModel.stream(prompt);}}

  至此,简单的应用就完成了。

  

  

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/786004.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

048、Vue3+TypeScript基础,页面通讯之子页面调用父页面的事件

01、main.js代码如下:// 引入createApp用于创建Vue实例 import {createApp} from vue // 引入App.vue根组件 import App from ./App.vueconst app = createApp(App);// App.vue的根元素id为app app.mount(#app)02、App.vue代码如下:<template><div class="app&…

YOLOv5实战记录 Gradio搭建Web GUI

转自:https://blog.csdn.net/EmileJiao/article/details/137448176最终的:import torch import gradio as grmodel=torch.hub.load("./","custom",path="runs/train/exp2/weights/best.pt",source="local")title="基于Gradio的YO…

火山引擎VeDI实验平台助推企业量化决策能力升级

DataTester技术团队基于并行化的Leiden算法,快速处理亿级用户的复杂社交网络,完成基于社交圈的聚类分流。 更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 量化决策,正成为企业在数智化浪潮中掌握方向的必备之舵。通过“拍脑袋”式的…

基础组件:文本及样式

一、Text Text 用于显示简单样式文本,它包含一些控制文本显示样式的一些属性,一个简单的例子如下: Text("Hello world",textAlign: TextAlign.left, );Text("Hello world! Im Jack. "*4,maxLines: 1,overflow: TextOverflow.ellipsis, );Text("Hel…

设计模式[5]-代理模式

代码:https://gitee.com/Aes_yt/design-pattern代理模式 代理模式需要给某对象提供一个代理来访问该对象。是客户端和目标对象之间的一个媒介。 代理模式主要包括三种角色抽象主题:接口或抽象类,有着业务方法,可以让真实主题和代理对象来实现。 真实主题:实现了抽象主题的…

设计模式[2]-工厂模式

代码:https://gitee.com/Aes_yt/design-pattern工厂模式 1. 简单工厂模式 简单工厂模式主要包括三种角色:简单工厂 : 创建具体产品 抽象产品 : 具体产品的父类 具体产品 : 简单工厂创建的对象例子: 设计一个游戏机类(GameConsole) 作为抽象产品,然后设计具体的产品(Plan…

2021-12-29-md1

代码:https://gitee.com/Aes_yt/design-pattern代理模式 代理模式需要给某对象提供一个代理来访问该对象。是客户端和目标对象之间的一个媒介。 代理模式主要包括三种角色抽象主题:接口或抽象类,有着业务方法,可以让真实主题和代理对象来实现。 真实主题:实现了抽象主题的…

dubbo[3]_注解配置

本文介绍注解方式配置dubbo的例子。 服务提供Provider 1. 定义接口Animal和实现类CatAnimal: public interface Animal {/*** 描述: 返回动物的叫声*/String sound(); }Cat: package com.yt.provider;import com.alibaba.dubbo.config.annotation.Service;@Service(timeout = 5…

dubbo[2]_XML配置

本文介绍了zookeeper的下载安装以及用xml配置服务消费者和提供者的例子。 1. zookeeper下载安装 本文的例子使用zookeeper作为注册中心。 首先,从官网下载zookeeper,我选择的是Apache ZooKeeper 3.6.3版本。下载完成后,解压到自己的目录。https://zookeeper.apache.org/rele…

2021-05-13-md1

本文介绍注解方式配置dubbo的例子。 服务提供Provider 1. 定义接口Animal和实现类CatAnimal: public interface Animal {/*** 描述: 返回动物的叫声*/String sound(); }Cat: package com.yt.provider;import com.alibaba.dubbo.config.annotation.Service;@Service(timeout = 5…

2021-05-12-md1

本文介绍了zookeeper的下载安装以及用xml配置服务消费者和提供者的例子。 1. zookeeper下载安装 本文的例子使用zookeeper作为注册中心。 首先,从官网下载zookeeper,我选择的是Apache ZooKeeper 3.6.3版本。下载完成后,解压到自己的目录。https://zookeeper.apache.org/rele…

Myslq千万级数据量查询

两千四百万数据量SQL查询没有索引时 如果字段无索引,耗时十分钟无索引查询过程 MySQL 需要对 2400 万条数据一一进行比较,假设每条记录的处理时间为 0.025 ms,那么总查询时间大约为 10 分钟(即 2400 万 0.025 ms)。 •全表扫描: 当查询 kh = 03356129487 时,如果表上没有…