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

news2024/12/25 18:55:19

文章目录

    • 前言
    • 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.coloradmin.cn/o/2265419.html

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

相关文章

neo4j无法导入csv文件

文章目录 问题解决方案1. 检查Neo4j的neo4j.conf配置文件2. 确保文件路径正确3. 将CSV文件放置到import目录4. 重启Neo4j服务器 问题 neo4j browser中导入csv文件报错无法导入 具体:输入下列语句LOAD CSV WITH HEADERS FROM “file:///D:/KG/relation.csv” AS lin…

WebLogic T3反序列化漏洞(CVE-2018-2628)--vulhub

WebLogic T3反序列化漏洞(CVE-2018-2628) WebLogic在通信过程中使用T3协议传输数据,涉及到了序列化和反序列化操作。 T3协议概述 T3协议是Oracle的私有协议,所以公开的相关资料比较少,这里结合其他师傅的博客简单对T3协议进行一个简要分析…

在瑞芯微RK3588平台上使用RKNN部署YOLOv8Pose模型的C++实战指南

在人工智能和计算机视觉领域,人体姿态估计是一项极具挑战性的任务,它对于理解人类行为、增强人机交互等方面具有重要意义。YOLOv8Pose作为YOLO系列中的新成员,以其高效和准确性在人体姿态估计任务中脱颖而出。本文将详细介绍如何在瑞芯微RK3588平台上,使用RKNN(Rockchip N…

scala借阅图书保存记录(三)

BookDAO package org.app package daoimport models.BookModelimport scala.collection.mutable.ListBuffer//图书,数据操作 class BookDAO {//加载图书,从文件中读入def loadBooks(): ListBuffer[BookModel] {val books new ListBuffer[BookModel]()…

无标记动作捕捉系统如何赋能体育运动分析,推动体育科学发展?

随着技术的不断发展与社会的需要,健康、科学运动成为了大众关注的一个热词。在韩国首尔的中央大学,其生物运动临床康复实验室和运动训练中心就致力于通过生物力学分析来研究与运动相关的伤害,并通过定制科学的训练计划来帮助运动员改进他们的…

Unittest02|TestSuite、TestRunner、HTMLTestRunner、处理excel表数据、邮件接收测试结果

目录 八、测试套件TestSuite和测试运行器TestRunner 1、基本概念 2、创建和使用测试套件 3、 自动发现测试用例、创建测试套件、运行测试 4、生成html的测试报告:HTMLTestRunner 1️⃣导入HTMLTestRunner模块 2️⃣运行测试用例并生成html文件 九、unittest…

[搜广推]王树森推荐系统笔记——曝光过滤 Bloom Filter

曝光过滤 & Bloom Filter 曝光过滤主要在召回阶段做,主要方法是Bloom Filter 曝光过滤问题 -如果用户看过某个物品,则不再把该物品曝光给该用户。 - 原因是重复曝光同一个物品会损害用户体验 - 但长视频通常没有曝光过滤(youtube&…

JS CSS HTML 的代码如何快速封装

我们为什么要封装代码,是因为封装后的代码,会显得非常美观,减少代码的复用,方便我们更好的去维护代码,不用一个一个页面的去找去改,直接封装好的代码里面去改就可以了 目录 1.html代码封装 2.CSS代码封装 …

acme ssl证书自动续签 nginx

参考 github 官方操作 ,acme操作说明 说下我的操作 安装 acme.sh curl https://get.acme.sh | sh source ~/.bashrc 2.注册 acme.sh --register-account -m 123qq.com 如果你在配置 acme.sh 时选择了其他 CA(如 Let’s Encrypt)&#xff…

【专题】2024抖音电商母婴行业分析报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p38651 在数字化浪潮的席卷下,抖音电商母婴行业正经历着深刻变革。当下,年轻一代父母崛起,特别是 24 至 30 岁以及 18 至 23 岁的群体成为抖音母婴行业兴趣人群的主力军。他们带来全新育儿理念&…

设计模式之 abstract factory

适用场景 一个系统要独立于它的产品的创建、组合和表示时。一个系统要由多个产品系列中的一个来配置时。当你要强调一系列相关的产品对象的设计以便进行联合使用时。当你提供一个产品类库,而只想显示它们的接口而不是实现时 架构演示 首先client这个东西可以接触到…

UE5仿漫威争锋灵蝶冲刺技能

这两天玩了一下漫威争锋Marvel Rivals,发现是UE5做的,对里面一些角色技能挺感兴趣的,想简单复刻一下技能功能,顺便复习一下学过的知识 首先把摄像机设置调整一下 CameraBoom里搜索lag 把摄像机延迟关掉 ,这样摄像机就…

尼伽OLED赋能中国移动,打造移动AI数字人透明显示屏

随着人工智能和显示技术的不断进步,中国移动紧跟科技潮流,将移动AI数字人技术与透明屏完美结合,为用户带来了前所未有的智能交互体验。基于中国移动九天大模型生成的数字人小天,便是这一创新技术的典型代表。它不仅能够实现定点播…

goview——vue3+vite——数据大屏配置系统

低代码数据大屏配置系统: 数据来源是可以动态api配置的: 配置上面的api接口后,在数据过滤中进行数据格式的转化。 以上内容,来源于https://gitee.com/dromara/go-view/tree/master-fetch/ 后端代码如下,需要更改…

GitLab安装|备份数据|迁移数据及使用教程

作者: 宋发元 最后更新时间:2024-12-24 GitLab安装及使用教程 官方教程 https://docs.gitlab.com/ee/install/docker.html Docker安装GitLab 宿主机创建容器持久化目录卷 mkdir -p /docker/gitlab/{config,data,logs}拉取GitLab镜像 docker pull gi…

JavaWeb Servlet的反射优化、Dispatcher优化、视图(重定向)优化、方法参数值获取优化

目录 1. 背景2. 实现2.1 pom.xml2.2 FruitController.java2.3 DispatcherServlet.java2.4 applicationContext.xml 3. 测试 1. 背景 前面我们做了Servlet的一个案例。但是存在很多问题,现在我们要做优化,优化的步骤如下: 每个Fruit请求都需…

selenium执行js

JS知识 获取元素 document.getElement 移除属性:removeAttribute("xx") 窗口移动:window.scrollTo(0, document.body.scrollHeight)方法 drivier.execute_script(js)场景: 日期选择框,不能输入,只能设置…

《信管通低代码信息管理系统开发平台》Linux环境安装说明

1 简介 信管通低代码信息管理系统应用平台提供多环境软件产品开发服务,包括单机、局域网和互联网。我们专注于适用国产硬件和操作系统应用软件开发应用。为事业单位和企业提供行业软件定制开发,满足其独特需求。无论是简单的应用还是复杂的系统&#xff…

static 和const的作用面试常问

点击上方"蓝字"关注我们 01、static 关键字 >>> 1. 局部变量 作用:将变量的生命周期延续到程序的整个运行期间,而不仅仅是它所在的函数调用期间。 void func() {static int count = 0; // 只会初始化一次 count++; printf("%d\n", count)…

VS2022 中的 /MT /MTd /MD /MDd 选项

我们有时编译时,需要配置这个 运行库,指定C/C++运行时库的链接方式。 如下图 那么这些选项的含义是什么? /MT:静态链接多线程库 /MT选项代表“Multi-threaded Static”,即多线程静态库。选择此选项时,编译器会从运行时库中选择多线程静态连接库来解释程序中的代码,…