Ollama+LangChain+Flowise搭建一个最简单的RAG应用

1,869 阅读4分钟

一、工具介绍

1、ollama

Ollama 是一个开源框架,是一个本地LLM部署平台,支持多种热门开源大模型。 主要特点和功能概述:

  • 简化部署:Ollama 目标在于简化在 Docker 容器中部署大型语言模型的过程,使得非专业用户也能方便地管理和运行这些复杂的模型。
  • 轻量级与可扩展:作为轻量级框架,Ollama 保持了较小的资源占用,同时具备良好的可扩展性,允许用户根据需要调整配置以适应不同规模的项目和硬件条件。
  • API支持:提供了一个简洁的 API,使得开发者能够轻松创建、运行和管理大型语言模型实例,降低了与模型交互的技术门槛。
  • 预构建模型库:包含一系列预先训练好的大型语言模型,用户可以直接选用这些模型应用于自己的应用程序,无需从头训练或自行寻找模型源。

官网地址: ollama.com/ 同类型产品:LocalAI, LM studio

2、LangChain

LangChain 是一个开源编排框架,用于使用大语言模型 (LLM) 开发应用程序。LangChain 的工具和 API 在基于 Python 和 Javascript 的库中使用,可以简化构建聊天机器人和虚拟代理等 LLM 驱动型应用程序的过程。LangChain 本质上是一个 Python 和 Javascript 的抽象库,代表使用语言模型所需的常见步骤和概念。这些模块化组件(如函数和对象类)充当生成式 AI 程序的构建块。它们可以“链接”在一起来创建应用程序,最大限度地减少执行复杂 NLP 任务所需的代码量和深入理解。尽管 LangChain 的抽象方法可能会限制专家程序员精细定制应用程序的程度,但 LangChain 使专家和新手能够快速进行实验和原型设计。可以阅读以下文章了解详细信息:什么是 LangChain (LLM编程框架) ?| IBM

3、Flowise

LangChain 本质上是一个 Python 和 Javascript 的抽象库,代表使用语言模型所需的常见步骤和概念。这些模块化组件(如函数和对象类)充当生成式 AI 程序的构建块。它们可以“链接”在一起来创建应用程序,最大限度地减少执行复杂 NLP 任务所需的代码量和深入理解。尽管 LangChain 的抽象方法可能会限制专家程序员精细定制应用程序的程度,但 LangChain 使专家和新手能够快速进行实验和原型设计。

二、windows环境搭建

1、安装ollama

  1. 下载ollama,Download Ollama on Windows 下载windows版本;
  2. 安装ollama,直接一步一步安装完成即可;
  3. 安装llama3.1大模型:
  • 打开cmd命令行工具,输入:ollama list,查看有哪些LLM可用;
  • ollama支持的大模型安装指令如下:

微信图片_20240814003543.png

  1. ollama常用指令:
  • ollama list:显示模型列表
  • ollama show:显示模型的信息
  • ollama pull:拉取模型
  • ollama push:推送模型
  • ollama cp:拷贝一个模型
  • ollama rm:删除一个模型
  • ollama run:运行一个模型
  1. 如果需要通过IP地址访问ollama(否则只能通过localhost或127.0.0.1访问),需要设置环境变量,具体如下图

微信图片_20240814010212.png

2、langchain安装

  1. 首先要安装python环境;
  2. 再通过pip install langchain进行安装
  3. 简单试下是否安装成功

from langchain.llms import Ollama

ollama = Ollama(base_url='http://localhost:11434',model="llama2")

print(ollama("why is the sky blue"))

安装Flowise

这里推荐使用docker安装,npm安装会报很多nodejs组件依赖的错误,需要花比较多的时间排查。

  1. 安装docker desktop,这里可能会报虚拟化相关的错误,需要进bios开启虚拟化支持;下载地址:www.docker.com/ 需要科学上网
  2. 下载Flowise源码,github地址:git clone github.com/FlowiseAI/F…
  3. 进入源码的docker目录,将.env.example复制为.env文件,然后运行命令:docker compose up -d
  4. 安装成功后,浏览器访问地址:http://localhost:3000
  5. 构建第一个RAG应用,具体流程图如下:

微信图片_20240814010345.png

  • Recursive Character Text Splitter:分词器

  • Text File:从一个文本文件加载数据

  • Ollama Embeddings:使用ollama部署的大模型llama3对上一步的文本数据进行向量化处理,设置ollama的访问url及模型名称,这里是llama3

  • In-Memory Vector Store:一个内存的向量数据库

  • ChatOllama:大模型节点,需要设置ollama访问url及模型名称,这里是llama3

  • Conversational Retrieval QA Chain:将用户输入提示词&向量化数据提交LLM,LLM返回结果

  • 这里上传了一个自我介绍的文本,这些信息LLM应该是不具备的。内容如下: 我是朱亮,我是一名程序员,软件工程师和架构师

  • 运行结果如下:

微信图片_20240811221843.png