之前我的文章里写的是通过langchain来构建RAG应用,对于很多人来说。langchain作为一个框架上手难度大,代码不够直观。但是通过dify你将学会可视化搭建工作流。

什么是dify?

Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。

通俗点说,通过手机点击创建ai应用,而不用写代码了。

官网链接

阅读本文之前,假设读者已经了解llm、prompt、chatglm、git、github、docker、rag流程、向量数据(embedding)的相关知识,假如没有,可以先学习这些知识。

怎么使用dify?
安装dify
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d  

检查

输入docker ps,出现以下服务就是正常的
在这里插入图片描述
安装好之后,打开localhost:80(如果你安装在服务器或者wsl中),需要将localhost转换为对应的ip。

第一次登陆需要设置管理员账户

在这里插入图片描述

假设你已经完成了管理员的创建
创建一个llm应用

创建应用
在这里插入图片描述
在这里插入图片描述
添加llm model
在这里插入图片描述
这里我使用chat glm的在线model,读者可以根据自己的喜好添加model。
输入完secret key选择相应的model之后就可以使用了。

在这里插入图片描述
这样你就完成了dify的第一个应用!!!

是不是很简单!!!

进阶

接下来我们将使用dify搭建一个RAG聊天应用

再次创建应用

这一次我们选择工作流编排的方式创建聊天机器人
在这里插入图片描述
进去之后我们会看到一个开始模块,然后会在左下角看见几个icon,点击
在这里插入图片描述
创建完知识检索的块,之后上传你的pdf文件,然后向量化,检索的话可以使用多种方式,嫌麻烦可以默认。

在这里插入图片描述

在这里插入图片描述
这里相当于之前使用langchain的时候进行的文档加载与向量化,具体可以看下我这篇文章,langchain入门系列之六 使用langchain构建PDF解析助手

具体作用相当于这一块的代码

# 解析pdf并保存到本地向量数据库中
def save_pdf(file_path, file_name):
    loader = PyPDFLoader(file_path)
    # 分割
    text_spliter = RecursiveCharacterTextSplitter(
        chunk_size=200,
        chunk_overlap=5,  # 每个块之间的重叠长度
        length_function=len,
    )
    pages = loader.load_and_split(text_spliter)
    persist_path = persist_directory + file_name
    # 持久化到本地
    Chroma.from_documents(
        documents=pages,
        embedding=embedding,
        persist_directory=persist_path
        )

# 加载向量索引
def load_index(file_name):
    persist_path = persist_directory + file_name
    print(persist_path)
    index = Chroma(persist_directory=persist_path, embedding_function=embedding)
    return index

在这里面需要注意的是查询变量,我们用的sys.query,这是最开始的输出。
在这里插入图片描述
根据文章内容测试一下,发现有内容返回,那就没问题。

创建条件流

在这里插入图片描述
json解析
在这里插入图片描述
条件分支
在这里插入图片描述

在这里插入图片描述
QA
在这里插入图片描述
QA 答案
在这里插入图片描述
duckduckgo搜索
在这里插入图片描述
搜索答案提取

在这里插入图片描述
搜索答案回复
在这里插入图片描述

小试牛刀

在这里插入图片描述
当我输入拿破仑意识到了什么时?llm根据书中内容,回复了答案。

注意的事

配置duckduckgo貌似需要科学上网,否则会超时,这里可以替换成bing。

Logo

一站式 AI 云服务平台

更多推荐