828华为云征文|docker部署ollama搭建属于自己的大模型

2024-09-06 03:52

本文主要是介绍828华为云征文|docker部署ollama搭建属于自己的大模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.介绍

1.1 什么是华为云Flexus X实例

最近华为云828 B2B企业节正在举办,Flexus X实例的促销也非常给力,大家可以去看看。特别是对算力性能有要求,同时对自建MySQL、Redis、Nginx性能有要求的小伙伴,千万不要错过。
Flexus云服务器X实例是新一代面向中小企业和开发者打的柔性算力云服务器,可智能感知业务负载,适用于电商直播、企业建站、开发测试环境、游戏服务器、音视频服务等中低负载场景。

 1.2什么是Ollama

Ollama是一个开源的 LLM(大型语言模型)服务工具,用于简化在本地运行大语言模型,降低使用大语言模型的门槛,使得大模型的开发者、研究人员和爱好者能够在本地环境快速实验、管理和部署最新大语言模型,包括如Llama 3、Phi 3、Mistral、Gemma,Qwen等开源的大型语言模型。

 

2 准备华为云Flexus应用服务器L实例

注册并登录华为云找到华为云Flexus云服务

 选择合适的服务器进行购买

 选择相应的配置并购买

购买之后找到控制台进行密码修改和远程登陆

 使用远程连接工具连接云服务器

 3 部署Ollama服务

 这里官网提供了三种系统的安装包这里下载安装即可使用。

这里我采用docker部署的方式

docker pull ollama/ollama

 查看镜像

docker image ls

 运行容器

docker run -itd -p11434:11434 --name ollama ollama/ollama

 进入容器中

 拉取对应的大模型 (mistral,llama3,qwen2,...)这里以mistral为例

 运行对应的大模型 ollama run mistral

 4 实现问答对话

这里我们使用Spring AI 快速搭建一个问答服务其中集成了ollama 可以快速链接到ollama服务,记得开放11434的端口

   <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-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><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></dependencies>
@RestController
@RequestMapping("/chat")
public class ChatController {@Resourceprivate OllamaChatModel ollamaChatModel;@Resourceprivate InMemoryChatMemory inMemoryChatMemory;@Operation(summary = "同步输出")@GetMapping("/question")public String question(@RequestParam String question) {return ollamaChatModel.call(question);}@Operation(summary = "流式输出")@GetMapping(value = "/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)public Flux<String> stream(@RequestParam String question) {return ollamaChatModel.stream(question);}@Operation(summary = "连续对话")@GetMapping(value = "/history", produces = MediaType.TEXT_EVENT_STREAM_VALUE)public Flux<String> history(@RequestParam String conversationId, @RequestParam String question) {List<Message> messages = new ArrayList<>();List<Message> conversation = inMemoryChatMemory.get(conversationId, 10);if (conversation != null) {messages.addAll(conversation);}messages.add(new UserMessage(question));Prompt prompt = new Prompt(messages);UserMessage message = new UserMessage(question);List<Message> userMessages = new ArrayList<>();userMessages.add(message);inMemoryChatMemory.add(conversationId, userMessages);return ollamaChatModel.stream(prompt).map((result) -> result.getResult().getOutput().getContent());}
}

 

这篇关于828华为云征文|docker部署ollama搭建属于自己的大模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140929

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF