LLM | 利用LangChain和Streamlit搭建LLM对话系统

前面使用Ollama、Docker和AnythingLLM搭建了个人本地知识库,能够实现“ChatGPT”本地化。但是呢,总感觉工具依赖性太强,没有实现代码的本地化,还是差点意思。(不想用AnythingLLM)

今天介绍一下如何利用Ollama、Langchain框架和Streamlit框架搭建一个纯本地化的“ChatGPT”。

一起肝代码吧!!!

成品如下:

在这里插入图片描述

1 基本资料介绍

关于大语言模型(Large Language Model, LLM)和Ollama,本期就不再过多介绍,主要还是对LangChain和Streamlit进行一个简单介绍。

Ollama下载地址:https://ollama.com/

1.1 LangChain

在这里插入图片描述

LangChain是一个基于Python的库,用于创建和管理大型语言模型(如GPT-3)的链式指令。它的主要目的是简化与这些复杂模型的交互过程,并提供了一种标准化的方式来构建、测试和部署复杂的自然语言处理任务。

LangChain官网:https://www.langchain.com/

以下是LangChain框架的一些关键特点:

  1. 模型组合:LangChain允许用户以链式的方式连接多个预训练大语言模型,以便对输入语境或前文有更深入的理解。这种能力使得它非常适合构建需要多阶段推理的应用场景。
  2. 可扩展性:该库设计时考虑了灵活性和可扩展性,这意味着你可以很容易地添加自定义的组件或集成其他AI服务到你的应用程序中。
  3. 用户友好性:LangChain通过提供简洁易用的API接口,使开发者可以轻松地将先进的语言模型能力融入他们的项目中,无需深入理解底层技术细节。
  4. 任务自动化:它能够自动处理一些常见的自然语言处理任务(如问答、文本生成和对话系统),帮助用户节省时间和精力在复杂的模型调优上。
  5. 代码示例和文档支持:LangChain提供了丰富的示例代码和详细的文档,帮助开发者快速上手并适应其工作流程。
  6. 社区与生态系统:作为一个活跃的开源项目,LangChain拥有一个强大的社区支持,并与众多相关工具和库集成,形成一个生态体系。

通过这些特性,LangChain为开发者提供了一个高效、易于使用的平台来构建复杂且需要高级语言理解能力的应用。这使得它成为自然语言处理领域中一个非常有用的工具。

在这里插入图片描述

1.2 Streamlit

在这里插入图片描述

Streamlit是一个开源Python库,用于创建交互式数据应用和可视化。它由Element AI开发,旨在简化复杂的机器学习模型的部署与分享过程。Streamlit的核心特点是能够以简洁的方式将数据、图表、文本和用户界面组件(如输入框或选择器)整合在一起,并允许用户在运行代码的同时,通过实时预览功能即时查看应用结果。

Streamlit官网:https://streamlit.io/

Streamlit的一些关键特性包括:

  1. 易于使用:Streamlit的API设计简单直观,开发者可以快速上手创建原型和发布应用。它不依赖于特定的数据科学库,如NumPy或Pandas,而是提供了一套通用的工具来处理不同类型的内容。
  2. 快速迭代开发:通过Streamlit,开发者能够轻松地调整参数、添加新功能并实时预览更改的影响,从而加快了应用开发流程。
  3. 支持动态组件:用户可以添加各种交互式元素,如滑块、下拉菜单和文本输入框等,这些组件可以根据用户的选择或输入响应地更新可视化结果或模型输出。
  4. 部署简单:使用Streamlit构建的应用可以通过简单的代码更改轻松实现本地运行或者部署到Web服务器(如Heroku或AWS)上。这使得分享和测试应用变得更加容易,不需要专门的基础设施知识。
  5. 社区与文档支持:Streamlit拥有活跃的开发者社区和技术文档,提供了大量的示例、教程和问题解答,帮助新用户快速熟悉并掌握库的使用方法。

Streamlit非常适合用于创建原型、内部演示、客户演示或者需要快速分享数据可视化结果的应用场景。无论是对于初学者还是有经验的数据科学家和工程师来说,它都提供了一个有效且高效的方式来展示数据分析成果。

在这里插入图片描述

2 环境配置(从这里正式开始)

2.1 下载ollama和大模型

在开始本文之前,请提前下载Ollama和qwen2:7b大模型,具体实现流程可参考我的公众号文章:

https://mp.weixin.qq.com/s/OKP0toc2kBfDNrwNZ7ZHuw

2.2 python环境搭建

首先安装Python环境,并配置Python虚拟环境,具体实现流程可参考我的公众号文章:https://mp.weixin.qq.com/s/4AWXnTBlpRPMOMX6_iCW4w

需要安装的依赖包含如下:

pip install langchain
pip install langchain-community
pip install streamlit

利用vscode编写.py文件,导入依赖:

import streamlit as st
from langchain_community.llms.ollama import Ollama
from langchain.callbacks.manager import CallbackManager
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import FAISS
from langchain.text_splitter import CharacterTextSplitter
from langchain.chains import ConversationalRetrievalChain
import os

3 搭建页面

初始化streamlit页面配置,其中st.titl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值