智能网页分析工具

一个基于LangChain、Ollama和Bright Data MCP的智能网页抓取与内容分析工具,支持多种网站类型的内容抓取、AI分析和可视化展示。

  • by Dhanunjay2704
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Dhanunjay2704/mcp_project

使用说明

🌐 智能Web分析器

由LangChain、Ollama和Bright Data的模型上下文协议(MCP)提供支持的智能网络抓取和内容分析应用程序。

特性

✨ 智能网页抓取

  • 支持多种网站类型(领英、推特/X、GitHub、新闻、博客和一般网页)
  • 每个平台都有自定义处理的自动URL类型检测
  • 缓存以提高重复URL的性能

🧠 AI驱动的分析

  • 多种分析模式:摘要、关键点、分析和自定义查询
  • 通过Ollama使用Gemma3 LLM进行智能内容理解
  • 基于内容类型的上下文感知提示

📊 内容度量和可视化

  • 字数统计和频率分析
  • 句子和段落分析
  • 阅读时间估算
  • 使用Plotly进行交互式可视化

💡 聪明的建议

  • 平台特定提示建议
  • 常见查询的快速访问按钮
  • 情境感知建议

📈 查询历史

  • 跟踪最近的查询和交互
  • 历史数据存储(最近50个条目)
  • 快速统计仪表板

建筑

该应用程序使用以下组件:

Streamlit UI
    ↓
Enhanced Web Analyzer Engine
    ↓
LangChain + Ollama (Gemma3 LLM)
    ↓
Bright Data MCP
    ├─ URL Scraper
    ├─ LinkedIn Scraper
    ├─ Twitter/X Scraper
    └─ Other Platform-Specific Scrapers

安装

先决条件

  • Python 3.8+
  • Ollama与Gemma3模型
  • Node.js(用于Bright Data MCP集成)
  • Bright Data API密钥

设置

  1. 克隆或下载项目

  2. 安装Python依赖项

    pip install -r requirements.txt
    
  3. 设置环境变量 创建一个 .env 项目根目录中的文件:

    BRD_API_KEY=your_bright_data_api_key
    OLLAMA_MODEL=gemma3
    
  4. 确保Ollama正在运行

    ollama run gemma3
    

用法

运行Streamlit应用程序:

streamlit run mcp_app.py

应用程序将在您的浏览器中打开 http://localhost:8501.

如何使用

  1. 启用URL上下文 (可选)

    • 检查侧边栏中的“使用URL上下文”选项
    • 输入要分析的任何URL
  2. 选择分析类型

    • 总结:获得简明概述
    • 要点:提取最重要的信息
    • 分析:获得详细的见解
    • 问题:提出有见地的问题
    • 自定义:使用您自己的提示
  3. 输入您的问题

    • 使用智能建议按钮进行快速提示
    • 或者键入您的自定义问题
  4. 查看结果

    • 获得AI驱动的响应
    • 查看内容指标和词频图
    • 在侧栏中跟踪分析历史记录

关键功能

analyze_text_metrics(text)

分析文本并返回指标,包括:

  • 单词、句子和段落计数
  • 每句平均字数
  • 最常见的10个单词
  • 预计阅读时间

detect_url_type(url)

标识URL类型并返回相应的表情符号和说明:

  • 推特/X帖子🐦
  • LinkedIn个人资料💼
  • GitHub 仓库🐙
  • 新闻/博客文章📰
  • Youtube视频📺
  • 维基百科文章📚

get_smart_suggestions(url, content)

根据URL和内容类型生成特定于平台的提示建议。

enhanced_handle_prompt(tools, is_url, url, user_prompt, analysis_type)

主要处理功能如下:

  1. 删除URL内容(如适用)
  2. 创建上下文感知提示
  3. 调用LLM
  4. 计算指标
  5. 保存到历史记录

依赖项

核心框架

  • 流明 (1.40.0)-Web UI框架
  • 语言链 (0.3.4)-LLM编排
  • 郎链型胶原 (0.2.1)-Ollama整合
  • langchain mcp适配器 (0.1.3)-MCP支持

数据和可视化

  • 熊猫 (2.2.3)-数据操作
  • 绘图 (5.24.1)-交互式图表

公用事业

  • 意图tp (3.10.10)-异步HTTP
  • 请求: (2.32.3)-HTTP请求
  • 自然语言工具包 (3.9.1)-NLP工具
  • 格式 (6.0.2)-YAML解析

配置

可以通过修改以下内容来定制应用程序:

  • LLM模型:更改模型 initialize_llm() 函数
  • 页面布局:修改 st.set_page_config() 参数
  • CSS样式:更新样式部分中的自定义CSS
  • 历史记录大小:调整中的历史记录限制 save_to_history()
  • 建议提示:修改 get_smart_suggestions() 适用于不同的平台

故障排除

问题:“找不到BRD_API_KEY”

  • 确保 .env 文件存在于项目根目录中
  • 验证API密钥设置是否正确

问题:“找不到Olama模型”

  • 跑 ollama run gemma3 下载模型
  • 确保Ollama服务正在运行

问题:性能缓慢

  • 检查您的互联网连接是否存在网络抓取
  • 确保Olama有足够的资源
  • 尝试使用较小的内容块

文件结构

mcp_project/
├── mcp_app.py          # Main application file
├── requirements.txt    # Python dependencies
├── .env               # Environment variables (create this)
└── README.md          # This file

未来的增强功能

  • []支持PDF和文档分析
  • []多语言支持
  • []高级NLP功能(实体提取、情感分析)
  • []查询历史的数据库存储
  • []用于编程访问的API端点
  • []高级过滤和搜索功能
  • []将分析结果导出为各种格式

贡献

欢迎投稿!请随时提交问题或拉取请求。

许可证

这个项目是开源的,可以在MIT许可证下使用。

支持

对于问题或疑问,请在项目存储库中创建问题或联系维护人员。


内置于❤️ 使用Streamlit、LangChain和Bright Data MCP