一、项目简介
“微舆” 是一个从0实现的创新型 多智能体 舆情分析系统,帮助大家破除信息茧房,还原舆情原貌,预测未来走向,辅助决策。用户只需像聊天一样提出分析需求,智能体开始全自动分析 国内外30+主流社媒 与 数百万条大众评论。
不仅仅体现在报告质量上,相比同类产品,我们拥有🚀六大优势:
- AI驱动的全域监控:AI爬虫集群7x24小时不间断作业,全面覆盖微博、小红书、抖音、快手等10+国内外关键社媒。不仅实时捕获热点内容,更能下钻至海量用户评论,让您听到最真实、最广泛的大众声音。
- 超越LLM的复合分析引擎:我们不仅依赖设计的5类专业Agent,更融合了微调模型、统计模型等中间件。通过多模型协同工作,确保了分析结果的深度、准度与多维视角。
- 强大的多模态能力:突破图文限制,能深度解析抖音、快手等短视频内容,并精准提取现代搜索引擎中的天气、日历、股票等结构化多模态信息卡片,让您全面掌握舆情动态。
- Agent“论坛”协作机制:为不同Agent赋予独特的工具集与思维模式,引入辩论主持人模型,通过“论坛”机制进行链式思维碰撞与辩论。这不仅避免了单一模型的思维局限与交流导致的同质化,更催生出更高质量的集体智能与决策支持。
- 公私域数据无缝融合:平台不仅分析公开舆情,还提供高安全性的接口,支持您将内部业务数据库与舆情数据无缝集成。打通数据壁垒,为垂直业务提供“外部趋势+内部洞察”的强大分析能力。
- 轻量化与高扩展性框架:基于纯Python模块化设计,实现轻量化、一键式部署。代码结构清晰,开发者可轻松集成自定义模型与业务逻辑,实现平台的快速扩展与深度定制。
始于舆情,而不止于舆情。“微舆”的目标,是成为驱动一切业务场景的简洁通用的数据分析引擎。
举个例子. 你只需简单修改Agent工具集的api参数与prompt,就可以把他变成一个金融领域的市场分析系统
附一个比较活跃的L站项目讨论帖:https://linux.do/t/topic/1009280
告别传统的数据看板,在“微舆”,一切由一个简单的问题开始,您只需像对话一样,提出您的分析需求
🏗️ 系统架构
整体架构图
Insight Agent私有数据库挖掘:私有舆情数据库深度分析AI代理
Media Agent多模态内容分析:具备强大多模态能力的AI代理
Query Agent精准信息搜索:具备国内外网页搜索能力的AI代理
Report Agent智能报告生成:内置模板的多轮报告生成AI代理
一次完整分析流程
| 步骤 | 阶段名称 | 主要操作 | 参与组件 | 循环特性 |
|---|---|---|---|---|
| 1 | 用户提问 | Flask主应用接收查询 | Flask主应用 | - |
| 2 | 并行启动 | 三个Agent同时开始工作 | Query Agent、Media Agent、Insight Agent | - |
| 3 | 初步分析 | 各Agent使用专属工具进行概览搜索 | 各Agent + 专属工具集 | - |
| 4 | 策略制定 | 基于初步结果制定分块研究策略 | 各Agent内部决策模块 | - |
| 5-N | 循环阶段 | 论坛协作 + 深度研究 | ForumEngine + 所有Agent | 多轮循环 |
| 5.1 | 深度研究 | 各Agent基于论坛主持人引导进行专项搜索 | 各Agent + 反思机制 + 论坛引导 | 每轮循环 |
| 5.2 | 论坛协作 | ForumEngine监控Agent发言并生成主持人总结 | ForumEngine + LLM主持人 | 每轮循环 |
| 5.3 | 交流融合 | 各Agent根据讨论调整研究方向 | 各Agent + forum_reader工具 | 每轮循环 |
| N+1 | 结果整合 | Report Agent收集所有分析结果和论坛内容 | Report Agent | - |
| N+2 | 报告生成 | 动态选择模板和样式,多轮生成最终报告 | Report Agent + 模板引擎 | - |
🚀 快速开始
如果你是初次学习一个Agent系统的搭建,可以从一个非常简单的demo开始:Deep Search Agent Demo
环境要求
- 操作系统: Windows、Linux、MacOS
- Python版本: 3.9+
- Conda: Anaconda或Miniconda
- 数据库: MySQL(可选择我们的云数据库服务)
- 内存: 建议2GB以上
1. 创建Conda环境
# 创建conda环境conda create -n your_conda_name python=3.11conda activate your_conda_name2. 安装依赖包
# 基础依赖安装pip install -r requirements.txt# 如果不想使用本地情感分析模型(算力需求很小,默认安装cpu版本),可以将该文件中的“机器学习”部分注释掉再执行指令3. 安装Playwright浏览器驱动
# 安装浏览器驱动(用于爬虫功能)playwright install chromium4. 配置系统
4.1 配置API密钥
复制一份config.py.example文件,命名为config.py
编辑config.py文件,填入您的API密钥(您也可以选择自己的模型、搜索代理,详情见config文件内):
# MySQL数据库配置DB_HOST = "localhost"DB_PORT = 3306DB_USER = "your_username"DB_PASSWORD = "your_password"DB_NAME = "your_db_name"DB_CHARSET = "utf8mb4"# LLM配置# 您可以更改每个部分LLM使用的API,只要兼容OpenAI请求格式都可以# Insight AgentINSIGHT_ENGINE_API_KEY = "your_api_key"INSIGHT_ENGINE_BASE_URL = "https://api.moonshot.cn/v1"INSIGHT_ENGINE_MODEL_NAME = "kimi-k2-0711-preview"# Media Agent...4.2 数据库初始化
选择1:使用本地数据库
MindSpider爬虫系统跟舆情系统是各自独立的,所以需要再去
MindSpider\config.py配置一下,复制MindSpider文件夹下的config.py.example文件,命名为config.py
# 本地MySQL数据库初始化cd MindSpiderpython schema/init_database.py选择2:使用云数据库服务(推荐)
我们提供便捷的云数据库服务,包含日均10万+真实舆情数据,目前免费申请!
- 真实舆情数据,实时更新
- 多维度标签分类
- 高可用云端服务
- 专业技术支持
联系我们申请免费云数据库访问:📧 670939375@qq.com
为进行数据合规性审查与服务升级,云数据库自2025年10月1日起暂停接收新的使用申请
5. 启动系统
5.1 完整系统启动(推荐)
# 在项目根目录下,激活conda环境conda activate your_conda_name# 启动主应用即可python app.py注1:一次运行终止后,streamlit app可能结束异常仍然占用端口,此时搜索占用端口的进程kill掉即可
注2:数据爬取需要单独操作,见5.3指引
注3:如果服务器远程部署出现页面显示问题,见PR#45
访问 http://localhost:5000 即可使用完整系统
5.2 单独启动某个Agent
# 启动QueryEnginestreamlit run SingleEngineApp/query_engine_streamlit_app.py --server.port 8503# 启动MediaEngine streamlit run SingleEngineApp/media_engine_streamlit_app.py --server.port 8502# 启动InsightEnginestreamlit run SingleEngineApp/insight_engine_streamlit_app.py --server.port 85015.3 爬虫系统单独使用
这部分有详细的配置文档:MindSpider使用说明
MindSpider 运行示例
# 进入爬虫目录cd MindSpider# 项目初始化python main.py --setup# 运行完整爬虫流程python main.py --complete --date 2024-01-20# 仅运行话题提取python main.py --broad-topic --date 2024-01-20# 仅运行深度爬取python main.py --deep-sentiment --platforms xhs dy wb⚙️ 高级配置
修改关键参数
Agent配置参数
每个Agent都有专门的配置文件,可根据需求调整,下面是部分示例:
# QueryEngine/utils/config.pyclass Config: max_reflections = 2 # 反思轮次 max_search_results = 15 # 最大搜索结果数 max_content_length = 8000 # 最大内容长度 # MediaEngine/utils/config.py class Config: comprehensive_search_limit = 10# 综合搜索限制 web_search_limit = 15 # 网页搜索限制 # InsightEngine/utils/config.pyclass Config: default_search_topic_globally_limit = 200 # 全局搜索限制 default_get_comments_limit = 500 # 评论获取限制 max_search_results_for_llm = 50 # 传给LLM的最大结果数情感分析模型配置
# InsightEngine/tools/sentiment_analyzer.pySENTIMENT_CONFIG = { 'model_type': 'multilingual', # 可选: 'bert', 'multilingual', 'qwen'等 'confidence_threshold': 0.8, # 置信度阈值 'batch_size': 32, # 批处理大小 'max_sequence_length': 512, # 最大序列长度}接入不同的LLM模型
支持任意openAI调用格式的LLM提供商,只需要在/config.py中填写对应的KEY、BASE_URL、MODEL_NAME即可。
更改情感分析模型
系统集成了多种情感分析方法,可根据需求选择:
1. 多语言情感分析
cd SentimentAnalysisModel/WeiboMultilingualSentimentpython predict.py --text "This product is amazing!" --lang "en"2. 小参数Qwen3微调
cd SentimentAnalysisModel/WeiboSentiment_SmallQwenpython predict_universal.py --text "这次活动办得很成功"3. 基于BERT的微调模型
# 使用BERT中文模型cd SentimentAnalysisModel/WeiboSentiment_Finetuned/BertChinese-Lorapython predict.py --text "这个产品真的很不错"4. GPT-2 LoRA微调模型
cd SentimentAnalysisModel/WeiboSentiment_Finetuned/GPT2-Lorapython predict.py --text "今天心情不太好"5. 传统机器学习方法
cd SentimentAnalysisModel/WeiboSentiment_MachineLearningpython predict.py --model_type "svm" --text "服务态度需要改进"接入自定义业务数据库
1. 修改数据库连接配置
# config.py 中添加您的业务数据库配置BUSINESS_DB_HOST = "your_business_db_host"BUSINESS_DB_PORT = 3306BUSINESS_DB_USER = "your_business_user"BUSINESS_DB_PASSWORD = "your_business_password"BUSINESS_DB_NAME = "your_business_database"2. 创建自定义数据访问工具
# InsightEngine/tools/custom_db_tool.pyclass CustomBusinessDBTool: """自定义业务数据库查询工具""" def __init__(self): self.connection_config = { 'host': config.BUSINESS_DB_HOST, 'port': config.BUSINESS_DB_PORT, 'user': config.BUSINESS_DB_USER, 'password': config.BUSINESS_DB_PASSWORD, 'database': config.BUSINESS_DB_NAME, } def search_business_data(self, query: str, table: str): """查询业务数据""" # 实现您的业务逻辑 pass def get_customer_feedback(self, product_id: str): """获取客户反馈数据""" # 实现客户反馈查询逻辑 pass3. 集成到InsightEngine
# InsightEngine/agent.py 中集成自定义工具from .tools.custom_db_tool import CustomBusinessDBToolclass DeepSearchAgent: def __init__(self, config=None): # ... 其他初始化代码 self.custom_db_tool = CustomBusinessDBTool() def execute_custom_search(self, query: str): """执行自定义业务数据搜索""" return self.custom_db_tool.search_business_data(query, "your_table")自定义报告模板
1. 在Web界面中上传
系统支持上传自定义模板文件(.md或.txt格式),可在生成报告时选择使用。
2. 创建模板文件
在ReportEngine/report_template/目录下创建新的模板,我们的Agent会自行选用最合适的模板。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。