本地知识库问答系统结合了本地知识库与自然语言处理技术,为用户提供高效、准确的知识问答服务。而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>