# wiseflow **Repository Path**: pyddot_river/wiseflow ## Basic Information - **Project Name**: wiseflow - **Description**: Wiseflow is an agile information mining tool that extracts concise messages from various sources such as websites, WeChat official accounts, social platforms, etc. It automatically categorizes and uploads them to the database. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-05 - **Last Updated**: 2024-07-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 首席情报官(Wiseflow) **[English](README.md) | [日本語](README_JP.md) | [Français](README_FR.md) | [Deutsch](README_DE.md)** **首席情报官**(Wiseflow)是一个敏捷的信息挖掘工具,可以从网站、微信公众号、社交平台等各种信息源中按设定的关注点提炼讯息,自动做标签归类并上传数据库。 --- SiliconFlow官宣Qwen2-7B-Instruct、glm-4-9b-chat等数款LLM在线推理服务即日起免费,这意味着您可以“零成本”使用首席情报官进行信息挖掘啦! --- 我们缺的其实不是信息,我们需要的是从海量信息中过滤噪音,从而让有价值的信息显露出来! 看看首席情报官是如何帮您节省时间,过滤无关信息,并整理关注要点的吧! https://github.com/TeamWiseFlow/wiseflow/assets/96130569/bd4b2091-c02d-4457-9ec6-c072d8ddfb16 sample.png ## 🔥 V0.3.0 重大更新 - ✅ 全新改写的通用网页内容解析器,综合使用统计学习(依赖开源项目GNE)和LLM,适配90%以上的新闻页面; - ✅ 全新的异步任务架构; - ✅ 全新的信息提取和标签分类策略,更精准、更细腻,且只需使用9B大小的LLM就可完美执行任务! ## 🌟 功能特色 - 🚀 **原生 LLM 应用** 我们精心选择了最适合的 7B~9B 开源模型,最大化降低使用成本,且利于数据敏感用户随时完全切换至本地部署。 - 🌱 **轻量化设计** 不用任何向量模型,系统开销很小,无需 GPU,适合任何硬件环境。 - 🗃️ **智能信息提取和分类** 从各种信息源中自动提取信息,并根据用户关注点进行标签化和分类管理。 😄 **WiseFlow尤其擅长从微信公众号文章中提取信息**,为此我们配置了mp article专属解析器! - 🌍 **可以被整合至任意Agent项目** 可以作为任意 Agent 项目的动态知识库,无需了解wiseflow的代码,只需要与数据库进行读取操作即可! - 📦 **流行的 Pocketbase 数据库** 数据库和界面使用 PocketBase,除了 Web 界面外,目前已有 Go/Javascript/Python 等语言的SDK。 - Go : https://pocketbase.io/docs/go-overview/ - Javascript : https://pocketbase.io/docs/js-overview/ - python : https://github.com/vaphes/pocketbase ## 🔄 wiseflow 与常见的爬虫工具、LLM-Agent类项目有何不同与关联? | 特点 | 首席情报官(Wiseflow) | Crawler / Scraper | LLM-Agent | |-------------|-----------------|---------------------------------------|----------------------| | **主要解决的问题** | 数据处理(筛选、提炼、贴标签) | 原始数据获取 | 下游应用 | | **关联** | | 可以集成至WiseFlow,使wiseflow具有更强大的原始数据获取能力 | 可以集成WiseFlow,作为动态知识库 | ## 📥 安装与使用 首席情报官对于硬件基本无要求,系统开销很小,无需独立显卡和CUDA(使用在线LLM服务的情况下) 1. **克隆代码仓库** 😄 点赞、fork是好习惯 ```bash git clone https://github.com/TeamWiseFlow/wiseflow.git cd wiseflow ``` 2. **强烈推荐使用docker 运行** **中国区用户使用前请合理配置网络,或者指定docker hub镜像** ```bash docker compose up ``` 可按需修改`compose.yaml` **注意:** - 在wiseflow代码仓根目录下运行上述命令; - 运行前先创建并编辑.env文件放置在Dockerfile同级目录(wiseflow代码仓根目录),.env文件可以参考env_sample - 第一次运行docker container时会遇到报错,这其实是正常现象,因为你尚未为pb仓库创建admin账号。 此时请保持container不关闭状态,浏览器打开`http://127.0.0.1:8090/_/ `,按提示创建admin账号(一定要使用邮箱),然后将创建的admin邮箱(再次强调,一定要用邮箱)和密码填入.env文件,重启container即可。 _如您想更改container的时区和语言【会决定prompt语言选择,但实测对呈现结果影响不大】,使用如下命令运行image_ ```bash docker run -e LANG=zh_CN.UTF-8 -e LC_CTYPE=zh_CN.UTF-8 your_image ``` 3. **【备选】直接使用python运行** ```bash conda create -n wiseflow python=3.10 conda activate wiseflow cd core pip install -r requirement.txt ``` 之后可以通过core/scrips 中的脚本分别启动pb、task和backend (将脚本文件移动到core目录下) 注意: - 一定要先启动pb,task和backend是独立进程,先后顺序无所谓,也可以按需求只启动其中一个; - 需要先去这里 https://pocketbase.io/docs/ 下载对应自己设备的pocketbase客户端,并放置在 /core/pb 目录下 - pb运行问题(包括首次运行报错等)参考 [core/pb/README.md](/core/pb/README.md) - 使用前请创建并编辑.env文件,放置在wiseflow代码仓根目录(core目录的上级),.evn文件可以参考env_sample,详细配置说明见下 📚 for developer, see [/core/README.md](/core/README.md) for more 通过 pocketbase 访问获取的数据: - http://127.0.0.1:8090/_/ - Admin dashboard UI - http://127.0.0.1:8090/api/ - REST API 4. **配置** 复制目录下的env_sample,并改名为.env, 参考如下 填入你的配置信息(LLM服务token等) - LLM_API_KEY # 大模型推理服务API KEY - LLM_API_BASE # 本项目依赖openai sdk,只要模型服务支持openai接口,就可以通过配置该项正常使用,如使用openai服务,删除这一项即可 - WS_LOG="verbose" # 设定是否开始debug观察,如无需要,删除即可 - 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数据库admin的邮箱和密码(注意一定是邮箱,可以是虚构的邮箱) - PB_API_BASE # 正常使用无需这一项,只有当你不使用默认的pocketbase本地接口(8090)时才需要 5. **模型推荐** 经过反复测试(中英文任务),综合效果和价格,**GET_INFO_MODEL**、**REWRITE_MODEL**、**HTML_PARSE_MODEL** 三项我们分别推荐 **"zhipuai/glm4-9B-chat"**、**"alibaba/Qwen2-7B-Instruct"**、**"alibaba/Qwen2-7B-Instruct"** 它们可以非常好的适配本项目,指令遵循稳定且生成效果优秀,本项目相关的prompt也是针对这三个模型进行的优化。(**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 即可使用。 😄 或者您愿意使用我的[邀请链接](https://cloud.siliconflow.cn?referrer=clx6wrtca00045766ahvexw92),这样我也可以获得更多token奖励 😄 6. **关注点和定时扫描信源添加** 启动程序后,打开pocketbase Admin dashboard UI (http://127.0.0.1:8090/_/) 6.1 打开 **tags表单** 通过这个表单可以指定你的关注点,LLM会按此提炼、过滤并分类信息。 tags 字段说明: - name, 关注点描述,**注意:要具体一些**,好的例子是:`中美竞争动向`,不好的例子是:`国际局势`。 - activated, 是否激活。如果关闭则会忽略该关注点,关闭后可再次开启。开启和关闭无需重启docker容器,会在下一次定时任务时更新。 6.2 打开 **sites表单** 通过这个表单可以指定自定义信源,系统会启动后台定时任务,在本地执行信源扫描、解析和分析。 sites 字段说明: - url, 信源的url,信源无需给定具体文章页面,给文章列表页面即可。 - per_hours, 扫描频率,单位为小时,类型为整数(1~24范围,我们建议扫描频次不要超过一天一次,即设定为24) - activated, 是否激活。如果关闭则会忽略该信源,关闭后可再次开启。开启和关闭无需重启docker容器,会在下一次定时任务时更新。 7. **本地部署** 如您所见,本项目使用7b\9b大小的LLM,且无需任何向量模型,这就意味着仅仅需要一块3090RTX(24G显存)就可以完全的对本项目进行本地化部署。 请保证您的本地化部署LLM服务兼容openai SDK,并配置 LLM_API_BASE 即可 ## 🛡️ 许可协议 本项目基于 [Apach2.0](LICENSE) 开源。 商用以及定制合作,请联系 **Email:35252986@qq.com** - 商用客户请联系我们报备登记,产品承诺永远免费。 - 对于定制客户,我们会针对您的信源和业务需求提供如下服务: - 针对客户业务场景信源的专用爬虫和解析器 - 定制信息提取和分类策略 - 针对性llm推荐甚至微调服务 - 私有化部署服务 - UI界面定制 ## 📬 联系方式 有任何问题或建议,欢迎通过 [issue](https://github.com/TeamWiseFlow/wiseflow/issues) 与我们联系。 ## 🤝 本项目基于如下优秀的开源项目: - GeneralNewsExtractor ( General Extractor of News Web Page Body Based on Statistical Learning) https://github.com/GeneralNewsExtractor/GeneralNewsExtractor - json_repair(Repair invalid JSON documents ) https://github.com/josdejong/jsonrepair/tree/main - python-pocketbase (pocketBase client SDK for python) https://github.com/vaphes/pocketbase # Citation 如果您在相关工作中参考或引用了本项目的部分或全部,请注明如下信息: ``` Author:Wiseflow Team https://openi.pcl.ac.cn/wiseflow/wiseflow https://github.com/TeamWiseFlow/wiseflow Licensed under Apache2.0 ```