wiseflow/README.md
bigbrother666sh b4da3cc853 v0.3.6test
2025-01-02 22:05:51 +08:00

13 KiB
Raw Blame History

首席情报官Wiseflow

English | 日本語 | 한국어

🚀 首席情报官Wiseflow是一个敏捷的信息挖掘工具可以从各种给定信源中依靠大模型的思考与分析能力精准抓取特定信息全程无需人工参与。

我们缺的不是信息,而是从海量信息中过滤噪音,从而让有价值的信息显露出来

🌱看看AI情报官是如何帮您节省时间过滤无关信息并整理关注要点的吧🌱

https://github.com/user-attachments/assets/fc328977-2366-4271-9909-a89d9e34a07b

🔥 测试脚本与测试报告发布

我们在四个现实案例任务以及共计十个真实网页 sample 中横向测试并比较了由 siliconflow 提供的deepseekV2.5、Qwen2.5-32B-Instruct、Qwen2.5-14B-Instruct、Qwen2.5-coder-7B-Instruct 模型的表现情况, 测试结果请参考 report

同时我们也将测试脚本进行开源欢迎大家踊跃提交更多测试结果wiseflow 是一个开源项目,希望通过大家共同的贡献,打造“人人可用的信息爬取工具”!

具体请参考 test/README.md

现阶段,提交测试结果等同于提交项目代码同样会被接纳为contributor甚至受邀参加商业化项目

另外我们改进了 pocketbase 的下载以及用户名密码配置方案,感谢 @ourines 贡献了 install_pocketbase.sh 脚本。

(docker运行方案被暂时移除了感觉大家用起来也不是很方便……)

🌟 V0.3.6 版本预告

V0.3.6 版本计划于2024年12月30日前发布该版本是 v0.3.5 的性能优化版本,信息抽取质量将有质的提升,同时还会引入视觉大模型,在网页信息不足时提取页面图片信息作为补充。

V0.3.x 计划

  • 尝试支持微信公众号免wxbot订阅V0.3.7
  • 引入对 RSS 信息源的支持V0.3.8;
  • 尝试引入 LLM 驱动的轻量级知识图谱,帮助用户从 infos 中建立洞察V0.3.9)。

自V0.3.5版本开始 wiseflow 使用全新的架构,并引入 Crawlee 作为基础爬虫和任务管理框架大幅提升页面获取能力。后续我们会持续提升wiseflow 的页面获取能力,大家碰到不能很好获取的页面,欢迎在 issue #136 中进行反馈。

wiseflow 与传统的爬虫工具、AI搜索、知识库RAG项目有何不同

wiseflow自2024年6月底发布 V0.3.0版本来受到了开源社区的广泛关注,甚至吸引了不少自媒体的主动报道,在此首先表示感谢!

但我们也注意到部分关注者对 wiseflow 的功能定位存在一些理解偏差如下表格通过与传统爬虫工具、AI搜索、知识库RAG类项目的对比代表了我们目前对于 wiseflow 产品最新定位思考。

首席情报官Wiseflow 的比较说明
爬虫类工具 首先 wiseflow 是基于爬虫工具的项目(目前我们基于的是 Crawl4ai但传统的爬虫工具在信息提取方面需要人工的提供明确的 Xpath 等信息……这不仅阻挡了普通用户同时也毫无通用性可言对于不同网站包括已有网站升级后都需要人工重做分析更新程序。wiseflow致力于使用 LLM 自动化网页的分析和提取工作,用户只要告诉程序他的关注点即可。 如果以 Crawl4ai 为例对比说明Crawl4ai 是会使用 llm 进行信息提取的爬虫而wiseflow 则是会使用爬虫工具的llm信息提取器。
AI搜索 AI搜索主要的应用场景是具体问题的即时问答举例”XX公司的创始人是谁“、“xx品牌下的xx产品哪里有售” ,用户要的是一个答案wiseflow主要的应用场景是某一方面信息的持续采集比如XX公司的关联信息追踪XX品牌市场行为的持续追踪……在这些场景下用户能提供关注点某公司、某品牌、甚至能提供信源站点 url 等),但无法提出具体搜索问题,用户要的是一系列相关信息
知识库RAG类项目 知识库RAG类项目一般是基于已有信息的下游任务并且一般面向的是私有知识比如企业内的操作手册、产品手册、政府部门的文件等wiseflow 目前并未整合下游任务同时面向的是互联网上的公开信息如果从“智能体”的角度来看二者属于为不同目的而构建的智能体RAG 类项目是“(内部)知识助理智能体”,而 wiseflow 则是“(外部)信息采集智能体”

📥 安装与使用

1. 克隆代码仓库

🌹 点赞、fork是好习惯 🌹

windows 用户请提前下载 git bash 工具,并在 bash 中执行如下命令 bash下载链接

git clone https://github.com/TeamWiseFlow/wiseflow.git

2. 执行根目录下的 install_pocketbase.sh 脚本

该脚本会引导下载并配置 pocketbase版本选择0.23.4),同时在 core 下创建 .env 文件。

注意:该脚本目前不支持 windows 操作系统windows 用户可以手动去 https://github.com/pocketbase/pocketbase/releases/tag/v0.23.4 下载,解压放入 wiseflow/pb 目录下

chmod +x install_pocketbase.sh
./install_pocketbase.sh

wiseflow 0.3.x版本使用 pocketbase 作为数据库,你当然也可以手动下载 pocketbase 客户端 (记得下载0.23.4版本,并放入 pb 目录下) 以及手动完成superuser的创建(记得存入.env文件)

具体可以参考 pb/README.md

3. 继续配置 core/.env 文件

🌟 这里与之前版本不同V0.3.5开始需要把 .env 放置在 core 文件夹中。

3.1 大模型相关配置

wiseflow 是 LLM 原生应用,请务必保证为程序提供稳定的 LLM 服务。

🌟 wiseflow 并不限定模型服务提供来源,只要服务兼容 openAI SDK 即可,包括本地部署的 ollama、Xinference 等服务

推荐1使用硅基流动siliconflow提供的 MaaS 服务

siliconflow硅基流动提供大部分主流开源模型的在线 MaaS 服务,凭借着自身的加速推理技术积累,其服务速度和价格方面都有很大优势。使用 siliconflow 的服务时,.env的配置可以参考如下

export LLM_API_KEY=Your_API_KEY
export LLM_API_BASE="https://api.siliconflow.cn/v1"
export PRIMARY_MODEL="Qwen/Qwen2.5-32B-Instruct"
export SECONDARY_MODEL="Qwen/Qwen2.5-7B-Instruct"
export VL_MODEL="OpenGVLab/InternVL2-26B"

😄 如果您愿意,可以使用我的siliconflow邀请链接这样我也可以获得更多token奖励 🌹

推荐2使用 AiHubMix 代理的openai、claude、gemini 等海外闭源商业模型服务

如果您的信源多为非中文页面,且也不要求提取出的 info 为中文,那么更推荐您使用 openai、claude、gemini 等海外闭源商业模型。您可以尝试第三方代理 AiHubMix,支持国内网络环境直连、支付宝便捷支付,免去封号风险。 使用 AiHubMix 的模型时,.env的配置可以参考如下

export LLM_API_KEY=Your_API_KEY
export LLM_API_BASE="https://aihubmix.com/v1" # 具体参考 https://doc.aihubmix.com/
export PRIMARY_MODEL="gpt-4o"
export SECONDARY_MODEL="gpt-4o-mini"
export VL_MODEL="gpt-4o"

😄 欢迎使用 AiHubMix邀请链接 注册 🌹

本地部署大模型服务

以 Xinference 为例,.env 配置可以参考如下:

# LLM_API_KEY='' 本地服务无需这一项,请注释掉或删除
export LLM_API_BASE='http://127.0.0.1:9997'
export PRIMARY_MODEL=启动的模型 ID
export SECONDARY_MODEL=启动的模型 ID
export VL_MODEL=启动的模型 ID

3.2 pocketbase 账号密码配置

export PB_API_AUTH="test@example.com|1234567890" 

这里pocketbase 数据库的 superuser 用户名和密码,记得用 | 分隔 (如果 install_pocketbase.sh 脚本执行成功,这一项应该已经存在了)

3.3 其他可选配置

下面的都是可选配置:

  • #VERBOSE="true"

    是否开启观测模式,开启的话会把 debug 信息记录在 logger 文件上(默认仅输出在 console 上);

  • #PROJECT_DIR="work_dir"

    项目运行数据目录,不配置的话,默认在 core/work_dir ,注意:目前整个 core 目录是挂载到 container 下的,所以意味着你可以直接访问这里。

  • #PB_API_BASE=""

    只有当你的 pocketbase 不运行在默认ip 或端口下才需要配置,默认情况下忽略就行。

4. 运行程序

V0.3.5版本架构和依赖与之前版本有较大不同请务必重新拉取代码删除或重建pb_data

推荐使用 conda 构建虚拟环境(当然你也可以忽略这一步,或者使用其他 python 虚拟环境方案)

conda create -n wiseflow python=3.10
conda activate wiseflow

之后运行

cd wiseflow
cd core
pip install -r requirements.txt
chmod +x run.sh
./run_task.sh # if you just want to scan sites one-time (no loop), use ./run.sh

🌟 这个脚本会自动判断 pocketbase 是否已经在运行,如果未运行,会自动拉起。但是请注意,当你 ctrl+c 或者 ctrl+z 终止进程时pocketbase 进程不会被终止直到你关闭terminal。

run_task.sh 会周期性执行爬取-提取任务(启动时会立即先执行一次,之后每隔一小时启动一次), 如果仅需执行一次,可以使用 run.sh 脚本。

5. 关注点和定时扫描信源添加

启动程序后打开pocketbase Admin dashboard UI (http://127.0.0.1:8090/_/)

5.1 打开 focus_point 表单

通过这个表单可以指定你的关注点LLM会按此提炼、过滤并分类信息。

字段说明:

  • focuspoint, 关注点描述(必填),如”上海小升初信息“、”加密货币价格“
  • explanation关注点的详细解释或具体约定如 “仅限上海市官方发布的初中升学信息”、“BTC、ETH 的现价、涨跌幅数据“等
  • activated, 是否激活。如果关闭则会忽略该关注点,关闭后可再次开启。

注意focus_point 更新设定(包括 activated 调整)后,需要重启程序才会生效。

5.2 打开 sites表单

通过这个表单可以指定自定义信源,系统会启动后台定时任务,在本地执行信源扫描、解析和分析。

sites 字段说明:

  • url, 信源的url信源无需给定具体文章页面给文章列表页面即可。
  • per_hours, 扫描频率单位为小时类型为整数1~24范围我们建议扫描频次不要超过一天一次即设定为24
  • activated, 是否激活。如果关闭则会忽略该信源,关闭后可再次开启。

sites 的设定调整,无需重启程序。

📚 如何在您自己的程序中使用 wiseflow 抓取出的数据

1、参考 dashbord 部分源码二次开发。

注意 wiseflow 的 core 部分并不需要 dashboard目前产品也未集成 dashboard如果您有dashboard需求请下载 V0.2.1版本

2、直接从 Pocketbase 中获取数据

wiseflow 所有抓取数据都会即时存入 pocketbase因此您可以直接操作 pocketbase 数据库来获取数据。

PocketBase作为流行的轻量级数据库目前已有 Go/Javascript/Python 等语言的SDK。

🛡️ 许可协议

本项目基于 Apache2.0 开源。

商用合作,请联系 Emailzm.zhao@foxmail.com

  • 商用客户请联系我们报备登记,产品承诺永远免费。

📬 联系方式

有任何问题或建议,欢迎通过 issue 留言。

🤝 本项目基于如下优秀的开源项目:

本项目开发受 GNEAutoCrawlerSeeAct 启发。

Citation

如果您在相关工作中参考或引用了本项目的部分或全部,请注明如下信息:

AuthorWiseflow Team
https://github.com/TeamWiseFlow/wiseflow
Licensed under Apache2.0