本地部署大模型并使用知识库Windows下Ollama+Docker+MaxKB安装的记录

devtools/2024/9/22 22:14:50/

概要

本文介绍本地部署大模型和知识库的小白方法,可以运行较多种类的大模型,使用的软件为docker和ollama以及MaxKb作为知识库前端。

下载

各安装包可以百度去官网或者github下载或使用,也可以点击下面的的链接和我下载相同的版本。

 ollama

docker

MaxKB

安装docker

打开安装包然后一路默认即可。

选择它推荐的配置。

安装ollama

然后安装ollama。双击然后一路默认。

d3b94e787a35486c8433b76e8970b760.png

 

 安装完成:

win+R输入cmd进入命令行,输入ollama

678a73c792dd413599735174ee80fce1.png

去挑一个你能带动的模型点击去:

下载模型并运行

library (ollama.com)

点进去,左边选参数大小,右边复制命令。win+R输入cmd回车。右键粘贴。

468105c328d64936a95eaa2118950f4b.png

我是2060,和我差不多普通人建议7B以下。

运行 7B 模型需要至少 8GB 的 RAM,运行 13B 模型需要 16GB RAM,运行 33B 模型需要 32GB RAM。我是32gb,但是显卡不够强,我会一步步提高参数量看看能运行到哪一个为止。

各位同学任意选一个即可。

比如:

ollama run qwen2

管理命令:

serve:启动 Ollama
create:从 Modelfile 创建模型
show:显示模型信息
run:运行模型
pull:从注册表中拉取模型
push:将模型推送到注册表
list:列出模型
ps:列出正在运行的模型
cp:复制模型
rm:删除模型
help:查看任何命令的帮助

下载之后:


>>> 你是谁?
I am a virtual assistant.>>> 你能用中文回答我吗?
Yes, I can assist you in Chinese as well as English.>>> 从现在开始使用中文
Of course! Please let me know if there is anything else I can help with.>>> ok,给我把这句话翻译成中文:你是谁
Sure, I'd be happy to help you translate that sentence into Chinese for you. 你是谁?>>> ok,给我把这句话翻译成中文:i am wuyi
I'm sorry, but I don't have that information in my system. Would you like me to find it for you?>>> yes
Okay, let me see what I can do. Please give me a moment.

我下的是比较一般的模型,我们试一试另外一个:

 千问数学版:

ollama run qwen2-math

f92d9902152e45359cadb888f2cd0f77.png

好吧,好像还是很呆。 

llama3.1的8b版本 

ollama run llama3.1

c74f38483a9344e584ae3f7b50805662.png

也是错了。可能是我电脑性能限制?

总之我们的模型测试的差不多了。

按ctrl+d退出问答。

安装MaxKB

接着,安装MaxKB。

win+R打开命令行:

docker run -d --name=maxkb -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb

初始: 

# 用户名: admin
# 密码: MaxKB@123..

等待下载完成,之后docker会自动启动。

点击下面的连接,你应该能够看见 ,使用账号密码登录。

 MaxKB

27767eb54a8645c68a6cfcbd386aef93.png

 管理模型:

34693fc1f83c4df3bb3d8f795d116003.png 

添加模型

选择ollama: 

bdffdca1ebd14ee9af89bb4acd63b807.png 

模型名称随意,公私有自己考虑,如果你要给其他人用就用公有。 

 503b0bb2542d4073b3154f1b49754d05.png

模型选择:

在命令行输入:ollama -list

然后复制名字到基础模型那一栏。

f83d7817316e4241a0b8eace4a473973.png

当然了,你直接下拉栏中选择一个也可以哦。 

APi域名

如果你的ollama是安装在容器中,那么你可以直接在api域名处输入你的ip地址加上11434.

注意我们的MaxKB是安装在docker容器中的,所以访问外部的ollama需要使用。

http://host.docker.internal:11434/

apikey随意填写。

创建应用

e20c505b2e9843c29edf5dbcd6aae9ac.png

初次使用:

56d46bd8cec54dff81b52d09e1e652f5.png

创建:选择模型:

00125033393e44d5b2cf9146ff01a3f2.png

请注意,这里这样使用相当于只是多了一个前端,不过你可以对使用进行修改。 

 5e0eed9018a345508368da802670e214.png

切换模型即可得到新模型的回答:

b25c34dabf4f4ae4b6c7f12da59514f9.png

 使用就是这么简单。

创建知识库

ac9d1f066a69407da770d936f8c872ca.png

fa20b27933a1463e86bbc81b74cc935c.png

如果你选择web站点并且填写csdn就会如图所示:

c5a839e29f954240a278047893f5a22b.png

当然了事实上不是这么用的,你得挑选网页上的内容,不能直接把主页扔进去。

一下子多了一百多条:

f0014ba64428496db3cbed852fa29978.png

本地文档上传会更加方便:

31e9f823179348fca395bb2500101d75.png

 点击上传文档,选中文件上传,右下角创建导入:

 

 de119abe92cf45bda1a590033f014f54.png

 

871b29fafeb949eca620ed28329b4441.png

 

 

选择上传文档会进行自动智能分段,右下角导入即可。

导入后如图:

3a3bd1d43f4f4ee5bbb54440bf212b99.png

聊天可以选择关联知识库:

 未关联:

0307fdb45c844694b0e38dd7f4a1d023.png

关联后:

8dcf01524a134dc4a0b60d1c16e26a6b.png

比较难用啊。

换个问题:

这不就来了吗?

ed341a715b9e4a2cba8488ab017cbdaa.png

 创建函数库

f616c95453e2498f8573c276da382054.png

这个就不多介绍了。记录就到这里,通宵有点累了。 

 


http://www.ppmy.cn/devtools/115164.html

相关文章

Java 每日一刊(第13期):this super static

“优秀的代码不仅仅是给机器看的,更是给人看的。” 前言 这里是分享 Java 相关内容的专刊,每日一更。 本期将为大家带来以下内容: this 关键字super 关键字static 关键字 this 关键字 this 关键字是 Java 中最常见的关键字之一&#xf…

C++11 Lambda 多参数传递及外部this传递

const SocketChannelPtr& channel getChannel(connfd); ....... //lambda函数定义&#xff1a; channel->onread [this, &channel](Buffer* buf) { HttpClientContext* ctx channel->getContext<HttpClientContext>(); ...... }; 调用&#xff1a;…

【Linux】基础IO认识(2)

基础IO认识&#xff08;2&#xff09; 1、补充系统调用1、1、read调用1、2、stat 2、重定向2、1、文件描述符的分配规则2、2、实现重定向(dup2) 3、缓冲区的理解3、1、缓冲区典型实例3、2、缓冲区代码形式展示 4、深化和实践利用4、1、在shell中加入重定向4、2、简单实现库的封…

【计算机网络】应用层序列化

目录 一、序列化和反序列化二、重新理解 read、write、recv、send 和 tcp 为什么支持全双工三、Jsoncpp 一、序列化和反序列化 如果我们要实现一个网络版的加法器&#xff0c;需要把客户端的数据发给服务端&#xff0c;由服务端处理数据&#xff0c;再把处理结果发给客户端。 …

Pytorch构建神经网络多元线性回归模型

1.模型线性方程y W ∗ X b from torch import nn import torch#手动设置的W参数&#xff08;待模型学习&#xff09;&#xff0c;这里设置为12个&#xff0c;自己随意设置weight_settorch.tensor([[1.5,2.38,4.22,6.5,7.2,3.21,4.44,6.55,2.48,-1.75,-3.26,4.78]])#手动设置…

pthread_cond_signal 和pthread_cond_wait

0、pthread_join()函数作用&#xff1a; pthread_join() 函数会一直阻塞调用它的线程&#xff0c;直至目标线程执行结束&#xff08;接收到目标线程的返回值&#xff09;&#xff0c;阻塞状态才会解除。如果 pthread_join() 函数成功等到了目标线程执行结束&#xff08;成功获取…

第J3-1周:DenseNet算法 实现乳腺癌识别(pytorch)

>- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营]中的学习记录博客** >- **&#x1f356; 原作者&#xff1a;[K同学啊]** &#x1f3e1; 我的环境&#xff1a; 语言环境&#xff1a;Python3.8 编译器&#xff1a;Jupyter Notebook 深度学习环境&#x…

如何创建模板提示prompt

定义模型 from langchain_ollama import ChatOllamallm ChatOllama(base_url"http://ip:11434",model"qwen2",temperature0,tool_choice"auto" )什么是提示模板&#xff1f; 它的目的是根据不同的输入动态生成特定格式的文本&#xff0c;以便…