首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 25-03-08 01:02
  • 4348
  • 6104
blog.csdn.net

目录

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

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 验证

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

 这里就注意了模型版本了哦,我就没有使用上面的 现在了下面的这个

docker exec -it  ollama ollama run qwen2.5:1.5b

 3.2 删除模型(选看)

  1. ollama list
  2. ollama rm 模型名称

4 安装webUI

4.1 拉镜像

docker pull ghcr.io/open-webui/open-webui:main

 4.2 启动服务

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 访问

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 拉取镜像

  docker pull mintplexlabs/anythingllm

8.2 创建目录等

  1. export STORAGE_LOCATION=$HOME/anythingllm && \
  2. mkdir -p $STORAGE_LOCATION && \
  3. touch "$STORAGE_LOCATION/.env"

 这个命令可检查目录

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)

当然参数越多所需要的算力就越大,需要的性能也就越高,在本地部署就需要根据自身的设备条件进行适合的选择

注:本文转载自blog.csdn.net的春天的菠菜的文章"https://blog.csdn.net/legend818/article/details/143188526"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

130
用户体验设计
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top