低代码!小白用10分钟也能利用flowise构建AIGC| 业务问答 | 文本识别 | 网络爬虫

本文主要是介绍低代码!小白用10分钟也能利用flowise构建AIGC| 业务问答 | 文本识别 | 网络爬虫,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、与知识对话

在这里插入图片描述

二、采集网页问答

在这里插入图片描述

三、部署安装flowise

flowise工程地址:https://github.com/FlowiseAI/Flowise
flowise 官方文档:https://docs.flowiseai.com/

这里采用docker安装:

step1:克隆工程代码 (如果网络不好,下载压缩文件也是一样)

git clone  https://github.com/FlowiseAI/Flowise.git

step2:进入工程目录docker文件下复制 .env.example 内容创建 .env

关于这个文件参数说明:https://github.com/FlowiseAI/Flowise/blob/main/CONTRIBUTING-ZH.md

数据库支持 sqlite, mysql, postgres,这里我注释了数据库代码,默认则用sqlite;

如果想用mysql,postgres自己起服务也可以;注意mysql要8.0版本以上;

在这里插入图片描述
step3: 创建docker-compose-chroma.yml文件,这里是为了后续在组件当中使用向量数据库chroma

version: '3.1'services:flowise:image: flowiseai/flowiserestart: alwaysenvironment:- PORT=${PORT}- FLOWISE_USERNAME=${FLOWISE_USERNAME}- FLOWISE_PASSWORD=${FLOWISE_PASSWORD}- DEBUG=${DEBUG}- DATABASE_PATH=${DATABASE_PATH}- APIKEY_PATH=${APIKEY_PATH}- SECRETKEY_PATH=${SECRETKEY_PATH}- FLOWISE_SECRETKEY_OVERWRITE=${FLOWISE_SECRETKEY_OVERWRITE}- LOG_PATH=${LOG_PATH}- LOG_LEVEL=${LOG_LEVEL}- EXECUTION_MODE=${EXECUTION_MODE}ports:- '0.0.0.0:${PORT}:${PORT}'volumes:- ~/.flowise:/root/.flowisenetworks:- flowise_netcommand: /bin/sh -c "sleep 3; flowise start"
networks:flowise_net:name: chroma_netexternal: true

step4: 构建容器并且启动,在下图所在所示路径下构建指定yml文件

docker-compose -f docker-compose-chroma.yml up -d

在这里插入图片描述
在这里插入图片描述

此时容器已经起来了

在这里插入图片描述

四、部署安装chroma

chroma工程地址:https://github.com/chroma-core/chroma
chroma官方文档:https://docs.trychroma.com/

step1: 获取chroma工程

git clone https://github.com/chroma-core/chroma.git

step2: 进入工程路径,构建容器镜像

cd chroma
docker-compose up -d --build

step3: 确认2个服务已经成功启动

在这里插入图片描述
step4: 确认chroma在docker容器中的IP地址,比如我的是 172.19.0.2

在这里插入图片描述

五、flowise使用教程

当你按照我上面的步骤,部署启动好了服务,访问
http://localhost:3008/

注意!

  1. 启动服务,如果用openai的官方key,需要本地科学上网,否则对话会擦红石
  2. 如下内容,有很多场景可以实现,比如pdf文件识别,多组件构成,必要条件你得掌握langchain
    才能实现复杂功能开发

(1)关于flowise编排说明

flowise不同于传统的编排,比如从左往右进行,开始结束很明显

所有的链接及其开发需要有一定的langchain认知能力,可以参考我langchain专栏的文章,举例

对于创建一个chain,其实可以遵循函数开发原理

关于langchain官方文档:https://python.langchain.com/docs/get_started/introduction

![在这里插入图片描述](https://img-blog.csdnimg.cn/fc6c2bb1f1d04da5a65707a7df4458fc.png

(2)flowise 面板介绍

在这里插入图片描述

(3)简单的LLM问答

在这里插入图片描述

(4)文件问答

在这里插入图片描述

(5)向量数据库问答

在实现这个flow时候,需要提前将数据向量化到数据库,准备任意QA文档,我这里50个历史问答

在这里插入图片描述

step1 将文档构建到向量数据库

from langchain.embeddings import OpenAIEmbeddings, SentenceTransformerEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain.document_loaders import Docx2txtLoader
import chromadb
import os
import uuidos.environ["OPENAI_API_KEY"] = '你的OpenAikey'# 加载器
loader = Docx2txtLoader(r'C:\Users\wenwenc9\Desktop\历史问题50问答.docx')
documents_source = loader.load()# 切割文件
text_splitter = RecursiveCharacterTextSplitter(chunk_size=50, chunk_overlap=20)
documents = text_splitter.split_documents(documents_source)将文件向量到数据库
client = chromadb.HttpClient(host='localhost', port=8000)
# embedding_function = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")
embedding_function = OpenAIEmbeddings(model="text-embedding-ada-002")# 通过langchain使用向量库
Chroma = Chroma(client=client,embedding_function=embedding_function,
)try:collection = client.create_collection(name='history-qa', embedding_function=embedding_function)print("不存在集合,创建数据库")# 为每个文档创建一个文档id,并且将文档id,元数据,文档内容添加到数据库# 为文档增加iddoc_ids = [str(uuid.uuid4()) for _ in documents]for i, _doc in enumerate(documents):_id = doc_ids[i]_doc.metadata['doc_id'] = _id  # 构建文档序号属性Chroma._collection = collection# 存储文档Chroma.add_documents(documents)
except Exception as e:collection = client.get_collection(name='history-qa', embedding_function=embedding_function)Chroma._collection = collectionprint('已经存在集合,进行查询')res = Chroma.as_retriever().invoke("历史最早的纸币是那个国家发行的?")
print(res)

step2:验证是否成功构建生成向量

import osos.environ["OPENAI_API_KEY"] = '你的key'import chromadbfrom langchain.embeddings import OpenAIEmbeddingsembedding_function = OpenAIEmbeddings()client = chromadb.HttpClient(host='localhost', port=8000)# 按名称从现有集合中获取集合对象。 如果未找到,将引发异常。
collection = client.get_collection(name="history-qa")
res = collection.peek(2)  # 返回集合中前 2 项的列表
print(res)

在这里插入图片描述

step4 在flowise服务构建 flow编排

在这里插入图片描述

(6)网页采集问答

目标地址

https://baike.baidu.com/item/%E8%83%8C%E5%BD%B1/2663983?fr=ge_ala
在这里插入图片描述

这篇关于低代码!小白用10分钟也能利用flowise构建AIGC| 业务问答 | 文本识别 | 网络爬虫的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/410556

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能