使用Ollama搭建自己的简单知识库

现在大模型工具越来越流行了,文心一言和豆包已经慢慢融入大家的工作生活中了,我们有问题都可以让大模型帮我们回答。不过这里有个问题,就是公开的AI大模型工具回答的都是通用型的问题,不够有针对性,比如我就想问一下,我自己上一篇论文中的某些内容,公开大模型工具往往是无法回答我们的,因为公开的大模型都是基于目前的数据训练得到的,显然它并不知道我本地新增的信息。而且,就算有接口可以提交我们的信息,由于安全和保密的需求,也不方便直接把我们的信息都上传。所以,我们可以在自己本地搭建我们自己的大模型,基于大模型构建我们自己的知识库。

  1. Ollama安装
    要搭建我们自己的大模型,就要把目前有的大模型下载下来,因为我们基本上不具备自己本地训练大模型的条件。下载大模型进行本地部署,目前最方便的工具是Ollama。
    Ollama是一个轻量级、可扩展的框架,用于在本地机器上构建、运行和管理大型语言模型(LLM)。其核心价值在于简化在本地运行大语言模型的复杂过程,降低使用门槛,使得即便是非专业用户也能轻松上手。要使用Ollama首先要下载Ollama安装包,可以去Ollama官网(https://ollama.com/)下载最新的安装包。
    如果是Windows系统的话,直接下载安装包即可安装。
    如果是Linux可以运行命令

curl -fsSL https://ollama.com/install.sh | sh

我因为工作需要,我的服务器不能连接外网,所以我需要先下载安装包和安装文件,在用户目录下新建一个ollama目录,把安装包下载到这里,再修改安装文件,在本地进行安装。

curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

主要是修改install.sh文件

status "Installing ollama to $OLLAMA_INSTALL_DIR"
$SUDO install -o0 -g0 -m755 -d $BINDIR
#$SUDO install -o0 -g0 -m755 -d "$OLLAMA_INSTALL_DIR"
$SUDO install -o0 -g0 -m755 -d ./ollama-linux-amd64  $BINDIR/ollama

安装后目录结构如下:



安装完之后,还要配置一下Ollama模型的下载目录。

# 执行命令
vim ~/.bashrc
# 配置 OLLAMA_MODELS 环境变量自定义路径
export OLLAMA_MODELS=/home/yjs/ollama/ollama_cache

Windows下的话,修改一下环境变量就可以了:



Ollama有几个简单常用的命令如下:
查看ollama版本

ollama -v
ollama version is 0.1.31

查看已下载模型

ollama list

NAME        ID              SIZE      MODIFIED    
gemma:2b    b50d6c999e59    1.7 GB    3 hours ago

ollama的停止和启动

sudo systemctl stop ollama # 停止服务
sudo systemctl start ollama # 启动服务
# 监听http服务,指定GPU
export OLLAMA_HOST="0.0.0.0:11434"
export CUDA_VISIBLE_DEVICES="0"
ollama serve # 启动

当我们把大模型下载到Ollama的模型存储文件夹中后,可以看到Ollama模型:



我们可以直接运行这个模型:


  1. MaxKB可视化界面
    只是在命令行中运行的话,有点麻烦,下面我们来看看如果给Ollama大模型加上一个界面。Ollama界面有很多方案,比较流行的有Open WebUI等工具。我这里用的是国产的MaxKB。MaxKB是一款基于大语言模型和 RAG 的开源知识库问答系统,广泛应用于智能客服、企业内部知识库、学术研究与教育等场景。这个东西最大的好处是,不仅仅是把Ollama界面可视化了,还可以基于下载的大模型构建自己的知识库,随着知识库文件的增加,问答会越来越准确。
    要安装MaxKB,方法和Open WebUI差不多,也是基于docker来安装的。
    在线安装:
# Linux 操作系统
docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb

# Windows 操作系统
docker run -d --name=maxkb --restart=always -p 8080:8080 -v C:/maxkb:/var/lib/postgresql/data -v C:/python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb

离线安装:
1.下载安装包
2.根据install.conf配置安装信息
3.运行安装脚本
具体可以参考官方安装文档:离线安装 - MaxKB 文档
MaxKB启动后,浏览器输入:http://10.25.155.191:8080/



启动Ollama后,可MaxKB中设置自己的大模型。



如果网络通的话,就直接选择需要的模型,系统会自动下载,但是如果网络不好或在内网,那就要提前自己收到下好,然后到存储ollama大模型的文件夹中,把模型文件拷贝下来,复制到服务器的ollama模型存放路径下。
接下来设置我们的提示词即可。

  1. 本地知识库构建
    如果不设置知识库,那么大模型只能根据他训练时候所包含的数据来回答问题,而无法对一些新的问题给出答案。使用RAG技术,可以使得模型在不进行微调的前提下具有获取新知识的能力。接下来,我们在“知识库”选项卡中创建我们自己的知识库。




    创建后,可以上传我们自己的文档




    上传成功即可,表示我们这个文档已经加入我们的知识库了。

    接下来,在应用设置中关联知识库即可。


    通过Ollama和MaxKB的结合,可以进一步优化提示词和分段方式,提高命中率,从而打造符合我们需要的本地知识库。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容