大模型实战一、Ollama+RagFlow 部署本地知识库

大模型实战一、Ollama+RagFlow 部署本地知识库

参考你提供的文章,这里是基于 Windows 系统通过 Docker 安装部署 RagFlow 和 Ollama 的本地化大模型知识库的详细教程。本文将指导你如何在 Windows 上使用 Docker 来设置 RagFlow 和 Ollama 环境,并安装通义千问2 7B大模型和支持中文的 Embedding 模型。

在 Windows 上通过 Docker 安装和部署 RagFlow 和 Ollama

1. 环境准备

确保你的系统满足以下条件:

  • Windows 10 或更高版本
  • Docker Desktop 已安装并启用 WSL 2 后端
1.1 安装 Docker Desktop

如果你还没有安装 Docker Desktop,请按照以下步骤进行安装:

  1. 下载 Docker Desktop:Docker Desktop 官网
  2. 运行安装程序,按照提示完成安装。
  3. 启用 WSL 2 后端:
    • 打开 Docker Desktop,进入 Settings > General,勾选 “Use the WSL 2 based engine”。
    • 确保已安装并启用了 WSL 2。可以参考 微软官方指南 来完成 WSL 2 的安装和启用。
1.2 启动 Docker Desktop

安装完成后,启动 Docker Desktop,确保 Docker 正常运行。可以通过命令行验证 Docker 版本来确认安装成功:

docker --version

2. 安装 RagFlow 和 Ollama

RagFlow 和 Ollama 是用于管理和部署大模型知识库的关键工具。

2.1 拉取 Ollama 镜像

Ollama 是一个专注于大语言模型管理的工具,使用 Docker 容器来运行模型。

  1. 在终端中运行以下命令来拉取 Ollama 镜像:

    docker pull ollama/ollama
    
  2. 运行 Ollama 容器:

    docker run --rm -it --name ollama-cli ollama/ollama:latest
    
2.2 安装 RagFlow

RagFlow 是一个用于构建和管理信息检索生成流的工具。我们可以使用 Docker 容器来安装 RagFlow。

  1. 拉取 RagFlow 镜像:

    docker pull ragflow/ragflow:latest
    
  2. 运行 RagFlow 容器:

    docker run --rm -it --name ragflow-cli ragflow/ragflow:latest
    

3. 安装通义千问2 7B 模型

通义千问2 7B 是一个中文语言模型,可以用于构建本地化知识库。

3.1 下载并安装通义千问2 7B 模型
  1. 使用 Ollama CLI 来下载通义千问2 7B 模型:

    ollama pull tongyi/qwen-7b-chat
    

    这将下载并准备模型以便于后续使用。

3.2 运行模型容器
  1. 使用 Ollama 运行通义千问2 7B 模型:

    docker run --rm -it --name qwen-7b-chat ollama/tongyi-qwen-7b-chat
    

    你可以通过指定模型参数和配置来调整模型的运行行为。

4. 设置支持中文的 Embedding 模型

为了使 RagFlow 能够处理中文文本并进行向量化,我们需要安装一个支持中文的 Embedding 模型,例如 m3e-base

4.1 安装 transformers 和 sentence-transformers 库
  1. 创建一个 Docker 容器来安装和运行 Python 及相关库:

    docker run --rm -it --name embedding-env python:3.8-slim bash
    
  2. 在容器内部安装所需的库:

    pip install transformers sentence-transformers
    
4.2 下载和加载 Embedding 模型

我们可以使用以下 Python 代码来加载 m3e-base 模型:

from sentence_transformers import SentenceTransformer# 加载中文嵌入模型
embedding_model = SentenceTransformer('moka-ai/m3e-base')

你可以将上述代码保存为脚本,并在 Docker 容器中执行它。

5. 整合 RagFlow 和 Ollama,构建本地知识库

现在,我们可以通过 RagFlow 和 Ollama 集成来构建一个本地化知识库系统。

5.1 初始化 RagFlow 项目

在 Docker 容器中初始化一个新的 RagFlow 项目:

docker exec -it ragflow-cli ragflow init my-local-knowledgebase
cd my-local-knowledgebase
5.2 添加中文 Embedding 和模型配置

编辑 config.yml 文件,配置 RagFlow 使用 Ollama 模型和中文嵌入:

embedding:model: "moka-ai/m3e-base"retriever:type: "local"index_path: "./index"model:type: "ollama"model_name: "tongyi/qwen-7b-chat"container_engine: "docker"
5.3 构建知识库索引

将你希望添加到知识库的中文文档或文本进行索引。假设我们有一些中文文档放在 data/ 目录中:

docker exec -it ragflow-cli ragflow index --data-dir ./data
5.4 运行知识库查询服务

使用 RagFlow 启动查询服务:

docker exec -it ragflow-cli ragflow serve

你现在可以通过 REST API 或命令行工具查询本地化的中文知识库。

6. 测试部署

通过命令行或 HTTP 请求测试你的本地化知识库:

curl -X POST http://localhost:8000/query -H "Content-Type: application/json" -d '{"query": "通义千问2的主要功能是什么?"}'

7. 完成部署和调优

根据实际需求进一步调优模型和检索配置,添加更多的自定义功能和业务逻辑。

总结

通过以上步骤,你已经成功在 Windows 系统上通过 Docker 部署了一个本地化的大模型知识库,结合 RagFlow 和 Ollama,安装了通义千问2 7B 模型和中文 Embedding 模型,构建了一个支持中文问答的系统。这种设置适用于企业内部知识管理、自动化客服、智能问答等场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/52392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Metal知识集锦

最近一段时间一直在弄metal相关的工作,整理了一下自己在调研metal时搜集到资料。感兴趣的朋友可以看看。网址如下: Metal入门教程总结 SwiftUI,Metal,Model I/O,画圆,画一个红色的圆 Metal by Tutorials…

数据结构---哈西表、算法

一、哈希表 哈希算法: 在记录的存储位置和它的关键字之间建立一种去特定的对应关系,使得每个关键字key对应一个存储位置; 查找时,根据确定的对应关系,找到给定的key的映射。 记录的存储位置 f&…

使用 C# WinForm 制作简单的串口调试助手

使用 C# WinForm 制作简单的串口调试助手 很久之前就已经发现了C# WinForm开源的控件界面库Sunny.UI,于是想着做一个Demo来用上Sunny.UI界面库。于是就想着做一个串口调试助手的Demo。 下面我就创建一个工程,并且加载Sunny.UI控件库,我这个项目还加载了…

使用stripe进行在线支付、退款、订阅、取消订阅功能(uniapp+h5)

stripe官网:Stripe 登录 | 登录 Stripe 管理平台 然后在首页当中打开测试模式,使用测试的公钥跟私钥进行开发 测试卡号 4242 4242 4242 4242 1234 567 在线支付 stripe的在线支付有两种,第一种就是无代码,第二中就是使用api进行自定义,一般来说推荐第二种进行开发 无…

哈希表 和 算法

1.哈希表的作用:将我们要存储的数据,通过关键字与位置的关系函数,来确定具体的位置。 2.写哈希表时常出现的问题:哈希冲突/矛盾:当多个数据满足哈希函数的映射时出现 解决的方法为: 1)开放地址…

[C#学习笔记]LINQ

视频地址:LINQ入门示例及新手常犯的错误_哔哩哔哩_bilibili 强烈推荐学习C#和WPF的朋友关注此UP,知识点巨多,讲解透彻! 一、基本概念 语言集成查询(Language-Intergrated Query) 常见用途 .Net原生集合(List,Arra…

SEO 分类策略权威指南

如果你在 SEO 领域工作了一段时间,你可能熟悉网站分类法的概念。这是指网站内容的组织方式以及用户找到他们正在寻找的内容的难易程度。 例如,考虑一个专门从事服装的电子商务网站。结构良好的分类可能包括主要类别,例如男装、女装和配饰&am…

【深度学习讲解笔记】第1章-机器学习基础(2)

模型与函数构造 之前讲到,模型是由机器学习决定参数值的函数,通过训练,机器可以找出最好的一组参数使得函数的输出最优。常见的模型有线性模型,指数模型,对数模型等。在线性模型中,w和b是可学习的参数&…

基于SpringBoot的智能制造云平台系统的设计与实现计算机毕设

一、选题背景与意义(300字左右) 根据工业4.0智能制造生态链中云工厂在实际生产当中的工作流程进行充分调研和整理出来的,描述最终用户在本系统中对于生产订单的处理、排产、以及生产的完整在线处理流程和业务需求的文档。 针对制造业而言&a…

TikTok直播为什么要用独立IP

TikTok直播作为一种受欢迎的社交媒体形式,吸引了越来越多的用户和内容创作者。在进行TikTok直播时,选择使用独立IP地址是一种被广泛推荐的做法。本文将探讨为什么在TikTok直播中更推荐使用独立IP,并解释其优势和应用。 独立IP是指一个唯一的互…

基于CNN卷积神经网络迁移学习的图像识别实现

基于CNN卷积神经网络迁移学习的图像识别实现 基于CNN卷积神经网络迁移学习的图像识别实现写在前面一,原理介绍迁移学习的基本方法1.样本迁移(Instance based TL)2.特征迁移(Feature based TL)3.模型迁移(Pa…

C#多线程进阶

多线程和异步的区别和联系 多线程和异步编程是两种用于提高程序性能和响应能力的技术,它们都可以用来处理并发任务,但它们在实现方式和使用场景上有所不同。 多线程(Multithreading) 定义:多线程是指在单个程序中同时…

C++(一)----C++基础

1.C的发展史 C语言诞生后,很快普及使用,但是随着编程规模增大且越来越复杂,并且需要高度的抽象和建模时,C语言的诸多短板便表现了出来,为了解决软件危机,上世纪八十年代,计算机界提出了oop&…

如何理解有效值电流?电流的均方根值

电流的有效值就是电流的均方根。 有效值电流定义:将一直流电与一交流电分别通过相同阻值的电阻,如果相同时间内两电流通过电阻产生的热量相同,就说这一直流电的电流值是这一交流电的有效值。 如果说电流就是直流电,那么电流的有效…

Flutter MacOS 去掉窗口导航栏

操作步骤 用xcode打开Flutter项目,点击Runner——>Runner——>Resources——>MainMenu 点击APP_NAME,在右侧勾选窗口选项来控制是否有窗口或者关闭缩小按钮。我这里并没有取消勾选Show Title Bar,因为当我取消勾选后,窗…

已经存在的项目如何变成git的一个repository

已经存在的项目如何被git管理 背景: 有一套代码很敏感,可能动不动就要不能正常工作(硬件开发常事),那改动一下下就要有个记录,就决定用git管理 已经有了服务里里docker里运行的gitbucket,已经有了开发用的电脑上的git客户端&…

【Python基础】Python函数

本文收录于 《Python编程入门》专栏,从零基础开始,分享一些Python编程基础知识,欢迎关注,谢谢! 文章目录 一、前言二、函数的定义与调用三、函数参数3.1 位置参数3.2 默认参数3.3 可变数量参数(或不定长参数…

【项目】云备份

云备份 云备份概述框架 功能演示服务端客户端 公共模块文件操作模块目录操作模块 服务端模块功能划分功能细分模块数据管理热点管理 客户端模块功能划分功能细分模块数据管理目录检查文件备份 云备份 概述 自动将本地计算机上指定文件夹中需要备份的文件上传备份到服务器中。…

k8s执行crictl images报错

FATA[0000] validate service connection: CRI v1 image API is not implemented for endpoint "unix:///run/containerd/containerd.sock": rpc error: code Unimplemented desc unknown service runtime.v1.ImageService 解决方法: vim /etc/contai…

【Visual Studio 报错】vs 在使用二进制写入文件时弹窗报错:使用简体中文 gb2312 编码加载文件

如以下报错 解决办法 解决方法:文件->高级保存选项->将文件编码形式改为“UTF-8带签名” 若找不到高级保存选项,可以跟着下面路径把该选项调出来 :工具->自定义->命令->菜单栏中改成文件->预览右边点添加命令->类别中…