ollama部署本地大模型

news2024/11/27 0:22:26

文章目录

  • 一、Ollama
    • 1.ollama简介
    • 2.安装流程
      • (1)官网下载ollama
      • (2)选择特定的大模型版本下载安装
      • (3)测试
  • 二、spring项目集成Ollama的大模型
    • 1.环境信息
    • 2.配置文件
      • (1)application.yml
      • (2)pom文件
    • 3.聊天代码测试

一、Ollama

1.ollama简介

本地运行大模型的工具,可以运行Llama 3、Phi 3、Mistral、Gemma和其他型号。定制并创建您自己的型号。

2.安装流程

(1)官网下载ollama

地址:https://ollama.com/

  • 直接点击download下载对应操作系统版本
    请添加图片描述
    请添加图片描述
  • 直接Install
    请添加图片描述
    请添加图片描述

(2)选择特定的大模型版本下载安装

推荐操作系统最少16G+512G

  • 点击Models选择你要下载的大模型,这里用qwen2举例

请添加图片描述

  • 选择0.5b这个版本,然后复制命令在终端运行
    请添加图片描述
  • 等待安装完成
    请添加图片描述
  • 安装成功请添加图片描述

(3)测试

  • 输入问题,进行测试
    请添加图片描述 - 默认的端口为11434
    netstat -ano | findstr 11434

二、spring项目集成Ollama的大模型

1.环境信息

  • Maven: apache-maven-3.9.6
  • springBoot: 3.3.0
  • JAVA:JDK17
  • 大模型:通义千问

2.配置文件

(1)application.yml

spring:
  application:
    name: springOllama
  ai:
    ollama:
      base-url: http://localhost:11434
      chat:
        options:
          model: qwen2:0.5b

(2)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.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.kdx</groupId>
    <artifactId>springOllama</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springAI</name>
    <description>Demo project for Spring Boot</description>
    <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.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </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>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <compilerVersion>17</compilerVersion>
                    <source>16</source>
                    <target>16</target>
                    <encoding>UTF-8</encoding>
                    <!-- maven 3.6.2及之后加上编译参数,可以让我们在运行期获取方法参数名称。 -->
                    <parameters>true</parameters>
                    <skip>true</skip>
                </configuration>
            </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>

3.聊天代码测试

新建Controller类

package com.kdx.springai.controller;

import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.ai.ollama.api.OllamaOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/ollama")
public class HelloController {

    @Autowired(required = false)
    private OllamaChatModel ollamaChatModel;

    //交流
    @RequestMapping("/chat")
    public String chat(@RequestParam(value = "message", defaultValue = "讲个笑话") String message) {
        ChatResponse response = ollamaChatModel.call(
                new Prompt(
                        message,
                        OllamaOptions.create()
                                //模型名称
                                .withModel("qwen2:0.5b")
                                .withTemperature(0.4f)
                ));
        return response.getResult().getOutput().getContent();
    }

}

启动项目访问接口测试
请添加图片描述

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

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

相关文章

shell命令(进程管理和用户管理)

一、进程处理相关命令 1、进程的概念 进程的概念主要有两点&#xff1a; 进程是一个实体。每一个进程都有它自己的地址空间&#xff0c;一般情况下&#xff0c;包括文本区域&#xff08; text region &#xff09;、数据区域&#xff08; data region &#xff09;和堆栈&am…

基于Spark3.3.4版本,实现Standalone 模式高可用集群部署

目录 一、环境描述 二、部署Spark 节点 2.1 下载资源包 2.2 解压 2.3 配置 2.3.1 配置环境变量 2.3.2 修改workers配置文件 2.3.3 修改spark.env.sh文件 2.3.4 修改spark-defaults.conf 2.4 分发 2.5 启动服务 2.5.1 启动zookeeper 2.5.2 启动hdfs 2.5.3 启动spar…

视频融合平台LntonCVS视频监控汇聚平台:构建多元接入与智能管理的安防新生态

一、视频融合平台概述 视频融合平台支持多种协议和设备类型的接入&#xff0c;包括GB28181、Onvif、RTSP、RTMP、海康SDK、Ehome、大华SDK、宇视SDK等。它能够统一整合和管理来自不同品牌、不同协议的视频资源&#xff0c;构建视频数据资源池&#xff0c;并通过视频资源目录为…

zemax默认函数评价设定规则

--转自挑衅冰雪 矩形阵列&#xff1a; 系统波前不能使用像差系数表示&#xff0c;系统中包含非圆形通光孔径的情况&#xff08;如矩形&#xff0c;椭圆&#xff09;。 高斯求积&#xff1a; 具有环形光瞳和旋转对称系统 矩形阵列评价函数操作数要远大于高斯求积 可先用高斯…

【HarmonyOS NEXT】设置组件不同状态下的样式

属性 名称 参数类型 描述 stateStyles StateStyles 设置组件不同状态的样式。 从API version 9开始&#xff0c;该接口支持在ArkTS卡片中使用。 StateStyles接口说明 从API version 9开始&#xff0c;该接口支持在ArkTS卡片中使用。只支持通用属性。 状态名称 类型 必…

智能名片小程序源码系统 销售名片+企业商城 前后端分离+源代码包+搭建部署教程

系统概述 在当今数字化快速发展的时代&#xff0c;传统的商务交流方式逐渐显露出其局限性。为了满足企业和个人更加高效、便捷地展示和推广自身的需求&#xff0c;智能名片小程序源码系统应运而生。这一系统的开发旨在为用户提供一个集销售名片和企业商城于一体的综合性平台&a…

迷你小风扇哪个品牌好?迷你小风扇前十名公开揭晓!

随着夏日的炎热袭来&#xff0c;迷你小风扇成为了许多人随身携带的清凉利器。无论是在办公室、户外活动&#xff0c;还是在旅行途中&#xff0c;迷你小风扇都以其小巧便携、强劲风力和持久续航的优势&#xff0c;迅速俘获了大批用户的喜爱。然而&#xff0c;市面上迷你小风扇品…

RabbitMQ 相关概念

引言 什么是消息中间件 消息是指在应用间传送的数据&#xff0c;包含文本字符串、JSON等。消息队列中间件&#xff08;MQ&#xff09;指利用高效可靠的消息传递机制进行平台无关的数据交流&#xff0c;并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型…

11.6.k8s实战-节点扩缩容

目录 一&#xff0c;需求描述 二、集群缩容-节点下线 1&#xff0c;节点下线案例说明 2&#xff0c;查看现有节点 3&#xff0c;查看所有名称空间下的pod ​编辑4&#xff0c;驱逐下线节点的pod 5&#xff0c;驱逐后再次查看pod 6&#xff0c;驱逐pod后再次查看节点信息…

了解Java的LinkedBlockingQueue

了解Java的LinkedBlockingQueue LinkedBlockingQueue是一个基于链接节点的有界阻塞队列。它实现了BlockingQueue接口&#xff0c;可以在多线程环境中安全地进行插入、移除和检查操作。LinkedBlockingQueue的容量可以在创建时指定&#xff0c;如果未指定&#xff0c;则默认容量…

为什么动态代理接口中可以不加@Mapper注解

为什么动态代理接口中可以不加Mapper注解 如下图&#xff1a; 我们上面的UserMapper上面没有加Mapper注解&#xff0c;按道理来说UserMapper这个类应该是注入不到IOC容器里面的&#xff0c;但是为什么我们程序的运行效果仍然是正常的呢&#xff1f;这是因为你的启动类上加了m…

机械产品数字样机通用要求

以下参&#xff1a;国家标准 GB/T26100-2010《 机械产品数字样机通用要求》 数字样机 (Digital Mock-Up,DMU) 对机械产品整机或具有独立功能的子系统的数字化描述&#xff0c;这种描述不仅反映了产品对象的几何属性&#xff0c;还至少在某一领域反映了产品对象的功能和性能。…

建筑工地通常那种考勤机好用?

建筑工地通常那种考勤机好用&#xff1f; 大量从乡村前往城市的务工者&#xff0c;所从事的多为建筑工程类行业&#xff0c;此种行业对学历与技能的要求不高&#xff0c;而工资水平倒也尚可&#xff0c;正因如此才吸引了众多劳动者。那要怎样管好工地上的项目呢&#xff1f;首要…

雷军-2022.8小米创业思考-10-高效率模型:便宜有好货;产品好,价格厚道,公司盈利;爆品模式,分摊成本;资金库存快速周转;铁人三项,硬件,新零售,互联网

第十章 高效率模型 小米方法论 “铁人三项”的商业模式 完整的“小米模式”。这种模式有很多反直觉的地方&#xff0c;需要跟“便宜无好货”等很多固有观念做斗争。有些讽刺的是&#xff0c;小米模式天生就是为实现“便宜有好货”而奋斗。 效率是小米模式的基石&#xff0c…

2024年618购物狂欢节买什么最超值!618不可错过的好物清单!

618年中大促再度来临。对于购物爱好者来说&#xff0c;这无疑是一个不容错过的购物盛宴。那么&#xff0c;在这个618&#xff0c;哪些好物值得你重点关注呢&#xff1f;我特地整理了一份推荐清单&#xff0c;这些产品不仅经过我的亲身体验&#xff0c;更以其出色的实用性和高性…

Linux ubuntu安装pl2303USB转串口驱动

文章目录 1.绿联PL2303串口驱动下载2.驱动安装3.验证方法 1.绿联PL2303串口驱动下载 下载地址&#xff1a;https://www.lulian.cn/download/16-cn.html 也可以直接通过CSDN下载&#xff1a;https://download.csdn.net/download/Axugo/89447539 2.驱动安装 下载后解压找到Lin…

MySQL中的客户端选项(三)

默认情况下&#xff0c;LOAD DATA的LOCAL功能是否可用取决于MySQL客户端库在编译时是否启用了该功能。 当只给出--local-infile&#xff08;不带值&#xff09;时&#xff0c;它启用LOCAL数据加载。当给出--local-infile0时&#xff0c;它禁用LOCAL数据加载。当给出--local-in…

深圳比创达|EMI电磁干扰行业:从挑战到机遇的蜕变

在当今科技日新月异的时代&#xff0c;电磁干扰&#xff08;EMI&#xff09;已成为影响电子设备性能和稳定性的重要因素。EMI电磁干扰行业因此应运而生&#xff0c;致力于研究和解决电磁干扰问题&#xff0c;确保电子设备的正常运行。 一、EMI电磁干扰行业面临的挑战 随着电子…

告别盲目投放,Xinstall全方位监测App广告效果

在移动互联网高速发展的今天&#xff0c;App广告已成为品牌与消费者沟通的重要桥梁。然而&#xff0c;如何确保广告投放的精准性和效果性&#xff0c;成为广告主们关注的焦点。在这个数据驱动的时代&#xff0c;Xinstall以其专业的App广告效果统计功能&#xff0c;为广告主们提…

一图看懂华为云CodeArts API 7大特性,带你玩转一站式API

华为云CodeArts API是API全生命周期一体化协作平台 &#xff0c;支持开发者高效实现API设计、API开发、API测试、API托管、API运维、API变现的一站式体验。以API契约为锚点&#xff0c;CodeArts API保证了API各阶段数据高度一致&#xff0c;为开发者提供友好易用的API全流程端到…