MaxKB+Ollama+Llama3基于AI大模型部署本地知识库

本地知识库问答系统结合了本地知识库与自然语言处理技术,为用户提供高效、准确的知识问答服务。而RAG(Retrieval Augmented Generation-检索增强生成)技术是该系统中的一个核心组成部分。其流程为:

文本处理 提问原理
1.上传文档 1. 用户发起提问
2.文本拆分 2. 将问题向量化
3.本地存储分段 3. 查找应用关联知识库
4.分段文本向量化 4. 召回相似度高的 Top K分段
5.存入本地向量库 5. 生成 Prompt
6. 提交 AI 模型,生成回答

MaxKB

安装:

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

注: 账号: admin ,密码:MaxKB@123..

open-webui

安装:

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

可选:阿里镜像,国内下载安装会更快些

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always registry.cn-shenzhen.aliyuncs.com/funet8/open-webui:main

ollama

安装:

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

操作:

#启动
systemctl start ollama

#停止
systemctl stop ollama

#重启
systemctl daemon-reload 
systemctl restart ollama

命令:

查看帮助
ollama -h

#执行如下命令(将下载并运行 Qwen2 的 0.5B 的 Chat 模型)
ollama run qwen2.5:0.5b-instruct

#查看下载的模型
ollama list 

#查看运行中的模型
ollama ps 

模型:

ollama官方的模型仓库:https://ollama.com/library

gemma(谷歌大模型)、llama3(脸书大模型)、qwen(阿里千问大模型)

其他:

环境变量

OLLAMA_HOST:Ollama监听的网络接口。列:OLLAMA_HOST=0.0.0.0:11434

OLLAMA_MODELS:模型镜像的存储路径。列:OLLAMA_MODELS=/usr/share/ollama/.ollama/models

OLLAMA_KEEP_ALIVE:模型在内存中的存活时间。列:OLLAMA_KEEP_ALIVE=24h

OLLAMA_NUM_PARALLEL:可同时处理的用户请求数量。列:OLLAMA_NUM_PARALLEL=4

OLLAMA_MAX_LOADED_MODELS:可同时加载的模型数量。列:OLLAMA_MAX_LOADED_MODELS=4

CUDA_VISIBLE_DEVICES:指定运行Ollama时使用的GPU。列:CUDA_VISIBLE_DEVICES=0,1

注: 修改环境变量,记得重启服务保证其配置生效

模型默认存放目录

macOS: ~/.ollama/models
Linux: /usr/share/ollama/.ollama/models
Windows: C:\Users<username>.ollama\models

问题一

提示11434端口被占用

Error: listen tcp 127.0.0.1:11434: bind: address already in use

解决方案

编辑ollama.service文件,在ExecStart上添加Environment="OLLAMA_HOST=0.0.0.0:11434"

vim /etc/systemd/system/ollama.service

修改:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/algorithm/LLM_model/models"
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama

问题二

拉取Ollama模型时,提示没有权限

permission denied:pull Permission Denied

解决方案

为ollama模型存放的目录赋予权限

sudo find /usr/share/ollama/.ollama/models -type f -exec chown ollama:ollama {} \;
sudo find /usr/share/ollama/.ollama/models -type d -exec chown ollama:ollama {} \;
sudo find /usr/share/ollama/.ollama/models -type f -exec chmod 644 {} \;
sudo find /usr/share/ollama/.ollama/models -type d -exec chmod 755 {} \;

网页嵌入AI客服

<script async defer src="http://127.0.0.1:11434/api/application/embed?protocol=http&host=127.0.0.1:11434&token=ba5138e232389eba">

修改样式

<script>
    #maxkb {
        position: fixed;
        right: 20px; /* 根据需要调整距离右边的距离 */
        bottom: 20px; /* 根据需要调整距离底边的距离 */
        z-index: 9999; /* 确保悬浮窗在最上层 */
        border: none; /* 去除边框,如果需要的话 */
        background-color: rgba(255, 255, 255, 0.9); /* 可选:添加背景色和透明度 */
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* 可选:添加阴影效果 */
    }
</script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容