从零开始使用MaxKB打造本地大语言模型智能问答系统与远程交互

文章目录

    • 前言
    • 1. 下载运行Ollama
    • 2. 安装大语言模型
    • 3. 安装Cpolar工具
    • 4. 配置公网地址
    • 5. 固定公网地址
    • 6. MaxKB 添加Olama
    • 7.创建问答应用

前言

目前大语言模型(LLM)已经成为了人工智能领域的一颗璀璨明星,从自然语言处理到智能问答系统,这些强大的模型正在逐步改变我们的生活方式和工作方式。然而,对于很多个人开发者或小型团队来说,在本地运行这类复杂的模型似乎是一件遥不可及的事情。

不过别担心!今天我要分享一个超实用的教程,教你如何在Windows上轻松搭建大语言模型框架Ollama,并通过MaxKB创建属于你自己的智能问答应用。不仅如此,我们还将利用内网穿透工具cpolar来解决一些常见的技术难题,让你无需公网IP或域名也能顺利运行这个项目。

无论你是对AI充满好奇的初学者,还是希望提升自己技能的技术高手,这篇教程都将为你打开一扇新的大门。让我们一起动手吧!

请添加图片描述

1. 下载运行Ollama

进入Ollama Github 界面:https://github.com/ollama/ollama?tab=readme-ov-file ,我们选择windwos版本下载

image-20240425174856953

下载后,双击进行安装,默认会安装到C盘,然后等待安装完成,安装完成后正常会自动运行,如果没有运行,可以去应用列表双击运行即可

image-20240425161045182

然后打开命令窗口,输入:ollama -v,可以看到版本信息

image-20240425161026879

同样,在浏览器输入http://127.0.0.1:11434/访问ollama服务,即可看到,运行的字样,表示本地运行成功了,下面进行安装大语言模型.

image-20240425163201117

2. 安装大语言模型

ollama安装完成后,下面进行下载运行大语言模型,本例采用llama2模型,当然还有其他模型,可以到github上面选择,命令窗口输入下面命令

ollama run llama2

然后等待安装完成即可,出现success 表示下载完成了,然后按ctrl+d 退出,

image-20240425161508422

然后再输入ollama list 即可看到下载的大语言模型列表,本例下载了两个,所以显示两个,下面我们安装cpolar内网穿透工具,实现远程也可以调用Ollama这个大语言模型框架,远程通信!

image-20240425162719276

3. 安装Cpolar工具

本例介绍的是windwos系统,所以cpolar安装在windwos上,点击下面地址访问cpolar官网,注册一个账号,然后下载并安装客户端.

Cpolar官网:https://www.cpolar.com/

  • windows系统:在官网下载安装包后,双击安装包一路默认安装即可。

cpolar安装成功后,在浏览器上访问本地9200端口【http://localhost:9200】,使用cpolar账号登录,即可看到Cpolar 管理界面,然后一切设置只需要在管理界面完成即可!

20230130105810

4. 配置公网地址

点击左侧仪表盘的隧道管理——创建隧道,创建一个ollama的公网http地址隧道!

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:11434
  • 域名类型:免费选择随机域名
  • 地区:选择China
  • host头域: 127.0.0.1:11434

点击创建(点击一次创建按钮即可,不要重复点击!)

image-20240425164541494

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https,两种都可以访问,下面选择其中一种进行远程访问

image-20240425164750350

在浏览器输入创建的公网地址,我们可以看到,同样看到了ollama 运行的字样,表示公网访问成功了!

image-20240425164932130

小结

为了更好地演示,我们在前述过程中使用了cpolar生成的隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址由随机字符生成,不太容易记忆。另外,这个地址在24小时内会发生随机变化,更适合于临时使用。

我一般会使用固定二级子域名,原因是我希望将网址发送给同事或客户时,它是一个固定、易记的公网地址(例如:ollama.cpolar.cn),这样更显正式,便于流交协作。

5. 固定公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20240425170206232

保留成功后复制保留成功的二级子域名的名称

image-20240425170229252

返回登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20240425170306512

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20240425170340455

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址二级名称变成了我们自己设置的二级子域名名称

image-20240425170405890

下面我们打开浏览器,输入cpolar中固定的公网地址,即可看到同样是访问成功了,这样一个固定的公网访问ollama 的公网地址就设置好了,下面我们在MaxKB中添加调用我们本地模型

image-20240425170625772

6. MaxKB 添加Olama

MaxKB是一个基于大语言的问答系统,可以说是一个前端界面,支持对接多个大语言模型,具体可以可以看一下Gitee开源地址了解:https://gitee.com/aqie-project/MaxKB,成功运行MaxKB,登录进去后,点击,系统设置,选择模型设置,再选择Ollama,然后点击添加模型

image-20240425171446841

前面4个参数正常填写选择即可,模型选择llama2,目前页面没有llama3选项,我们选择2即可.然后API域名输入cpolar公网地址,注意,这里只能输入域名

image-20240425171805984

然后看下面API key参数,这里需要一个key,这个key在我们最开始运行Ollama软件的时候,在运行的日志里面可以找到

image-20240425171915578

在右下角我们可以找到运行的小图标,右键点击

image-20240425172233489

然后查看日志位置

image-20240425172519452

打开这个名称为server.log的日志文件

image-20240425172611849

在这个文件最开始,我们可以看到key的信息,注意是下面框住的这一部分是keyimage-20240425172709998

然后把key 输入到API Key 框里面

image-20240425172831464

然后点击添加即可

image-20240425172942489

最后我们可以看到成功添加了,如果在添加过程中没有llama2的大语言模型,这里也会自动下载

image-20240425173035737

7.创建问答应用

点击应用,我们创建一个问答应用,模型可以看到选择我们刚刚添加的大语言模型

image-20240425173453802

创建完成后,点击演示,进入问答页面

image-20240425173607557

然后就可以进行对话了,llama2是一个英文模型,基本的回答都是英文,当然可以自己导入设置其他模型,方式也是一样的,由于运行在windows设备,设备配置越高,响应越快,这样一个智能问答应用就设置好了!

image-20240425174156925

通过今天的分享,相信你已经掌握了在Windows上本地搭建大语言模型框架Ollama,并将其集成到MaxKB中创建智能问答应用的方法。利用内网穿透工具cpolar,我们成功解决了无法使用本地或局域网IP的问题,让你的项目更加灵活和便捷。希望这篇教程能为你带来启发和技术上的帮助。如果你有任何疑问或者更好的建议,请在评论区留言交流。让我们一起探索更多AI的可能性!

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

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

相关文章

深度解析 Pytest 中的 conftest.py

关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 在使用 Pytest 进行测试的过程中,conftest.py 文件扮演着极为重要的角色…

【python】银行客户流失预测预处理部分,独热编码·标签编码·数据离散化处理·数据筛选·数据分割

数据预处理 通过网盘分享的文件:银行流失预测数据和代码 链接: https://pan.baidu.com/s/1loiB8rMvZArfjJccu4KW6w?pwdpfcs 提取码: pfcs 非数值特征处理 目的:将非数值特征转换为数值型,以便模型能够处理。方法: 地理位置&am…

回归预测 | MATLAB实现CNN-LSSVM卷积神经网络结合最小二乘支持向量机多输入单输出回归预测

回归预测 | MATLAB实现CNN-LSSVM卷积神经网络结合最小二乘支持向量机多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-LSSVM卷积神经网络结合最小二乘支持向量机多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实现CNN-LSSVM…

slam学习笔记7---状态量求导相关数学公式

前言:本来打算只是归纳一下数学求导相关公式,后面也写了旋转求导相关内容,哈哈。感觉有点发散把握不住呀。水平有限,欢迎评论区点出。 一、基本初等函数求导公式 ( C ) ′ 0 , C (C)0,C (C)′0,C为常数 ( x μ ) ′ μ x μ −…

32单片机串口数据接收、空闲IDLE中断详解

一、前提说明 一开始写单片机程序的时候不太清楚空闲中断这个东西,每次用串口接收数据,都要再开一个定时器,在定时器内进行倒计时,每次接收数据就重置计时时间,计时结束就触发中断,再判断所有接收的数据&am…

深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道20241223

深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道 在现代后端开发中,表单验证是保证数据完整性和服务稳定性的核心环节。如何优雅、高效地实现表单验证,同时提供人性化的错误提示,是每位开发者的必修课。在本文中…

掌握 Ansys ACP 中的参考方向:简化复杂的复合材料设计

概括 在复合材料分析领域,精度至关重要,尤其是在定义纤维方向和铺层时。Ansys ACP(Ansys Composite PrepPost)提供了强大的工具来建立参考方向,这是实现精确结构模拟的关键步骤。在本博客中,我们将揭开在 …

Vue2学习(一)——Vue简介、Vue指令与指令修饰符

一、Vue简介 Vue是一套用于构建用户界面的渐进式框架。 所谓渐进式就是循序渐进,不一定非得把Vue中的所有API都学完才能开发Vue,可以学一点开发一点。 Vue2官网地址:https://v2.cn.vuejs.org/ Vue3官网地址:https://cn.vuejs…

Redis--通用命令学习

目录 一、引言 二、基础命令 1.set 2.get 3.keys 3.1 keys ? 3.2 keys * 3.3 keys [abe] 3.4 keys [^] 3.5 keys [a-b] 4.exists 5.delete 6.expire 7.ttl 8.type 三、Redis中的过期策略(面试题) 1.惰性删除 2.定期删除 …

Linux程序设计(第四版)| 学习笔记

上次学习Linux相关内容还是上学的时候为了应付考试,最近有项目涉及Linux,重新学习以下。 很多年前关于Linux的总结 一、入门 1.概念 (1) UNIX 1)定义:指的是一种遵循特定规范的计算机操作系统。 2)特点:简单性、集中性、可重用…

PostgreSQL 的历史

title: PostgreSQL 的历史 date: 2024/12/23 updated: 2024/12/23 author: cmdragon excerpt: PostgreSQL 是一款功能强大且广泛使用的开源关系型数据库管理系统。其历史可以追溯到1986年,当时由加州大学伯克利分校的一个研究团队开发。文章将深入探讨 PostgreSQL 的起源、…

Ubuntu22.04 LTS 安装nvidia显卡驱动

准备跑老师给定的Github上的多模态源码,但是用了这么久ubuntu还没有尝试过安装nvidia驱动,好在也是一次成功,于是记录下来。 借鉴的是Ubuntu22.04安装显卡驱动(高速、避错版)-CSDN博客这篇文章,按照流程来基本没有问题,不过个人觉得有些步骤比较冗余,所以记录下来 主要…

WPS工具栏灰色怎么办

WPS离线不登录,开启工具栏等相关功能 当你在使用WPS的过程中,若因网络问题或其他特殊原因,导致无法登录使用WPS时,可根据以下步骤开启离线兼容模式,开启此模式后,可在未登录的状态下,激活并使用…

国标GB28181-2022平台EasyGBS:安防监控中P2P的穿透方法

在安防监控领域,P2P技术因其去中心化的特性而受到关注,尤其是在远程视频监控和数据传输方面。P2P技术允许设备之间直接通信,无需通过中央服务器,这在提高效率和降低成本方面具有明显优势。然而,P2P技术在实际应用中也面…

Mac Android studio 升级LadyBug 版本,所产生的bug

当Build 出现,这样的文字以后: Your build is currently configured to use incompatible Java 21.0.3 and Gradle 7.3.3. Cannot sync the project. We recommend upgrading to Gradle version 8.9. The minimum compatible Gradle version is 8.5. …

com.google.common.collect.ImmutableList$SerializedForm

今天AndroidStudio安装了个2021版本的,gradle用了7.3.3,创建项目后控制台总是有这样一个错误: Unable to load class com.google.common.collect.ImmutableList$SerializedForm. This is an unexpected error. Please file a bug containing…

Docker部署Sentinel

一、简介 是什么:面向分布式、多语言异构化服务架构的流量治理组件 能干嘛:从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性 官网地址:https://sentinelguard.io/zh-c…

HTMLCSSJavaScriptDOM 之间的关系?

一、HTML 中文名:超文本标记语言 英文名:HyperText Markup Language HTML是一种用来结构化Web网页及其内容的标记语言。 HTML 由一系列的元素组成,这些元素可以用来包围不同部分的内容,使其以某种方式呈现或者工作。 图Ⅰ 每…

Hadoop集群(HDFS集群、YARN集群、MapReduce​计算框架)

一、 简介 Hadoop主要在分布式环境下集群机器,获取海量数据的处理能力,实现分布式集群下的大数据存储和计算。 其中三大核心组件: HDFS存储分布式文件存储、YARN分布式资源管理、MapReduce分布式计算。 二、工作原理 2.1 HDFS集群 Web访问地址&…

位运算符、标记位传参

位运算符: 位运算符作用于操作数的位(bit)。 按位与(&)对应位都为1时结果为1 int a 5; // 0101 int b 3; // 0011 int result a & b; // 0001 按位或(|)对应位至少有一个为1时结…