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

news2024/9/24 5:24:55

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应用服务器X实例

注册并登录华为云找到华为云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 {
    @Resource
    private OllamaChatModel ollamaChatModel;
    @Resource
    private 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());
    }
}

 

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

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

相关文章

螺旋模型例题

答案&#xff1a;D 知识点&#xff1a;螺旋模型是瀑布模型和演化模型的结合。适用于庞大&#xff0c;复杂并且具有高风险的系统 螺旋模型阶段&#xff1a; 制定计划&#xff1a;决定目标&#xff0c;方案和限制 风险分析&#xff1a;评价方案&#xff0c;识别风险&#xff…

简单好用的OCR API

现如今&#xff0c;越来越多的科技产品可以帮助我们改善和提高相应的工作效率。OCR技术的出现&#xff0c;提高了人们的工作效率&#xff0c;其应用领域及其广泛。就拿应用了OCR技术的翔云文档识别服务来说&#xff0c;只需上传文档图片便可自动识别并返回文档中相应的内容。翔…

vue2 - 文件预览、下载

目标&#xff1a;显示附件文件名&#xff0c;多个文件则用顿号隔开&#xff0c;点击文件可预览或下载文件 支持预览 pdf 和图片 &#xff08;JPG, JPEG, PNG&#xff09;doc、docx文件支持下载 原型图&#xff1a; 实现&#xff1a; 1、附件信息实现&#xff1a; <!-- 附…

Modbus协议基础知识

本节内容视频链接&#xff1a;【1】Modbus协议基础知识_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV11G4y1W7pU?p1&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5

强化学习策略更新方法on-policy与off-policy(重要性采样,q-Learning,sarsa)

一 On-policy和Off-policy概念 策略更新方法可以分为两类&#xff1a;On-policy&#xff08;在线策略&#xff09;和Off-policy&#xff08;离线策略&#xff09;。 它们之间的主要区别在于如何使用经验&#xff08;状态、动作、奖励和下一个状态&#xff09;来更新智能体的策略…

PHP宠物爱好者交流网站-计算机毕业设计源码65481

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 注册流程 2.2.1 登录流程 2.2.3 数据删除流程 2.3 系统功能分析 2.4 系统用例分析 3 系统总体设计 3.1 系统架构设计 3.2 系统功能模块设…

跑腿代购app系统开发产品分析

跑腿代购APP的开发案例分析可以从多个维度进行&#xff0c;包括市场需求、功能设计、技术实现、用户体验以及市场推广等方面。编辑&#xff1a;qawsed2466。以下是一个基于当前行业趋势和技术发展的跑腿代购APP开发案例分析概要&#xff1a; 一、市场需求分析 1. 用户群体 忙…

01【python+playwright测试自动化】之定位方式

playwright系列文章目录 00Mac安装playwright 00Mac 安装配置Python3虚拟环境&#xff08;VirtualEnv、virtualenvwrapper扩展包&#xff09; 文章目录 playwright系列文章目录前言一、实现一个demo二、通过CSS、XPath定位三、通过文本定位四、通过角色定位五、通过标题定位六…

【最新推荐】雨林木风Windows10系统:极速下载!

今日系统之家小编给大家分享2024年最新发布的雨林木风Windows10系统下载&#xff0c;该版本系统基于微软官方最新Windows10 22H2 19045.4842 64位专业版展开离线制作&#xff0c;确保安全无毒&#xff0c;全新升级的优化方案&#xff0c;显著提升了系统的性能&#xff0c;运作变…

新能源汽车的充电基础发展规划

公共充电基础设施建设进展 公共充电基础设施作为新能源汽车发展的关键支撑&#xff0c;其建设进展在近年来显著加快。各地和企业纷纷投入资源&#xff0c;建立了大量的充电站和充电桩。这些设施不仅覆盖了城市主要区域&#xff0c;也逐渐扩展到高速公路服务区和城际连接点。除…

机器学习 第10章 降维与度量学习

目录 k近邻学习低维嵌入主成分分析&#xff08;PCA&#xff09;核化线性降维&#xff08;KPCA&#xff09;流形学习等度量映射&#xff08;Isomap&#xff09;局部线性嵌入 度量学习 k近邻学习 k 近邻&#xff08;KNN&#xff09;学习是一种常用的监督学习方法&#xff0c;其工…

太炸裂!AI绘画赚钱机会,多到你无法想象!

家人们&#xff0c;AI绘画带来的变现方式真的太多了&#xff01; 很多人会认为AI还没有落地&#xff0c;也有很多人认为这些宣扬AI红利的自媒体就是想割韭菜&#xff0c;那只能说可能认知太浅薄了。 新的事物出现&#xff0c;总会有善于捕捉信息和透过表层看清事物本质的人冲在…

格式化的硬盘能恢复数据吗?拯救数据的可能性

在信息技术高速发展的今天&#xff0c;硬盘作为计算机的核心存储部件&#xff0c;承载着大量的数据和文件。然而&#xff0c;有时因为误操作或其他原因&#xff0c;我们可能需要对硬盘进行格式化&#xff0c;这往往导致重要数据的丢失。 那么&#xff0c;格式化后的硬盘数据是否…

护网期间社区同好的一些问题总结

本文来自无问社区&#xff0c;更多网安知识分享可前往查看http://www.wwlib.cn/index.php/artread/artid/7560.html 一,SQL注入 分类&#xff1a; 从注入参数类型分&#xff1a;数字型注入、字符型注入 从注入效果分&#xff1a;报错注入、布尔注入、延时注入、联合注入、堆…

固态硬盘和机械硬盘区别?固态硬盘和机械硬盘哪个好?

在当今数据时代&#xff0c;硬盘作为电脑里的存储设备在我们的生活和工作中扮演着十分重要的角色。随着存储技术的进步&#xff0c;市场上出现了两种主流硬盘&#xff1a;固态硬盘和机械硬盘。它们各有优劣&#xff0c;那么二者究竟有什么区别&#xff1f;我们又该如何选择呢&a…

Linux驱动(六):Linux2.6驱动编写之平台设备总线

目录 前言一、平台设备总线1.是个啥&#xff1f;2.API函数 二、设备端驱动端1. 匹配机制2. 实现代码 三、设备树驱动端1.匹配机制2.代码实现 前言 本文主要介绍了一下两种驱动编写方法&#xff1a; 1.比较原始的设备端驱动端编写方法。 2.效率较高的设备树驱动端编写方法。 最…

echarts 5.3.2 折线图 tooltip设置trigger为axis无效

在使用echarts5.3.2过程中&#xff0c;发生一个不应该发生的bug&#xff0c;希望效果如下 现实中如下 代码中设置了tooltip: {trigger: ‘axis’}不生效啊。查阅文档&#xff0c;应该是这样设置的啊&#xff0c;可是为什么无效呢。改成tooltip: {trigger: ‘item’}虽能显示弹…

合宙低功耗4G模组Air724UG ——产品规格书

Air724UG 是合宙通信推出的超小封装 LTE Cat.1 bis 模块&#xff1b;采用紫光展锐的UIS8910平台&#xff0c;支持 LTE 3GPP Rel.13 技术。是4G全网通模块&#xff0c;可适应不同的运营商和产品&#xff0c;确保产品设计的最大灵活性。 模块主要特点&#xff1a; 超小封装&…

‘“node“‘ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���

错误信息 使用vscode提交前端代码到git时&#xff0c;报下面的错&#xff0c;一直不知道啥原因&#xff0c;后来找到了个临时解决方案。。。 vscode解决方案 package.json文件中&#xff0c;去掉hooks的配置。 Idea解决方案 网上有说idea的解决方案的&#xff1a;就是提…

【Qt网络编程基础】Tcp服务器和客户端(只支持一对一)

目录 一、编写思路 1、服务器 总体思路 详细思路 1. 构造函数 (Widget::Widget) 2. 启动监听 (Widget::on_btn_start_clicked) 3. 停止监听 (Widget::on_btn_cease_clicked) 4. 发送消息 (Widget::on_btn_info_clicked) 5. 接收消息 (Widget::receive_message) 6. 处…