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

news2024/9/23 1:26:23

一、与知识对话

在这里插入图片描述

二、采集网页问答

在这里插入图片描述

三、部署安装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/flowise
        restart: always
        environment:
            - 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/.flowise
        networks:
            - flowise_net
        command: /bin/sh -c "sleep 3; flowise start"
networks:
    flowise_net:
        name: chroma_net
        external: 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 uuid

os.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,元数据,文档内容添加到数据库
    # 为文档增加id
    doc_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 = collection
    print('已经存在集合,进行查询')

res = Chroma.as_retriever().invoke("历史最早的纸币是那个国家发行的?")
print(res)

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

import os

os.environ["OPENAI_API_KEY"] = '你的key'

import chromadb

from langchain.embeddings import OpenAIEmbeddings

embedding_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
在这里插入图片描述

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

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

相关文章

FFmpeg 6.1 开放源码多媒体框架近日发布了重大更新

导读FFmpeg 6.1 开放源码多媒体框架近日发布了重大更新,带来了新功能、新解码器、新过滤器和许多其他变化。 在 FFmpeg 6.0 “Von Neumann “版本发布八个多月后,FFmpeg 6.1 被命名为 “Heaviside”,引入了多线程 Vulkan 硬件加速解码&#x…

2023年中国宠物清洁用品分类、市场规模及发展特征分析[图]

宠物清洁用品指专用于清洁宠物毛发、口腔、耳部、脚爪等部位的各类宠物用品,包括宠物香波、滴耳露、修毛刀等。宠物主对宠物清洁用品需求的出现,一定程度上反映出部分宠物主与宠物间的感情逐渐加深,并逐渐达到了较为亲密的程度。随着宠物清洁…

CentOS使用docker安装OpenGauss数据库

1.搜索OpenGauss docker search opengauss 2.选择其中一个源拉取 docker pull docker.io/enmotech/opengauss 3.运行OpenGauss docker run --name opengauss --privilegedtrue --restartalways -d -e GS_USERNAMEpostgres -e GS_PASSWORDmyGauss2023 -p 5432:5432 docker.…

webGL技术开发的软件类型

WebGL 是一种在浏览器中渲染 2D 和 3D 图形的 JavaScript API。通过 WebGL,你可以创建各种类型的软件项目,特别是那些需要强大图形渲染能力的项目。以下是一些你可以使用 WebGL 实现的软件项目类型,希望对大家有所帮助。北京木奇移动技术有限…

ubuntu22.04安装网易云音乐

附件: https://download.csdn.net/download/weixin_44503976/88557248 wget https://d1.music.126.net/dmusic/netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb wget -O patch.c https://aur.archlinux.org/cgit/aur.git/plain/patch.c?hnetease-cloud-m…

【C++进阶】二叉搜索树(BSTree)

​👻内容专栏:C/C编程 🐨本文概括:二叉搜索树的基本操作(查找、删除、插入)、二叉搜索树的应用,KV模型。 🐼本文作者:阿四啊 🐸发布时间:2023.11.22 一、二叉搜索树 1.1…

网络和Linux网络_4(应用层)序列化和反序列化(网络计算器)

目录 1. 重新理解协议 2. 网络版本计算器 2.1 前期封装 Log.hpp sock.hpp TcpServer.hpp 第一次测试(链接) 2.2 计算器实现 第二次测试(序列化和反序列化) 第三次测试(客户端字节流) CalServer.cc CalClient.cc 3. 守护进程 3.1 守护进程和前后台进程 3.1 变成…

String类常用方法总结

目录 一.简单认识String 二.String对象的比较 1.equals 内部实现原理: 2.compareTo 3.compareToIgnoreCase 三.字符串查找 示例: 四.字符串与其他类型转化 1.数值和字符串相互转换 2.大小写相互转化 3.字符串转数组 4.格式化转化 五.字符串…

LiteOS同步实验(实现生产者-消费者问题)

效果如下图: 给大家解释一下上述效果:在左侧(顶格)的是生产者(Producer);在右侧(空格)的是消费者(Consumer)。生产者有1个,代号为“0”…

编译源码-【opencv3.4.16 + vs2013 x64】

编译机器:i5 13500HX RTX 4050 laptop win11 CMake 3.26.4 Configure,去掉勾选图中黄色标注的项,opencv_world 随意 Configure可能提示3rdparty下载timeout,它会下载到源码目录的.cache ├── .cache │ ├──ffmpeg │ │ …

[数据结构]—栈和队列

💓作者简介🎉:在校大二迷茫大学生 💖个人主页🎉:小李很执着 💗系列专栏🎉:数据结构 每日分享✨:到头来,有意义的并不是结果,而是我们度…

基于Springboot的美容院管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的美容院管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&a…

「浙江科聪新品发布」新品发布潜伏顶升式移动机器人专用控制器

聚焦专用车型 最小专用控制器 控制器只占整机5%,纵向出线方式,占比更小 更易插拔 整体解决方案 更具价格优势 提供整体解决方案,配套各类型产品设备及车体厂家 打造持久稳定使用 坚持工业级品质 采用车规级接口,不用其它类不可…

ChatGPT 使用入门

背景 ChatGPT是一个强大的聊天机器人助手,内置了大量的互联网知识文档,且具有上下文记忆,可以帮我们快速地查找一些资料,了解一个知识,帮我们回答问题,编写代码等。此外,在使用ChatGPT时具有一…

论文笔记:Localizing Cell Towers fromCrowdsourced Measurements (intro 部分)

2015 1 Intro 1.1 motivation opensignal.com 、cellmapper.net 和 opencellid.org 都是提供天线(antenna)位置的网站 他们提供的天线位置相当准确,但至少在大多数情况下不完全正确这个目标难以实现的原因是蜂窝网络供应商没有义务提供有…

【Redis篇】简述Java中操作Redis的方法

文章目录 🎄简述Jedis🎄Jedis优点🍔使用Jedis连接Redis⭐进行测试🎈进行测试 Redis(Remote Dictionary Server)是一种流行的高性能内存数据库,广泛应用于各种应用程序和系统中。作为Java开发人员…

汇编-pop出栈指令

32位汇编 执行动作分为两步: 第一步:读出数据 第二步:改变栈地址 如果操作数是16位, 则ESP加2; 如果操作数是32位, 则ESP加4 espesp2 或 espesp4 格式:

如何开发干洗店用的小程序

洗护行业现在都开始往线上的方向发展了,越来越多的干洗店都推出了上门取送服务,那么就需要开发一个干洗店专用的小程序去作为用户和商家的桥梁,这样的小程序该如何开发呢? 一、功能设计:根据干洗店的业务需求和小程序的…

智能座舱架构与芯片 - (3) 硬件篇 上

一、介绍 在了解智能座舱的基本架构之后,我们有必要针对智能座舱域的硬件平台,软件平台,SOC等进行逐一介绍。从它们的整体结构中去认识最新的智能座舱组成部件,以及主要功能等。 如上图,是中央计算-区域控制架构下的智…

集成电路生产ERP都有哪些模块?企业如何选择适用的系统

集成电路的生产管理涵盖物料、配件、车间、图纸设计、工艺流转、出入库、退补料、品质检验、成本核算、班组产能评估等环节,而这些环节之间信息的实时和准确传递是管理的难点也是重点。 如何集成各类资源,优化相关业务流程,提高资源利用率&a…