低代码!小白用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/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/

注意!

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

(1)关于flowise编排说明

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

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

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

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

(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

codeflowdocchromalangchain数据库cligitopenaidockergithubsqlapimysqldocx向量数据库wordclonepostgresdebugtransformer文档创建ctourl元数据createpythonpdfllm内容创建数据库支持storebaidu
  • 本文作者:WAP站长网
  • 本文链接: https://wapzz.net/post-3281.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.7W+
9
1
2
WAP站长官方

MJ基础入门之注册:超详细注册 Midjourney 及使用方法

上一篇

Chinese-LLaMA-AIpaca 指令精调

下一篇
  • 复制图片
按住ctrl可打开默认菜单