【大模子】Ollama+WebUI+AnythingLLM搭建本地知识库

  论坛元老 | 2025-2-22 06:44:04 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1854|帖子 1854|积分 5562

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目次
1 摆设Ollama
1.1 下载镜像ollama
1.2 运行ollama
1.3 验证
2 模子选型
3 安装模子
3.1 选择模子安装
 3.2 删除模子(选看)
4 安装webUI
4.1 拉镜像
 4.2 启动服务
5 访问
5.1 注册
5.2 登录 
5.3 设置
6 利用 
7 利用api来调用
8 安装AnythingLLM搭建本地知识库
8.1 拉取镜像
8.2 创建目次等
8.3 为目次赋权限
8.4 启动服务
8.5 验证访问
8.6 设置 AnythingLLM,搭建本地知识库
8.7 知识库管理


   前言:摆设属于自己的大模子,优点:离线运行、隐私掩护、开辟和测试,共同AnythingLLM搭建本地知识库,同时支持API接口调用
  1 摆设Ollama

Download Ollama on macOS
上面可下载不同版本的,这里是docker版本的
1.1 下载镜像ollama

  1. docker pull ollama/ollama:latest
复制代码

1.2 运行ollama

  1. docker run -d \
  2.   -v /opt/ai/ollama:/root/.ollama \
  3.   -p 11434:11434 \
  4.   --restart always \
  5.   --name ollama \
  6.   ollama/ollama:latest
复制代码
1.3 验证

  1. http://IP:11434/
复制代码
 

2 模子选型

根据电脑选型


3 安装模子

3.1 选择模子安装

不是都需要按 根据需求安装,这里去找https://ollama.com/library
  1. docker exec -it  ollama ollama run gemma:2b  
  2. docker exec -it  ollama ollama run llama3.1  
  3. docker exec -it  ollama ollama run phi3  
  4. docker exec -it  ollama ollama run qwen2.5
复制代码
 这里就注意了模子版本了哦,我就没有利用上面的 现在了下面的这个
  1. docker exec -it  ollama ollama run qwen2.5:1.5b
复制代码
 3.2 删除模子(选看)

  1. ollama list
  2. ollama rm  模型名称
复制代码
4 安装webUI

4.1 拉镜像

  1. docker pull ghcr.io/open-webui/open-webui:main
复制代码
 4.2 启动服务

  1. docker run -d -p 3001:8080 --add-host=host.docker.internal:host-gateway -e OLLAMA_BASE_URL="http://IP:11434" -v open-webui:/app/backend/data  --name open-webui --restart always ghcr.io/open-webui/open-webui:main   # IP 要记得改
复制代码
5 访问

  1. http://IP:3001
复制代码
5.1 注册


5.2 登录 


5.3 设置

右上角可设置体系复兴语言和规则

6 利用 



7 利用api来调用

  1. import requests
  2. import json
  3. # 设置API端点和请求数据
  4. api_url = "http://IP:11434/api/generate"  # 替换为实际的API端点
  5. payload = {
  6.     "model": "qwen2.5:1.5b", # 你使用的模型
  7.     "prompt": "这是我第一次来测试,为什么我问的每次都不一样",  # 替换为实际的输入文本
  8.     "stream": False
  9. }
  10. # 发送POST请求
  11. response = requests.post(api_url, headers={"Content-Type": "application/json"}, data=json.dumps(payload))
  12. # 处理响应数据
  13. if response.status_code == 200:
  14.     response_data = response.json()
  15.     # 提取并打印所需的信息
  16.     print(response_data)  # 假设响应数据中包含"generated_text"字段
  17.     print(response_data['response'])  # 假设响应数据中包含"generated_text"字段
  18. else:
  19.     print(f"Error: {response.status_code}, {response.text}")
复制代码
8 安装AnythingLLM搭建本地知识库



  • 是一款私人ChatGPT工具,由LangChain公司(原Mintplex Labs Inc.)开辟。
  • 它是一个全栈应用程序,能够将任何文档、资源或内容片段转化为上下文,供任何大语言模子(LLM)在谈天时作为参考利用。
  • AnythingLLM旨在为用户提供构建私有ChatGPT的便利,利用户能够充实利用现有的LLM技术,在私有环境中构建自己的ChatGPT。
主要功能:
多用户管理和权限控制: 让团队协作更轻松,每个人都能安全地利用 LLM。
AI Agent 加持: 内置强大的 AI Agent,可以执行网页浏览、代码运行等复杂任务,自动化程度更高。
可嵌入谈天窗口: 轻松集成到您的网站或应用中,为用户提供 AI 驱动的对话体验。
广泛的文件格式支持: 支持 PDF、TXT、DOCX 等多种文档类型,满足不同场景需求。
向量数据库管理: 提供简朴易用的界面来管理向量数据库中的文档,方便知识管理。
灵活的对话模式: 支持谈天和查询两种对话模式,满足不同场景需求。
信息来源追踪: 谈天过程中会提供引用的文档内容,方便追溯信息来源,增强结果可信度。
多种摆设方式: 支持 100% 云摆设,也支持本地摆设,满足不同用户的需求。
自定义 LLM 模子: 可以利用您自己的 LLM 模子,定制化程度更高,满足个性化需求。
高效处理大型文档: 相较于其他文档谈天机器人办理方案,AnythingLLM 在处理大型文档时服从更高,本钱更低,最多可节省 90% 的本钱。
开辟者友爱: 提供全套开辟者 API,方便自定义集成,扩展性更强。
8.1 拉取镜像

  1.   docker pull mintplexlabs/anythingllm
复制代码
8.2 创建目次等

  1. export STORAGE_LOCATION=$HOME/anythingllm && \
  2. mkdir -p $STORAGE_LOCATION && \
  3. touch "$STORAGE_LOCATION/.env"
复制代码
 这个命令可检查目次
  1. ls -la $STORAGE_LOCATION
复制代码
8.3 为目次赋权限

  1. cd root
  2. # 为目录anythingllm赋写权限
  3. chmod 777 anythingllm
复制代码
8.4 启动服务

这个命令可以
  1. sudo docker run -d \
  2. --name anythingllm \
  3. --add-host=host.docker.internal:host-gateway \
  4. --env STORAGE_DIR=/app/server/storage \
  5. --health-cmd "/bin/bash /usr/local/bin/docker-healthcheck.sh || exit 1" \
  6. --health-interval 60s \
  7. --health-start-period 60s \
  8. --health-timeout 10s \
  9. --cap-add SYS_ADMIN \
  10. -p 3002:3001/tcp \
  11. --restart=always \
  12. --user anythingllm \
  13. -v ${STORAGE_LOCATION}:/app/server/storage \
  14. -v ${STORAGE_LOCATION}/.env:/app/server/storage/.env \
  15. -w /app \
  16. mintplexlabs/anythingllm
复制代码
--add-host 设置是为了访问同台机器上的ollama服务
8.5 验证访问

http://IP:3002/
8.6 设置 AnythingLLM,搭建本地知识库


选择大模子,在这里我们选择刚刚安装好的 Ollama,然后设置参数:
指定 Ollama Base URL 为 http://host.docker.internal:11434  (我没有变直接利用默认)
指定 Chat Model Selection 为 qwen2.5:1.5b
指定 Token context window 为 4096 (这里的 token 数量视情况而定,一般来说越大会越正确但分析等待时间越长)

 




 后面一步我跳过了

确认相干信息之后,订定工作空间名称,下一步,就会得到如下界面


这个时候就可以上传文档,并将文档移入工作区,作为本地知识库 



  • 这个时候就可以举行问答测试了,如下图。第一次未上传本地文件提问时,LLM 并没有给出答案,在上传了本地文件作为知识库后,再次提出雷同问题,LLM 根据知识库内容给出了相应的回复。
 

8.7 知识库管理

固然这些是最简朴的本地知识库搭建,除此之外 AnythingLLM 还提供了灵活的设置供给管理,可以设置例如语料分割参数、修改 Chat mode、修改 Embedding chunk 的大小(用于设置向量模子处理资料的颗粒度)等等。
别的值得说明一下的是,一般来说,参数更大的模子处理能力以及回复的内容结果会更好,举个例子,在之前用 Ollama 下载的 llama3.1:8b 模子与 llama3.1:70b 模子相比,肯定是 llama3.1:70b 的结果更好。
扩展:在大模子中,b 指的是 10 亿的参数量,8b就是 80 亿的参数,70b 就是 700 亿的参数。
当前最新开源的 Meta 的 llama3.1:405b 就意味着有 4050 亿的参数量,是当前最大最强的开源大模子(在基准测试中 llama3.1 在大多数方面都强过了 GPT4O)
固然参数越多所需要的算力就越大,需要的性能也就越高,在本地摆设就需要根据自身的装备条件举行适合的选择


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表