ollama,springAi实现自然语言处理

ollama安装使用:

https://ollama.com/

下载速度比较慢的可以直接使用以下版本0.1.41

        https://pan.baidu.com/s/1hCCkYvFjWqxvPyYA2-YElA?pwd=otap 

直接管理员身份双击安装,安装成功后会在任务栏里出现这个小图标:

打开cmd,输入ollama --version能够显示ollama版本则证明已经安装完成

输入ollama命令,能够列出帮助命令:

其中常用的有

  • serve表示后台启动model

  • create表示从本地medelFile中创建model

  • run表示启动model,并打开对话框

  • list表示列出当前所有的model

  • ps表示列出当前运行的model

  • rm表示删除model

down Model

在ollama官网中有model仓,我们可以挑选自己需要的model进行下载使用

以阿里通义千问模型为例,我们搜索到qwen2进入到该模型的仓库中。

上面的tag表示不同参数的千问大模型,7b,72b表示大模型版本,后面4.4GB,41GB表示模型大小,即运行时需要占用的GPU/CPU的大小。

右侧ollama run qwen2表示启动命令,如果我们需要拉取并使用7b模型,则只需要在cmd中执行ollama run qwen2:7b 命令,等待下载安装即可(使用的模型越大表示训练的参数越大,精准度越高。同时需要的GPU/CPU就越大,运行反应速度会越慢,需要根据自身需求选择合适的模型进行使用)

使用SpringAi对接ollamahttps://spring.io/projects/spring-ai

首先需要强调的时SpringAi依赖的jdk>=17,springboot版本>=3.0

接下来介绍构建简单的springboot项目,使用springAi调用ollama进行对话

构建一个maven项目,修改pom文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.1</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><url/><properties><java.version>17</java.version><spring-ai.version>1.0.0-M1</spring-ai.version></properties><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><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></project>

application.yml文件中填入:

spring:ai:ollama:base-url: http://localhost:11434chat:enabled: trueoptions:model: qwen2:7b

创建controller,对接用户输入问题并返回结果


@RestController
@RequestMapping("/")
public class AiController {@Resourceprivate OllamaChatModel ollamaChatModel;@PostMapping("/chat")public String chat(@RequestBody String message) {return ollamaChatModel.call(message);}}

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

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

相关文章

java实现图像分割合并

Java实现图片操作&#xff1a;切割、缩放、重置、拼接、合并、水印、画单点、画线段等_java拼接图片并截掉一部分-CSDN博客

WhatsApp:连接世界的即时通讯巨头

在数字化浪潮席卷全球的今天&#xff0c;即时通讯工具已成为人们日常生活中不可或缺的一部分。其中&#xff0c;WhatsApp凭借其卓越的功能、出色的用户体验和广泛的用户基础&#xff0c;在全球通讯领域崭露头角&#xff0c;成为连接世界的即时通讯巨头。今天将带您深入了解What…

tkinter显示图片

tkinter显示图片 效果代码解析打开和显示图像 代码 效果 代码解析 打开和显示图像 def open_image():file_path filedialog.askopenfilename(title"选择图片", filetypes(("PNG文件", "*.png"), ("JPEG文件", "*.jpg;*.jpeg&q…

2024.7.1 刷题总结

2024.7.1 **每日一题** 2065.最大化一张图中的路径价值&#xff0c;本题可以从数据范围得到思路的参考&#xff0c;根据总最大时间和单个最小时间得到最多可以有十条边&#xff0c;即搜索树有11层&#xff0c;每个节点最多有4个儿子&#xff0c;可视为一棵层数至多为11的四叉树…

数据资产赋能企业决策:通过精准的数据分析和洞察,构建高效的数据资产解决方案,为企业提供决策支持,助力企业实现精准营销、风险管理、产品创新等目标,提升企业竞争力

一、引言 在信息化和数字化飞速发展的今天&#xff0c;数据已成为企业最宝贵的资产之一。数据资产不仅包含了企业的基本信息&#xff0c;还蕴含了丰富的市场趋势、消费者行为和潜在商机。如何通过精准的数据分析和洞察&#xff0c;构建高效的数据资产解决方案&#xff0c;为企…

【论文通读】GUI Action Narrator: Where and When Did That Action Take

GUI Action Narrator: Where and When Did That Action Take 前言AbstractMotivationSolutionAct2CapData CollectionMetrics MethodExperimentAblation StudyVisual Prompt SizeSpatial PromptTemporal Prompt Conclusion 前言 一篇GUI操作benchmark的工作&#xff0c;作者提…

tkinter实现进度条

tkinter实现进度条 效果代码解析导入需要的模块定义进度条 代码 效果 代码解析 导入需要的模块 import tkinter as tk from tkinter import ttk定义进度条 def start_progress():progress[value] 0max_value 100step 10for i in range(0, max_value, step):progress[valu…

Win11找不到组策略编辑器(gpedit.msc)解决

由于需要同时连接有线网络和无线网络&#xff0c;且重启后双网络都自动连接&#xff0c;因此需要配置组策略。 但是win11找不到组策略编辑器。 灵感来源&#xff1a;Win11找不到组策略编辑器&#xff08;gpedit.msc&#xff09;解决教程 - 知乎 (zhihu.com) 在Win11中&#…

国网协议电表采集方案

项目背景及需求项目地点&#xff1a;重庆港西光伏电站&#xff08;中广核重庆&#xff09;项目背景&#xff1a;光伏发电并网项目电能监控项目目的及难点&#xff1a;实现对EDMI协议电表&#xff08;Mk6E&#xff09;的数据采集&#xff0c;监控光伏发电有效性&#xff0c;做到…

项目管理九大口诀

有工作一定有目标 有目标一定有任务 有任务一定有计划 有计划一定有执行 有执行一定有监控 有监控一定有调整 有调整一定有结果 有结果一定有责任 有责任一定有奖惩 &#x1fa77;有工作一定有目标 目标制定&#xff1a;SMART Specific&#xff08;具体性&#xff09;&#x…

# 职场生活之道:善于团结

在职场这个大舞台上&#xff0c;每个人都是演员&#xff0c;也是观众。要想在这个舞台上站稳脚跟&#xff0c;除了专业技能&#xff0c;更要学会如何与人相处&#xff0c;如何团结他人。团结&#xff0c;是职场生存的重要法则之一。 1. 主动团结&#xff1a;多一个朋友&#x…

《昇思25天学习打卡营第1天|基本介绍》

文章目录 前言&#xff1a;今日所学&#xff1a; 前言&#xff1a; 今天非常荣幸的收到了昇思25天学习打卡营的邀请。昇思MindSpore作为华为昇腾AI全栈的重要一员&#xff0c;他支持端、边、云独立的和协同的统一训练和推理框架&#xff0c;有着易于开发、执行效率高、全场景框…

客户满意度调查方法有哪些

用户满意度调查作为改进用户体验工作中重要的一项活动&#xff0c;可以帮助企业深入了解客户对产品服务各方面评价。有许多企业想开展客户满意度调查&#xff0c;但是在调查方式上不清楚该用那种方式&#xff1f;另外还要考虑预算&#xff0c;民安智库&#xff08;公众满意度调…

Kotlin扩展函数(also apply run let)和with函数

also apply run let with的使用例子 private fun testOperator() {/*** also*/val person Person("ZhangSan", 18)person.also {// 通常仅仅打印使用, 也可以通过it修改it.name "ZhangSan1"println("also inner name: " it.name)}println(&qu…

Redis-分布式锁(基本原理和不同实现方式对比)

文章目录 1、基本原理2、不同实现方式 1、基本原理 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁&#xff0c;只要大家使用的是同一把锁&#xff0c;那么我们就能锁住线程&#xff0c;不让线程进行&am…

Firewalld 概述

1.firewalld简介 firewalld的作用是为包过滤机制提供匹配规则(或称为策略),通过各种不同的规则&#xff0c;告诉 netfiter对来自指定源、前往指定目的或具有某些协议特征的数据包采取何种处理方式。 为了更加方便地组织和管理防火墙&#xff0c;firewalld 提供了支持网络区域…

题目汇总一

Question One 编写一个应用程序&#xff0c;输出100以内的全部偶数&#xff0c;并以10个一行的形式输出。 public class Main{public static void main(String[] args){int cnt 0;for(int i 2; i < 100; i 2){cnt ;System.out.print(i);if(cnt % 10 ! 0) System.out.prin…

基于内存认证的 Spring Security

在Spring Security中&#xff0c;基于内存的认证是一种简单直接的方式&#xff0c;适合于开发环境或者小型应用&#xff0c;它允许我们直接在安全配置中定义用户。在这篇文章中&#xff0c;我们将详细介绍如何使用Spring Security进行基于内存的认证配置。 开始之前 首先&…

以太网基础知识

文章目录 一、以太网&#xff08;Ethernet&#xff09;介绍二、协议介绍三、什么是PHY&#xff1f;1.标准接口协议&#xff1a;2.寄存器配置&#xff1a;3.自动协商&#xff1a; 四、时序4.1RGMII接口时序4.1.1 对其模式4.1.2 延时模式&#xff08;常用&#xff09; 4.2MDIO接口…

小学生学习成绩不理想,背后重要的因素,在于一些错误学习方法

小学生学习成绩不理想&#xff0c;背后重要的因素&#xff0c;在于一些错误学习方法 学习方法不当的学生&#xff0c;抓不住学习的重点和难点&#xff0c;找不到学习上的突破口而浪费了时间与精力。小学生学习成绩不理想&#xff0c;以下这些错误学习方法需要注意。 一…