前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringAI+Ollama三部曲之一:极速体验

SpringAI+Ollama三部曲之一:极速体验

作者头像
程序员欣宸
发布于 2024-05-26 06:33:27
发布于 2024-05-26 06:33:27
1.2K00
代码可运行
举报
文章被收录于专栏:实战docker实战docker
运行总次数:0
代码可运行
欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

Spring AI实战全系列链接
  1. Spring AI实战之一:快速体验(OpenAI)
  2. SpringAI+Ollama三部曲之一:极速体验
关于ollama
  • ollama和LLM(大型语言模型)的关系,类似于docker和镜像,可以在ollama服务中管理和运行各种LLM,下面是ollama命令的参数,与docker管理镜像很类似,可以下载、删除、运行各种LLM
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Available Commands:
  serve       Start ollama
  create      Create a model from a Modelfile
  show        Show information for a model
  run         Run a model
  pull        Pull a model from a registry
  push        Push a model to a registry
  list        List models
  cp          Copy a model
  rm          Remove a model
  help        Help about any command
  • 简单的说,有了ollama,咱们就可以在本地使用各种大模型了,ollama支持的全量模型在这里:https://ollama.com/library
  • 官方给出的部分模型

Model

Parameters

Size

下载命令

Llama 3

8B

4.7GB

ollama run llama3

Llama 3

70B

40GB

ollama run llama3:70b

Phi-3

3.8B

2.3GB

ollama run phi3

Mistral

7B

4.1GB

ollama run mistral

Neural Chat

7B

4.1GB

ollama run neural-chat

Starling

7B

4.1GB

ollama run starling-lm

Code Llama

7B

3.8GB

ollama run codellama

Llama 2 Uncensored

7B

3.8GB

ollama run llama2-uncensored

LLaVA

7B

4.5GB

ollama run llava

Gemma

2B

1.4GB

ollama run gemma:2b

Gemma

7B

4.8GB

ollama run gemma:7b

Solar

10.7B

6.1GB

ollama run solar

  • 另外需要注意的是本地内存是否充足,7B参数的模型需要8G内存,13B需要16G内存,33B需要32G内存
关于《SpringAI+Ollama三部曲》系列
  • 《SpringAI+Ollama三部曲》是《Spring AI实战》的子系列,特点是专注于使用SpringAI来发挥Ollama的功能,由以下三篇文章构成
  • 极速体验:用最简单的操作,在最短时间内体验Java调用Ollama的效果
  • 细说开发:说明《极速体验》的功能对应的整个开发过程,把代码的每一步都说得清清楚楚(含前端)
  • 延伸扩展:SpringAI为Ollama定制了丰富的功能,以进一步释放Ollama的能力,文章会聚焦这些扩展能力
本篇概览
  • 本篇聚焦操作和体验,不涉及开发(后面的文章会有详细的开发过程),力求用最短时间完成本地部署和体验,感受Java版本大模型应用的效果
  • 今天要体验的服务,整体部署架构如下
  • 最终效果如下

ollama

  • 今天要做的所有事情汇总如下,嗯,好像挺简单的
  • 接下来咱们开始行动呗,正宗的Java程序员开始参与大模型(应用)相关开发工作了,此刻的我内心是激动的
环境要求
  • 完成本篇的实战需要一台Linux操作系统的电脑(虚拟机、WSL2也行),电脑上部署了docker+docker-compose,电脑需要8G内存
确定本篇要用的模型
  • Ollama支持的模型有很多,这里打算使用通义千问,官方网页
  • 本次实战选择了较小的1.8b版本,您可以根据自己的实际情况在官网选择其他版本
  • 稍后会将选好的模型写在配置文件中
准备工作(操作系统和docker)
  • 本次实战的两个重要前提条件:
  • 操作系统是Linux,我这里用的是Ubuntu 24.04 LTS服务器
  • docker和docker-compose已经部署好,我这里docker版本是26.1.2
  • 由于docker镜像较大,所以请提前准备好docker镜像加速,方法很多,我这里用的是阿里云的,如下图
  • 前面介绍Ollama时提到过官方对内存的要求,所以这里请确保本次实战的电脑配置不要过低,我这边运行的模型是通义千问的1.8b,总消耗如下
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
✗ free -g
               total        used        free      shared  buff/cache   available
Mem:              31           3          21           0           6          27
Swap:              7           0           7
准备工作(保存文件的目录)
  • 在电脑上准备两个干净目录,用来保存docker容器中的数据,这样即便是容器被销毁了数据也会被保留(例如模型文件),等到再次启动容器时这些文件可以继续使用
  • 第一个是用来保存ollama的文件,我这里是/home/will/data/ollama
  • 第二个是用来保存ollama webui的文件,我这里是/home/will/data/webui
  • 这两个目录会配置到稍后的docker-compose.yml文件中,您要注意同步修改
准备工作(SpringBoot应用的配置文件application.properties)
  • 准备好SpringBoot应用的配置文件application.properties,这样便于各种个性化设置
  • 我这边在/home/will/temp/202405/15目录准备好配置文件,内容如下
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring.ai.ollama.base-url=http://ollama:11434
spring.ai.ollama.chat.options.model=qwen:1.8b
spring.ai.ollama.chat.options.temperature=0.7
spring.main.web-application-type=reactive
  • 注意:本篇使用的模型是qwen:1.8b,如果您要用其他模型,请在这里修改好
  • 至此,准备完毕,进入部署阶段
部署工作(编写docker-compose文件)
  • 新增名为docker-compose.yml的文件,内容如下
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
version: '3.8'
services:
  ollama:
    image: ollama/ollama:latest
    ports:
      - 11434:11434
    volumes:
      - /home/will/data/ollama:/root/.ollama
    container_name: ollama
    pull_policy: if_not_present
    tty: true
    restart: always
    networks:
      - ollama-docker

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    pull_policy: if_not_present
    volumes:
      - /home/will/data/webui:/app/backend/data
    depends_on:
      - ollama
    ports:
      - 13000:8080
    environment:
      - 'OLLAMA_BASE_URL=http://ollama:11434'
      - 'WEBUI_SECRET_KEY=123456'
      - 'HF_ENDPOINT=https://hf-mirror.com'
    extra_hosts:
      - host.docker.internal:host-gateway
    restart: unless-stopped
    networks:
      - ollama-docker

  java-app:
    image: bolingcavalry/ollam-tutorial:0.0.1-SNAPSHOT
    volumes:
      - /home/will/temp/202405/15/application.properties:/app/application.properties
    container_name: java-app
    pull_policy: if_not_present
    depends_on:
      - ollama
    ports:
      - 18080:8080
    restart: always
    networks:
      - ollama-docker

networks:
  ollama-docker:
    external: false
  • 上面的内容中,前两个volumes的配置对应的是准备工作中新建的两个目录,第三个volumes对应的是刚才新建的application.properties,请按照您的实际情况进行修改
部署(运行docker-compose)
  • 进入docker-compose.yml文件所在目录,执行以下命令就完成了部署和启动
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker-compose up -d
  • 本次启动会用到电脑的这三个端口:11434、13000、18080,如果这些端口有的已被使用就会导致启动失败,请在docker-compose.yml上就行修改,改为没有占用就行,然后执行以下命令(先停掉再启动)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker-compose down
docker-compose up -d
  • 启动期间,下载docker镜像时因为文件较大,需耐心等待(再次提醒,请配置好docker镜像加速)
  • 启动成功后,控制台显示如下
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[+] Building 0.0s (0/0)                                                                                                                                                                        
[+] Running 4/4
 ✔ Network files_ollama-docker  Created                                                                                                                                                   0.1s 
 ✔ Container ollama             Started                                                                                                                                                   0.2s 
 ✔ Container java-app           Started                                                                                                                                                   0.4s 
 ✔ Container open-webui         Started 
  • 现在服务都启动起来了,但是还不能用,咱们还要把大模型下载下来
部署(指定大模型)
  • 登录webui服务,地址是http://192.168.50.134:13000,192.168.50.134是运行docker-compose的电脑IP
  • 打开地址,会提示注册或者登录,这里要注册一下
  • 注册成功后显示登录成功的页面,如下图
  • 现在来下载模型,操作如下
  • 输入模型名称然后开始下载
  • 模型下载完成后会有如下提示
  • 可以直接在webui上体验刚下载的模型,尝试了基本的问答,没有问题
  • 至此,部署和启动都完成了,可以体验Java应用了
体验
  • 浏览器打开地址http://192.168.50.134:18080,如下
  • 效果如下

ollama

  • 至此,本篇的任务已经完成,一个本地化部署的大模型应用已经就绪,也完成了最基本的体验,过程十分简单(好像也就输入了几行命令,打开浏览器点了几下)
  • 简单的背后,其实现是否也简单呢?先剧透一下吧,得益于Spring团队的一致性风格,调用Ollama的过程和操作数据库消息队列这些中间件差不多,几行代码几行配置就够了
  • 至于完整的开发过程,就留到下一篇吧,那里会给出所有源码和说明
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringAI+Ollama三部曲之二:细说开发
程序员欣宸
2024/05/26
2.4K0
SpringAI+Ollama三部曲之二:细说开发
Mac环境下ollama部署和体验
程序员欣宸
2024/05/26
2.1K0
Mac环境下ollama部署和体验
通过ollama+open webui可视化运行gemma
ollama是专为在Docker容器中部署LLM而设计的,简化了部署和管理流程,目前它支持的模型如下:
数据仓库晨曦
2024/03/06
8.8K0
通过ollama+open webui可视化运行gemma
基于Ollama的DeepSeek R1本地部署全流程指南:从零到推理实战
在人工智能技术快速发展的今天,本地化部署大型语言模型(LLM)已成为开发者与研究人员的重要需求。本文将详细介绍如何通过Ollama框架实现DeepSeek R1模型的本地部署,涵盖从硬件选型到推理实战的全流程,并提供针对不同场景的优化方案。
Towserliu
2025/02/06
11K0
基于Ollama的DeepSeek R1本地部署全流程指南:从零到推理实战
使用Ollama+OpenWebUI本地部署Gemma谷歌AI开放大模型完整指南
Ollama是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。它提供了一套简单的工具和命令,使任何人都可以轻松地启动和使用各种流行的LLM,例如GPT-3、Megatron-Turing NLG和WuDao 2.0。
神秘泣男子
2024/06/06
1.3K0
使用Ollama+OpenWebUI本地部署Gemma谷歌AI开放大模型完整指南
容器环境下部署Open-webui、One-api、Ollama、Deepseek
浏览器访问 http://ip:3000 (注意:首次登录不要去注册,直接登录,默认超管账号:root,密码:123456),登录后直接跳转到更新用户信息界面修改后再重新登陆,如下截图:
用户2141488
2025/03/07
5981
跟着我,轻松在腾讯云轻量应用服务器搭建自己的大型语言模型!
1.Ollama 是一个基于 Go 语言开发的本地大模型运行框架!它可以帮助用户在本地快速运行大模型,通过简单的安装指令,可以用一条命令就在本地运行开源大型语言模型。
快乐的小白
2024/04/16
3K4
跟着我,轻松在腾讯云轻量应用服务器搭建自己的大型语言模型!
Ollama 安装与使用指南笔记
在探索大模型的道路上,Ollama 作为一款开源项目为我们提供了很大的便利。下面将详细介绍它的安装与使用,并补充一些常见问题及解决方法。
ceagle
2024/12/30
4.9K0
本机部署大语言模型:Ollama和OpenWebUI实现各大模型的人工智能自由
本篇文章介绍在window系统下,安装Ollama并且安装gemma(谷歌大模型)、llama2(脸书大模型)、qwen(阿里大模型)等大模型的教程,实现类似免费ChatGPT的web界面
星哥玩云
2024/05/14
6.3K0
本机部署大语言模型:Ollama和OpenWebUI实现各大模型的人工智能自由
用 Ollama 打造你的本地 AI 小助手:LLaMA / Mistral 部署全流程
而搭配 Open WebUI,你可以获得近似 ChatGPT 的 Web 聊天界面👇:
默 语
2025/04/25
5220
大模型llm:Ollama部署llama3学习入门llm
Llama 3 是一个自回归语言模型(an auto-regressive language),它使用优化的 transformer 架构。调整后的版本使用监督微调 (SFT) 和带有人类反馈的强化学习 (RLHF),以符合人类对有用性和安全性的偏好。
黄规速
2024/05/24
5.9K0
大模型llm:Ollama部署llama3学习入门llm
玩转 AIGC:Ubuntu 24.04 LTS 安装 Ollama, 体验大模型 Llama3 8B 和 Qwen 32B
今天分享的内容是 玩转 AIGC「2024」 系列文档中的 Ubuntu 24.04 LTS 安装 Ollama, 体验大模型 Llama3 8B 和 Qwen 32B。
运维有术
2024/05/09
6.4K0
玩转 AIGC:Ubuntu 24.04 LTS 安装 Ollama, 体验大模型 Llama3 8B 和 Qwen 32B
Docker下ELK三部曲之一:极速体验
《Docker下ELK三部曲》一共三篇文章,为您揭示如何快速搭建ELK环境,以及如何将web应用的日志上报到ELK用,三部曲内容简述如下:
程序员欣宸
2022/05/09
4240
Docker下ELK三部曲之一:极速体验
普通电脑也能跑大模型,三步搞定私人AI助手 | LLaMA-3本地部署小白攻略
“ 在你的电脑上运行一个强大的AI助手,它不仅能力超群,还把所有秘密都藏在你的硬盘里。好奇这是如何实现的吗?动动手,三分钟就可以完成LLaMA-3的本地部署!”
技术人生黄勇
2024/07/19
2.7K0
普通电脑也能跑大模型,三步搞定私人AI助手 | LLaMA-3本地部署小白攻略
使用 Ollama 自建大模型并对接第三方平台二次分发盈利
随着AI不断的发展,各大厂商都公开了很多模型,那么我们自己是否可以在本地运行起这些模型呢,答案是肯定的!今天带给大家3分钟使用Ollama快速搭建环境运行本地大模型,支持主流的Lama 3, Phi 3, Mistral, Gemma等等大模型,同时支持主流操作系统,不管你是Mac还是Linux更或者是Windows,哪怕你没有强大的GPU,也可以通过CPU进行体验学习。
Lcry
2024/07/17
3K0
使用 Ollama 自建大模型并对接第三方平台二次分发盈利
Ubuntu系统下部署大语言模型:Ollama和OpenWebUI实现各大模型的人工智能自由
之前在window下安装过 Ollama和OpenWebUI搭建本地的人工智能web项目(可以看我之前写的文章),无奈电脑硬件配置太低,用qwen32b就很卡,卡出PPT了,于是又找了一台机器安装linux系统,在linux系统下测试一下速度能否可以快一些。
星哥玩云
2024/05/18
7K0
Ubuntu系统下部署大语言模型:Ollama和OpenWebUI实现各大模型的人工智能自由
使用Ollama部署deepseek大模型
我的显卡在Windows电脑上面 所以使用Windows的安装方式去安装 若你的显卡是在Linux上面 可以使用如下命令安装
小陈运维
2025/02/04
2.2K0
使用Ollama部署deepseek大模型
Docker下redis与springboot三部曲之一:极速体验
从本章开始我们在Docker下进行spring boot操作redis的实战,先从最简单的redis单机版开始吧;
程序员欣宸
2022/05/06
2620
Docker下redis与springboot三部曲之一:极速体验
RockyLinux9.5下使用ollama搭建本地AI大模型DeepSeek
先使用下载 https://ollama.com/download/ollama-linux-amd64.tgz 然后修改https://ollama.com/install.sh 脚本中一小段,进行半自动安装ollama
yuanfan2012
2025/02/08
5370
RockyLinux9.5下使用ollama搭建本地AI大模型DeepSeek
使用Ollama部署deepseek大模型
连接到另一台服务器上的Ollama时,请将OLLAMA_BASE_URL更改为服务器的URL:
小陈运维
2025/01/26
2.9K0
推荐阅读
相关推荐
SpringAI+Ollama三部曲之二:细说开发
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验