Yasser03/News-Intelligence

GitHub: Yasser03/News-Intelligence

结合向量化 ML 与 LLM 推理的开源新闻智能分析平台,实现从 RSS 采集到事件提取、地理编码可视化的一站式安全情报工作流。

Stars: 0 | Forks: 0

# 新闻智能 ⚡ **可扩展的新闻分析与事件可视化工具** [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) [![Streamlit](https://img.shields.io/badge/UI-Streamlit-FF4B4B.svg)](https://streamlit.io/) [![LangChain](https://img.shields.io/badge/Agent-LangChain-green.svg)](https://langchain.com/) News Intelligence 是一个高度可扩展的混合 AI 系统,结合了向量化 ML(用于高吞吐量流过滤)与 LLM 推理(Groq/Ollama,用于上下文分析)。它能自动发现 RSS 订阅源,提取结构化的事件洞察,自动对地址进行地理编码,并为实时安全情报渲染交互式地图。 ``` # 快速批量分类已完全向量化 from src.news_binary_classifier import NewsBinaryClassifier classifier = NewsBinaryClassifier(model_path='models/') df_classified = classifier.predict(news_df) # df_classified['prediction'] 包含 'incident' 或 'non-incident' ``` ## 🌟 为什么选择 News Intelligence? ### **混合架构** - ⚡ **ML 引擎**: 逻辑回归 用于高吞吐、低延迟的过滤(可快速处理 10,000+ 条数据)。 - 🧠 **LLM 大脑**: 深度推理(Groq/Ollama)仅为过滤后的事件生成结构化影响分析和上下文摘要。 ### **核心功能** - 🔗 **RSS/Atom 订阅源发现** - 通过 Trafilatura 并行自动发现并抓取相关新闻文章。 - 🗺️ **地理空间视图** - 自动提取地址/地点,并通过地理编码生成 Folium 交互式地图。 - 🔒 **并行处理** - 多线程抓取和 LLM 调用,实现数据集的快速更新。 - 🐼 **LLM 缓存** - 内置的 LRU 缓存用于 LLM 查询,节省 token 并提升 pipeline 速度。 - 🛡️ **多后端支持** - 通过 Ollama(本地)完全免费运行,或通过 Groq(云端)API 进行扩展。 ## 🚀 快速入门 ### 1. 安装 ``` pip install -r requirements.txt ``` ### 2. 环境配置 要使用 Groq 云端后端,请在根目录下创建一个 `.env` 文件并添加您的 API key: ``` GROQ_API_KEY="your_api_key_here" ``` 您可以从 [Groq 控制台](https://console.groq.com/keys)生成新的 Groq API key。 ### 3. 模型设置 请确保您训练好的模型权重位于 `models/` 目录中: - `Logistic Regression_62k.pkl` - `label_encoder_transformer.pkl` - `word_vectorizer.pkl` ### 4. 启动仪表板 运行主 Streamlit 应用程序: ``` python -m streamlit run src/news_intelligence.py ``` ## 📚 核心组件 ### 1. 新闻二元分类器 `src/news_binary_classifier.py` 提供优化的文本向量化,用于从一般新闻标题中分离出相关事件。 | 方法 | 速度 | 丰富度 | 使用场景 | |---|---|---|---| | `predict(df)` | 快 | 高 | 准确度与吞吐量的平衡(标题 + 描述) | | `predict_from_headlines(df)` | 🚀 最快 | 中 | 对速度要求极高(仅限标题) | | `predict_with_probability(df)` | 快 | 高 | 按置信度进行阈值筛选 | **用法示例:** ``` from src.news_binary_classifier import classify_news_batch # 返回带有 'prediction' 列的 DataFrame results = classify_news_batch( df, model_path='models/', use_headlines_only=False ) ``` ### 2. 事件分析器 (LLM Pipeline) 文章经过过滤后,会进入 LLM 分析链,在单次推理调用中解析出结构化的洞察: - **事件类型**: 犯罪、毒品、抗议、爆炸、海事等。 - **影响等级**: `High`(死亡)、`Medium`(受伤)、`Low`(轻微)。 - **地点**: 自动提取国家、城市、地址/地标。 - **摘要**: 简明扼要的五句话事实报道。 ### 3. 地理空间可视化 提取的地点将通过 `Nominatim` 限速地理编码服务进行处理,直接在仪表板视图中使用 `folium` 填充交互式地图圆圈。 ## 🔥 性能与扩展 - **速度**: 特意移除了 TQDM 开销,以实现向量化文本清理。 - **限速**: 并行处理使用具有安全回退功能的封装器,完美支持云 API 供应商的速率限制。 - **Token 效率**: 基于哈希字符串的缓存响应极大地加快了重复抓取相同文章标题的速度。 ## 🎓 学习资源 - 查看 `News_Intelligence_Notebook.ipynb` 以获取分步 pipeline 创建指南。 - 查看 `SKILL.md` 获取快速的代码配置工作流。 ## 🤝 参与贡献 非常欢迎提出 Issues 和功能建议。 ## 📜 许可证 MIT 许可证。 ## 👨‍💻 作者 **Yasser Mustafa 博士** *AI 与数据科学专家 | 理论物理学博士* - 🎓 理论核物理学博士 - 💼 10 年以上生产级 AI/ML 系统经验 - 📍 位于英国泰恩河畔纽卡斯尔 - ✉️ yasser.mustafan@gmail.com - 🔗 [LinkedIn](https://www.linkedin.com/in/yasser-mustafa) | [GitHub](https://github.com/ymustafa) **基于 ❤️ 构建,用于快速威胁情报态势感知**
标签:AI安全分析, AI风险缓解, Apex, DLL 劫持, GitHub, Kubernetes, LangChain, LLM推理, LLM评估, Ollama, Python, RSS订阅, Streamlit, 事件可视化, 交互式地图, 信息提取, 向量搜索, 地理编码, 多线程处理, 大语言模型, 威胁情报, 安全情报, 实时处理, 开发者工具, 数据处理流水线, 新闻分类, 新闻情报, 无后门, 机器学习, 流数据过滤, 混合AI系统, 自动发现, 访问控制, 轻量级, 逆向工具, 逻辑回归