马一丁

Updata README.md

Showing 1 changed file with 132 additions and 62 deletions
@@ -124,123 +124,193 @@ LLM模型API赞助:<a href="https://aihubmix.com/?aff=8Ds9" target="_blank"><i @@ -124,123 +124,193 @@ LLM模型API赞助:<a href="https://aihubmix.com/?aff=8Ds9" target="_blank"><i
124 ``` 124 ```
125 BettaFish/ 125 BettaFish/
126 ├── QueryEngine/ # 国内外新闻广度搜索Agent 126 ├── QueryEngine/ # 国内外新闻广度搜索Agent
127 -│ ├── agent.py # Agent主逻辑 127 +│ ├── agent.py # Agent主逻辑,协调搜索与分析流程
128 │ ├── llms/ # LLM接口封装 128 │ ├── llms/ # LLM接口封装
129 -│ ├── nodes/ # 处理节点 129 +│ │ └── base.py # 统一的OpenAI兼容客户端
  130 +│ ├── nodes/ # 处理节点:搜索、格式化、总结等
  131 +│ │ ├── base_node.py # 基础节点类
  132 +│ │ ├── search_node.py # 搜索节点
  133 +│ │ ├── formatting_node.py # 格式化节点
  134 +│ │ ├── report_structure_node.py # 报告结构节点
  135 +│ │ └── summary_node.py # 总结节点
130 │ ├── tools/ # 搜索工具 136 │ ├── tools/ # 搜索工具
  137 +│ │ └── search.py # 网页搜索工具集
131 │ ├── utils/ # 工具函数 138 │ ├── utils/ # 工具函数
132 -│ └── ... # 其他模块 139 +│ │ ├── config.py # 配置管理
  140 +│ │ └── text_processing.py # 文本处理工具
  141 +│ ├── state/ # 状态管理
  142 +│ │ └── state.py # Agent状态定义
  143 +│ ├── prompts/ # 提示词模板
  144 +│ │ └── prompts.py # 各类提示词
  145 +│ └── __init__.py
133 ├── MediaEngine/ # 强大的多模态理解Agent 146 ├── MediaEngine/ # 强大的多模态理解Agent
134 -│ ├── agent.py # Agent主逻辑  
135 -│ ├── nodes/ # 处理节点  
136 -│ ├── llms/ # LLM接口  
137 -│ ├── tools/ # 搜索工具 147 +│ ├── agent.py # Agent主逻辑,处理视频/图片等多模态内容
  148 +│ ├── llms/ # LLM接口封装
  149 +│ │ └── base.py # 统一的OpenAI兼容客户端
  150 +│ ├── nodes/ # 处理节点:搜索、格式化、总结等
  151 +│ │ ├── base_node.py # 基础节点类
  152 +│ │ ├── search_node.py # 搜索节点
  153 +│ │ ├── formatting_node.py # 格式化节点
  154 +│ │ ├── report_structure_node.py # 报告结构节点
  155 +│ │ └── summary_node.py # 总结节点
  156 +│ ├── tools/ # 多模态搜索工具
  157 +│ │ └── search.py # 多模态内容搜索工具集
138 │ ├── utils/ # 工具函数 158 │ ├── utils/ # 工具函数
139 -│ └── ... # 其他模块 159 +│ │ ├── config.py # 配置管理
  160 +│ │ └── text_processing.py # 文本处理工具
  161 +│ ├── state/ # 状态管理
  162 +│ │ └── state.py # Agent状态定义
  163 +│ ├── prompts/ # 提示词模板
  164 +│ │ └── prompts.py # 各类提示词
  165 +│ └── __init__.py
140 ├── InsightEngine/ # 私有数据库挖掘Agent 166 ├── InsightEngine/ # 私有数据库挖掘Agent
141 -│ ├── agent.py # Agent主逻辑 167 +│ ├── agent.py # Agent主逻辑,协调数据库查询与分析
142 │ ├── llms/ # LLM接口封装 168 │ ├── llms/ # LLM接口封装
143 -│ │ └── base.py # 统一的 OpenAI 兼容客户端  
144 -│ ├── nodes/ # 处理节点 169 +│ │ └── base.py # 统一的OpenAI兼容客户端
  170 +│ ├── nodes/ # 处理节点:搜索、格式化、总结等
145 │ │ ├── base_node.py # 基础节点类 171 │ │ ├── base_node.py # 基础节点类
  172 +│ │ ├── search_node.py # 搜索节点
146 │ │ ├── formatting_node.py # 格式化节点 173 │ │ ├── formatting_node.py # 格式化节点
147 │ │ ├── report_structure_node.py # 报告结构节点 174 │ │ ├── report_structure_node.py # 报告结构节点
148 -│ │ ├── search_node.py # 搜索节点  
149 │ │ └── summary_node.py # 总结节点 175 │ │ └── summary_node.py # 总结节点
150 │ ├── tools/ # 数据库查询和分析工具 176 │ ├── tools/ # 数据库查询和分析工具
151 │ │ ├── keyword_optimizer.py # Qwen关键词优化中间件 177 │ │ ├── keyword_optimizer.py # Qwen关键词优化中间件
152 -│ │ ├── search.py # 数据库操作工具集 178 +│ │ ├── search.py # 数据库操作工具集(话题搜索、评论获取等)
153 │ │ └── sentiment_analyzer.py # 情感分析集成工具 179 │ │ └── sentiment_analyzer.py # 情感分析集成工具
  180 +│ ├── utils/ # 工具函数
  181 +│ │ ├── config.py # 配置管理
  182 +│ │ ├── db.py # SQLAlchemy异步引擎与只读查询封装
  183 +│ │ └── text_processing.py # 文本处理工具
154 │ ├── state/ # 状态管理 184 │ ├── state/ # 状态管理
155 -│ │ ├── __init__.py  
156 │ │ └── state.py # Agent状态定义 185 │ │ └── state.py # Agent状态定义
157 │ ├── prompts/ # 提示词模板 186 │ ├── prompts/ # 提示词模板
158 -│ │ ├── __init__.py  
159 │ │ └── prompts.py # 各类提示词 187 │ │ └── prompts.py # 各类提示词
160 -│ └── utils/ # 工具函数  
161 -│ ├── __init__.py  
162 -│ ├── config.py # 配置管理  
163 -│ ├── db.py # SQLAlchemy异步引擎与只读查询封装  
164 -│ └── text_processing.py # 文本处理工具 188 +│ └── __init__.py
165 ├── ReportEngine/ # 多轮报告生成Agent 189 ├── ReportEngine/ # 多轮报告生成Agent
166 -│ ├── agent.py # 串联模板→布局→篇幅→章节→渲染的总调度 190 +│ ├── agent.py # 总调度器:模板选择→布局→篇幅→章节→渲染
167 │ ├── flask_interface.py # Flask/SSE入口,管理任务排队与流式事件 191 │ ├── flask_interface.py # Flask/SSE入口,管理任务排队与流式事件
168 │ ├── llms/ # OpenAI兼容LLM封装 192 │ ├── llms/ # OpenAI兼容LLM封装
169 │ │ └── base.py # 统一的流式/重试客户端 193 │ │ └── base.py # 统一的流式/重试客户端
170 -│ ├── core/ # 模板切片、章节落盘与装订工具 194 +│ ├── core/ # 核心功能:模板解析、章节存储、文档装订
171 │ │ ├── template_parser.py # Markdown模板切片与slug生成 195 │ │ ├── template_parser.py # Markdown模板切片与slug生成
172 │ │ ├── chapter_storage.py # 章节run目录、manifest与raw流写入 196 │ │ ├── chapter_storage.py # 章节run目录、manifest与raw流写入
173 │ │ └── stitcher.py # Document IR装订器,补齐锚点/元数据 197 │ │ └── stitcher.py # Document IR装订器,补齐锚点/元数据
174 -│ ├── ir/ # 报告IR契约与校验  
175 -│ │ ├── schema.py # 块/标记Schema常量 198 +│ ├── ir/ # 报告中间表示(IR)契约与校验
  199 +│ │ ├── schema.py # 块/标记Schema常量定义
176 │ │ └── validator.py # 章节JSON结构校验器 200 │ │ └── validator.py # 章节JSON结构校验器
177 │ ├── nodes/ # 全流程推理节点 201 │ ├── nodes/ # 全流程推理节点
178 │ │ ├── base_node.py # 节点基类+日志/状态钩子 202 │ │ ├── base_node.py # 节点基类+日志/状态钩子
179 │ │ ├── template_selection_node.py # 模板候选收集与LLM筛选 203 │ │ ├── template_selection_node.py # 模板候选收集与LLM筛选
180 │ │ ├── document_layout_node.py # 标题/目录/主题设计 204 │ │ ├── document_layout_node.py # 标题/目录/主题设计
181 -│ │ ├── word_budget_node.py # 篇幅规划与章节指令 205 +│ │ ├── word_budget_node.py # 篇幅规划与章节指令生成
182 │ │ └── chapter_generation_node.py # 章节级JSON生成+校验 206 │ │ └── chapter_generation_node.py # 章节级JSON生成+校验
183 │ ├── prompts/ # 提示词库与Schema说明 207 │ ├── prompts/ # 提示词库与Schema说明
184 │ │ └── prompts.py # 模板选择/布局/篇幅/章节提示词 208 │ │ └── prompts.py # 模板选择/布局/篇幅/章节提示词
185 │ ├── renderers/ # IR渲染器 209 │ ├── renderers/ # IR渲染器
186 -│ │ └── html_renderer.py # Document IR → 交互式HTML 210 +│ │ ├── html_renderer.py # Document IR → 交互式HTML
  211 +│ │ ├── pdf_renderer.py # HTML → PDF导出(WeasyPrint)
  212 +│ │ ├── pdf_layout_optimizer.py # PDF布局优化器
  213 +│ │ └── chart_to_svg.py # 图表转SVG工具
187 │ ├── state/ # 任务/元数据状态模型 214 │ ├── state/ # 任务/元数据状态模型
188 │ │ └── state.py # ReportState与序列化工具 215 │ │ └── state.py # ReportState与序列化工具
189 -│ ├── utils/ # 配置与日志工具  
190 -│ │ └── config.py # Pydantic Settings与打印助手  
191 -│ ├── report_template/ # Markdown模板库(企业/市场/例行/政策/热点/突发场景)  
192 -│ └── ... # 其余缓存/__init__.py等  
193 -├── ForumEngine/ # 论坛引擎简易实现  
194 -│ ├── monitor.py # 日志监控和论坛管理  
195 -│ └── llm_host.py # 论坛主持人LLM模块  
196 -├── MindSpider/ # 微博爬虫系统  
197 -│ ├── main.py # 爬虫主程序 216 +│ ├── utils/ # 配置与辅助工具
  217 +│ │ ├── config.py # Pydantic Settings与打印助手
  218 +│ │ ├── dependency_check.py # 依赖检查工具
  219 +│ │ ├── json_parser.py # JSON解析工具
  220 +│ │ ├── chart_validator.py # 图表校验工具
  221 +│ │ └── chart_repair_api.py # 图表修复API
  222 +│ ├── report_template/ # Markdown模板库
  223 +│ │ ├── 企业品牌声誉分析报告.md
  224 +│ │ └── ...
  225 +│ └── __init__.py
  226 +├── ForumEngine/ # 论坛引擎:Agent协作机制
  227 +│ ├── monitor.py # 日志监控和论坛管理核心
  228 +│ ├── llm_host.py # 论坛主持人LLM模块
  229 +│ └── __init__.py
  230 +├── MindSpider/ # 社交媒体爬虫系统
  231 +│ ├── main.py # 爬虫主程序入口
198 │ ├── config.py # 爬虫配置文件 232 │ ├── config.py # 爬虫配置文件
199 │ ├── BroadTopicExtraction/ # 话题提取模块 233 │ ├── BroadTopicExtraction/ # 话题提取模块
  234 +│ │ ├── main.py # 话题提取主程序
200 │ │ ├── database_manager.py # 数据库管理器 235 │ │ ├── database_manager.py # 数据库管理器
201 │ │ ├── get_today_news.py # 今日新闻获取 236 │ │ ├── get_today_news.py # 今日新闻获取
202 -│ │ ├── main.py # 话题提取主程序  
203 │ │ └── topic_extractor.py # 话题提取器 237 │ │ └── topic_extractor.py # 话题提取器
204 -│ ├── DeepSentimentCrawling/ # 深度舆情爬取  
205 -│ │ ├── keyword_manager.py # 关键词管理器 238 +│ ├── DeepSentimentCrawling/ # 深度舆情爬取模块
206 │ │ ├── main.py # 深度爬取主程序 239 │ │ ├── main.py # 深度爬取主程序
207 -│ │ ├── MediaCrawler/ # 媒体爬虫核心  
208 -│ │ └── platform_crawler.py # 平台爬虫管理  
209 -│ └── schema/ # 数据库结构 240 +│ │ ├── keyword_manager.py # 关键词管理器
  241 +│ │ ├── platform_crawler.py # 平台爬虫管理
  242 +│ │ └── MediaCrawler/ # 媒体爬虫核心(微博/抖音/小红书等)
  243 +│ │ ├── main.py
  244 +│ │ ├── config/ # 各平台配置
  245 +│ │ ├── media_platform/ # 各平台爬虫实现
  246 +│ │ └── ...
  247 +│ └── schema/ # 数据库结构定义
210 │ ├── db_manager.py # 数据库管理器 248 │ ├── db_manager.py # 数据库管理器
211 -│ ├── init_database.py # 数据库初始化  
212 -│ ├── mindspider_tables.sql # 数据库表结构 249 +│ ├── init_database.py # 数据库初始化脚本
  250 +│ ├── mindspider_tables.sql # 数据库表结构SQL
213 │ ├── models_bigdata.py # 大规模媒体舆情表的SQLAlchemy映射 251 │ ├── models_bigdata.py # 大规模媒体舆情表的SQLAlchemy映射
214 -│ └── models_sa.py # DailyTopic/Task等扩展表ORM 252 +│ └── models_sa.py # DailyTopic/Task等扩展表ORM模型
215 ├── SentimentAnalysisModel/ # 情感分析模型集合 253 ├── SentimentAnalysisModel/ # 情感分析模型集合
216 │ ├── WeiboSentiment_Finetuned/ # 微调BERT/GPT-2模型 254 │ ├── WeiboSentiment_Finetuned/ # 微调BERT/GPT-2模型
217 -│ ├── WeiboMultilingualSentiment/ # 多语言情感分析(推荐) 255 +│ │ ├── BertChinese-Lora/ # BERT中文LoRA微调
  256 +│ │ │ ├── train.py
  257 +│ │ │ ├── predict.py
  258 +│ │ │ └── ...
  259 +│ │ └── GPT2-Lora/ # GPT-2 LoRA微调
  260 +│ │ ├── train.py
  261 +│ │ ├── predict.py
  262 +│ │ └── ...
  263 +│ ├── WeiboMultilingualSentiment/ # 多语言情感分析(推荐使用)
  264 +│ │ ├── train.py
  265 +│ │ ├── predict.py
  266 +│ │ └── ...
218 │ ├── WeiboSentiment_SmallQwen/ # 小参数Qwen3微调 267 │ ├── WeiboSentiment_SmallQwen/ # 小参数Qwen3微调
  268 +│ │ ├── train.py
  269 +│ │ ├── predict_universal.py
  270 +│ │ └── ...
219 │ └── WeiboSentiment_MachineLearning/ # 传统机器学习方法 271 │ └── WeiboSentiment_MachineLearning/ # 传统机器学习方法
  272 +│ ├── train.py
  273 +│ ├── predict.py
  274 +│ └── ...
220 ├── SingleEngineApp/ # 单独Agent的Streamlit应用 275 ├── SingleEngineApp/ # 单独Agent的Streamlit应用
221 -│ ├── query_engine_streamlit_app.py  
222 -│ ├── media_engine_streamlit_app.py  
223 -│ └── insight_engine_streamlit_app.py  
224 -├── query_engine_streamlit_reports/ # QueryEngine单应用运行生成的Markdown与state  
225 -├── media_engine_streamlit_reports/ # MediaEngine单应用运行生成的Markdown与state  
226 -├── insight_engine_streamlit_reports/ # InsightEngine单应用运行生成的Markdown与state  
227 -├── templates/ # Flask模板  
228 -│ └── index.html # 主界面前端 276 +│ ├── query_engine_streamlit_app.py # QueryEngine独立应用
  277 +│ ├── media_engine_streamlit_app.py # MediaEngine独立应用
  278 +│ └── insight_engine_streamlit_app.py # InsightEngine独立应用
  279 +├── query_engine_streamlit_reports/ # QueryEngine单应用运行输出
  280 +├── media_engine_streamlit_reports/ # MediaEngine单应用运行输出
  281 +├── insight_engine_streamlit_reports/ # InsightEngine单应用运行输出
  282 +├── templates/ # Flask前端模板
  283 +│ └── index.html # 主界面HTML
229 ├── static/ # 静态资源 284 ├── static/ # 静态资源
  285 +│ └── image/ # 图片资源
  286 +│ ├── logo_compressed.png
  287 +│ ├── framework.png
  288 +│ └── ...
230 ├── logs/ # 运行日志目录 289 ├── logs/ # 运行日志目录
231 -├── final_reports/ # 最终生成的HTML报告文件 290 +├── final_reports/ # 最终生成的报告文件
  291 +│ ├── ir/ # 报告IR JSON文件
  292 +│ └── *.html # 最终HTML报告
232 ├── utils/ # 通用工具函数 293 ├── utils/ # 通用工具函数
233 -│ ├── forum_reader.py # Agent间论坛通信 294 +│ ├── forum_reader.py # Agent间论坛通信工具
234 │ ├── github_issues.py # 统一生成GitHub Issue链接与错误提示 295 │ ├── github_issues.py # 统一生成GitHub Issue链接与错误提示
235 │ └── retry_helper.py # 网络请求重试机制工具 296 │ └── retry_helper.py # 网络请求重试机制工具
236 -├── tests/ # 关键功能测试(论坛监控、渲染安全性等)  
237 -│ ├── run_tests.py # pytest入口  
238 -│ ├── test_monitor.py # ForumEngine监控单测  
239 -│ └── test_report_engine_sanitization.py # ReportEngine章节清洗测试 297 +├── tests/ # 单元测试与集成测试
  298 +│ ├── run_tests.py # pytest入口脚本
  299 +│ ├── test_monitor.py # ForumEngine监控单元测试
  300 +│ ├── test_report_engine_sanitization.py # ReportEngine安全性测试
  301 +│ └── ...
240 ├── app.py # Flask主应用入口 302 ├── app.py # Flask主应用入口
241 -├── config.py # 全局配置文件  
242 -├── docker-compose.yml # 多服务一键部署  
243 -└── requirements.txt # Python依赖包清单 303 +├── config.py # 全局配置文件(统一管理所有LLM/DB配置)
  304 +├── .env.example # 环境变量示例文件
  305 +├── docker-compose.yml # Docker多服务编排配置
  306 +├── Dockerfile # Docker镜像构建文件
  307 +├── requirements.txt # Python依赖包清单
  308 +├── regenerate_latest_pdf.py # PDF重新生成工具脚本
  309 +├── README.md # 中文说明文档
  310 +├── README-EN.md # 英文说明文档
  311 +├── CONTRIBUTING.md # 中文贡献指南
  312 +├── CONTRIBUTING-EN.md # 英文贡献指南
  313 +└── LICENSE # GPL-2.0开源许可证
244 ``` 314 ```
245 315
246 ## 🚀 快速开始(Docker) 316 ## 🚀 快速开始(Docker)