WiseFlow
Wiseflow是一款敏捷的信息提取工具,能够根据预定义的关注点从各种来源(如网站、微信公众号和社交媒体平台)中提炼信息,自动分类标签,并上传到数据库。
SiliconFlow正式宣布,从2024年6月25日起,Qwen2-7B-Instruct和glm-4-9b-chat等多个LLM在线推理服务将免费提供。这意味着您可以"零成本"地使用wiseflow进行信息挖掘!
我们并不缺乏信息;我们需要的是从海量信息中过滤掉噪音,让有价值的信息脱颖而出!
看看WiseFlow如何帮助您节省时间,过滤无关信息,并组织关键兴趣点!
https://github.com/TeamWiseFlow/wiseflow/assets/96130569/bd4b2091-c02d-4457-9ec6-c072d8ddfb16
🔥 重大更新 V0.3.0
-
✅ 完全重写的通用网页内容解析器,结合统计学习(依赖开源项目GNE)和LLM,适应超过90%的新闻页面;
-
✅ 全新的异步任务架构;
-
✅ 新的信息提取和标签策略,更加准确、精细,仅使用9B LLM就能完美执行任务!
🌟 主要特点
-
🚀 原生LLM应用
我们精心选择了最适合的7B~9B开源模型,以最小化使用成本,并允许对数据敏感的用户随时切换到本地部署。 -
🌱 轻量级设计
不使用任何向量模型,系统开销最小,无需GPU,适用于任何硬件环境。 -
🗃️ 智能信息提取和分类
自动从各种来源提取信息,并根据用户兴趣进行标记和分类。😄 Wiseflow特别擅长从微信公众号文章中提取信息;为此,我们配置了专门的mp文章解析器!
-
🌍 可集成到任何Agent项目
可作为任何Agent项目的动态知识库,无需了解Wiseflow的代码,只需通过数据库读取操作即可! -
📦 流行的Pocketbase数据库
数据库和接口使用PocketBase。除了Web界面,还提供Go/Javascript/Python语言的SDK。
🔄 Wiseflow与常见爬虫、LLM-Agent项目的区别和联系是什么?
特点 | Wiseflow | 爬虫 / 刮削器 | LLM-Agent |
---|---|---|---|
主要解决问题 | 数据处理(过滤、提取、标记) | 原始数据获取 | 下游应用 |
联系 | 可集成到Wiseflow中以实现更强大的原始数据获取 | 可将Wiseflow集成为动态知识库 |
📥 安装和使用
WiseFlow几乎没有硬件要求,系统开销最小,不需要GPU或CUDA(使用在线LLM服务时)。
-
克隆仓库
😄 点赞和fork是好习惯
git clone https://github.com/TeamWiseFlow/wiseflow.git cd wiseflow
-
强烈推荐:使用Docker
对于中国用户,请正确配置网络或指定Docker Hub镜像
docker compose up
您可以根据需要修改
compose.yaml
。注意:
- 在wiseflow仓库的根目录下运行上述命令。
- 运行前,在Dockerfile所在目录(wiseflow仓库根目录)创建并编辑
.env
文件。参考env_sample
文件内容。 - 首次运行Docker容器时可能会出错,因为您还没有为pb仓库创建管理员账户。
此时,保持容器运行,在浏览器中打开
http://127.0.0.1:8090/_/
,按照指示创建管理员账户(确保使用电子邮件)。然后将创建的管理员电子邮件(再次确保是电子邮件)和密码输入到.env
文件中,并重启容器。如果您想更改容器的时区和语言[这将决定提示语言,但对结果影响不大],请使用以下命令运行镜像
docker run -e LANG=zh_CN.UTF-8 -e LC_CTYPE=zh_CN.UTF-8 your_image
-
[替代方案] 直接使用Python运行
conda create -n wiseflow python=3.10 conda activate wiseflow cd core pip install -r requirements.txt
之后,您可以参考core/scripts中的脚本分别启动pb、task和backend(将脚本文件移动到core目录)。
注意:
- 先启动pb;task和backend是独立的进程,顺序无关。您可以根据需要启动其中任何一个。
- 从https://pocketbase.io/docs/下载适合您设备的pocketbase客户端,并将其放在/core/pb目录中。
- 关于pb的问题(包括首次运行错误),请参考core/pb/README.md。
- 使用前,创建并编辑
.env
文件,将其放在wiseflow仓库的根目录(core目录的上层目录)。参考env_sample
文件内容,详细配置请见下文。
📚 对于开发者,更多信息请参阅/core/README.md。
通过pocketbase访问数据:
- http://127.0.0.1:8090/_/ - 管理仪表板UI
- http://127.0.0.1:8090/api/ - REST API
-
配置
Windows用户可以直接在"开始 - 设置 - 系统 - 关于 - 高级系统设置 - 环境变量"中设置以下项目。设置后需要重启终端才能生效。
从目录中复制
env_sample
并重命名为.env
,然后填写您的配置信息(如LLM服务令牌),如下所示:- LLM_API_KEY # 大语言模型推理服务的API密钥
- LLM_API_BASE # 本项目依赖OpenAI SDK。如果您的模型服务支持OpenAI的API,请配置此项。如果使用OpenAI的服务,可以省略。
- WS_LOG="verbose" # 设置以启用调试观察。不需要时删除。
- GET_INFO_MODEL # 信息提取和标签匹配任务的模型,默认为gpt-3.5-turbo
- REWRITE_MODEL # 近似信息合并和重写任务的模型,默认为gpt-3.5-turbo
- HTML_PARSE_MODEL # 网页解析的模型(在GNE算法表现不佳时智能启用),默认为gpt-3.5-turbo
- PROJECT_DIR # 数据、缓存和日志文件的存储位置,相对于仓库。默认在仓库内。
- PB_API_AUTH='email|password' # pb数据库管理员的电子邮件和密码(必须是电子邮件,可以是虚构的)
- PB_API_BASE # 通常不需要。仅在不使用默认本地pocketbase接口(8090)时配置。
-
模型推荐
基于大量测试(针对中英文任务),我们推荐GET_INFO_MODEL使用**"zhipuai/glm4-9B-chat",REWRITE_MODEL使用"alibaba/Qwen2-7B-Instruct",HTML_PARSE_MODEL使用"alibaba/Qwen2-7B-Instruct"**。
这些模型非常适合本项目,指令遵循稳定,生成质量优秀。项目的提示已针对这三个模型进行了优化。(HTML_PARSE_MODEL也可以使用**"01-ai/Yi-1.5-9B-Chat"**,经测试表现同样出色。)
⚠️ 我们强烈推荐使用SiliconFlow的在线推理服务,以降低成本、提高速度和获得更高的免费配额!⚠️
SiliconFlow的在线推理服务与OpenAI SDK兼容,并提供上述三个模型的开源服务。只需将
LLM_API_BASE
配置为"https://api.siliconflow.cn/v1"并设置`LLM_API_KEY`即可使用。😄 或者,您可以使用我的邀请链接,这样也会奖励我更多的令牌 😄
-
关注点和定期源扫描
启动程序后,打开pocketbase管理仪表板UI(http://127.0.0.1:8090/_/)
6.1 打开**tags表单** 使用此表单指定您的关注点。LLM将根据这些关注点提取、过滤和分类信息。 Tags字段说明: - name, 关注点的描述。**注意:要具体。** 好例子:`美中竞争趋势`。坏例子:`国际形势`。 - activated, 是否激活。如果停用,该关注点将被忽略。之后可以重新激活。激活和停用不需要重启Docker容器,将在下一次计划任务中更新。 6.2 打开**sites表单** 使用此表单指定自定义源。系统将启动后台任务在本地扫描、解析和分析这些源。 Sites字段说明: - url, 源的URL。提供列表页面的URL,而不是具体文章页面。 - per_hours, 扫描频率,以小时为单位的整数(范围1-24;我们建议不要超过每天一次,即设置为24)。 - activated, 是否激活。如果停用,该源将被忽略。之后可以重新激活。激活和停用不需要重启Docker容器,将在下一次计划任务中更新。
-
本地部署
如您所见,本项目使用7B/9B LLM,不需要任何向量模型,这意味着您只需一张RTX 3090(24GB显存)就可以完全在本地部署此项目。
确保您的本地LLM服务与OpenAI SDK兼容,并相应配置
LLM_API_BASE
。
🛡️ 许可证
本项目根据Apache 2.0许可证开源。
对于商业使用和定制化合作,请联系邮箱:35252986@qq.com。
- 商业客户请向我们注册。产品承诺永久免费。
- 对于定制化客户,我们根据您的来源和业务需求提供以下服务:
- 客户业务场景源的专用爬虫和解析器
- 定制的信息提取和分类策略
- 针对性的LLM推荐甚至微调服务
- 私有部署服务
- UI界面定制
📬 联系信息
如果您有任何问题或建议,欢迎通过issue与我们联系。
🤝 本项目基于以下优秀的开源项目:
- GeneralNewsExtractor(基于统计学习的新闻网页正文通用抽取器) https://github.com/GeneralNewsExtractor/GeneralNewsExtractor
- json_repair(修复无效的JSON文档) https://github.com/josdejong/jsonrepair/tree/main
- python-pocketbase(用于Python的PocketBase客户端SDK) https://github.com/vaphes/pocketbase
引用
如果您在相关工作中参考或引用了本项目的部分或全部内容,请注明以下信息:
作者:Wiseflow团队
https://openi.pcl.ac.cn/wiseflow/wiseflow
https://github.com/TeamWiseFlow/wiseflow
根据Apache 2.0许可证授权