确保您的系统已安装以下工具:
# 1. 克隆项目
git clone https://cnb.cool/XMZZUZHI/AgentRun/opinion_analysis.git
cd opinion_analysis
# 2. 安装依赖
make install
# 3. 配置环境变量
# 编辑 src/backend/.env 文件,添加必要的配置
# 4. 启动开发环境
make dev
# 访问 http://localhost:8000
make verify
舆情分析专家是一个基于 PydanticAI 框架构建的全栈智能舆情分析系统,采用前后端分离架构,能够自动收集、分析和总结网络舆情信息,为企业和组织提供实时的舆情监测和分析服务。
架构说明:
@ag-ui/client - AG-UI 协议客户端@novnc/novnc - VNC 客户端html2canvas - 截图导出html2pdf - PDF 导出pydantic-ai-slim - PydanticAI 核心库agentrun-sdk - AgentRun SDKpandas - 数据处理googlesearch-python - 搜索功能logfire - 日志记录opinion_analysis/ ├── src/ │ ├── frontend/ # 前端项目 │ │ ├── src/ │ │ │ ├── app/ # Next.js App Router │ │ │ │ ├── layout.tsx # 根布局 │ │ │ │ ├── page.tsx # 首页 │ │ │ │ └── globals.css # 全局样式 │ │ │ ├── components/ # React 组件 │ │ │ │ ├── OpinionDashboard.tsx # 舆情分析仪表盘 │ │ │ │ ├── ThemeSwitcher.tsx # 主题切换器 │ │ │ │ └── VncViewer.tsx # VNC 查看器 │ │ │ ├── hooks/ # 自定义 Hooks │ │ │ │ ├── useAgentState.ts # Agent 状态管理 │ │ │ │ └── useTheme.tsx # 主题管理 │ │ │ └── lib/ # 工具库 │ │ │ ├── const.ts # 常量定义 │ │ │ └── types.ts # 类型定义 │ │ ├── public/ # 静态资源 │ │ │ ├── echarts/ # ECharts 库 │ │ │ ├── libs/ # 第三方库 │ │ │ └── novnc/ # noVNC 库 │ │ ├── package.json # 前端依赖 │ │ ├── next.config.ts # Next.js 配置 │ │ ├── tsconfig.json # TypeScript 配置 │ │ └── tailwind.config.js # Tailwind 配置 │ │ │ └── backend/ # 后端项目 │ ├── src/ │ │ ├── agent.py # Agent 核心逻辑 │ │ ├── main.py # FastAPI 主应用 │ │ ├── event_queue.py # 事件队列管理 │ │ └── analysis_standards.py # 分析标准 │ ├── requirements.txt # Python 依赖 │ └── .python-version # Python 版本 │ ├── public/ # 公共静态资源 ├── Makefile # 构建脚本 ├── build.yaml # 构建配置 ├── publish.yaml # 发布配置 ├── README.md # 项目文档 └── LICENSE # 许可证
组件说明:
# 安装 uv (Python 包管理器)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 验证安装
uv --version
node --version
npm --version
# 使用 Makefile 安装所有依赖
make install
# 或手动安装
cd src/frontend && npm install
cd ../backend && uv sync
创建 src/backend/.env 文件:
# LLM 配置
OPENAI_API_KEY=your_openai_api_key
OPENAI_BASE_URL=https://api.openai.com/v1
MODEL=gpt-4o-mini
# 搜索 API 配置(可选)
SEARCH_API_KEY=your_search_api_key
# AgentRun 配置
AGENTRUN_API_KEY=your_agentrun_api_key
# 日志配置
LOGFIRE_API_KEY=your_logfire_api_key
make verify
cd src/frontend
# 启动开发服务器
npm run dev
# 访问 http://localhost:3000
cd src/backend
# 启动后端服务
uv run src/main.py
# 访问 http://localhost:8000
# 构建前端并启动后端
make dev
# 访问 http://localhost:8000
# 1. 创建功能分支
git checkout -b feature/your-feature
# 2. 开发功能
# 编辑代码...
# 3. 运行代码检查
make lint
# 4. 测试功能
make dev
# 5. 提交代码
git add .
git commit -m "feat: add your feature"
# 6. 推送代码
git push origin feature/your-feature
开发流程图:
流程说明:
make lint 检查代码规范make dev 本地测试print() 调试关键信息# 安装依赖
make install
# 启动开发环境
make dev
# 构建生产版本
make build
# 运行代码检查
make lint
# 验证环境配置
make verify
# 清理构建文件
make clean
# 发布到仓库
make publish
执行 Agent 分析任务,支持实时状态推送。
请求体:
{
"run_id": "unique-run-id",
"thread_id": "thread-id",
"messages": [
{
"role": "user",
"content": "分析最近一周关于某品牌的网络舆情"
}
],
"state": {
"max_results": 50
}
}
响应类型: text/event-stream
事件类型:
RUN_STARTED - 任务开始STATE_SNAPSHOT - 状态快照RUN_ERROR - 任务错误RUN_FINISHED - 任务完成示例响应:
data: {"type":"RUN_STARTED","threadId":"thread-id","runId":"unique-run-id"} data: {"type":"STATE_SNAPSHOT","state":{"collected_count":10,"analyzed_count":5}} data: {"type":"RUN_FINISHED","threadId":"thread-id","runId":"unique-run-id"}
SSE 通信流程:
事件类型说明:
RUN_STARTED:任务开始,包含 run_id 和 thread_idSTATE_SNAPSHOT:状态快照,包含当前采集数量、分析数量等RUN_ERROR:任务错误,包含错误信息RUN_FINISHED:任务完成,表示分析流程结束获取 Browser Sandbox 的 VNC/Livestream URL。
响应:
{
"available": true,
"vnc_url": "ws://...",
"livestream_url": "ws://...",
"sandbox_id": "sandbox-id",
"message": "VNC URL 获取成功"
}
获取所有可用的 Browser Sandbox 列表。
响应:
{
"sandboxes": [
{
"sandbox_id": "sandbox-id",
"status": "running"
}
],
"count": 1
}
获取指定 Browser Sandbox 的截图。
查询参数:
sandbox_id - Sandbox ID(可选)响应: image/png
数据流说明:
状态说明:
流程说明:
本章节详细说明舆情分析系统的各种工作流程,包括用户交互、Agent 执行、错误处理和数据质量筛选。
流程说明:
流程说明:
流程说明:
流程说明:
用户输入:
分析最近一周关于"XX品牌"的网络舆情
Agent 执行流程:
输出示例:
# XX品牌舆情分析报告(2024.XX.XX - 2024.XX.XX)
## 舆情概览
- 总信息量:1,250 条
- 正面舆情:65%
- 负面舆情:15%
- 中性舆情:20%
## 热点话题
1. 新品发布(热度:85%)
2. 售后服务(热度:45%)
3. 价格调整(热度:30%)
## 情感分析趋势
[趋势图表]
## 重点关注
- 发现 3 个潜在危机点
- 建议采取应对措施...
用户输入:
分析"竞品A"和"竞品B"的用户评价对比
Agent 执行流程:
用户输入:
监控"XX事件"的舆情发展,设置负面舆情阈值
Agent 执行流程:
流程说明:
.env 文件,设置 API 密钥等make install 安装前后端依赖make build 构建生产版本make verify 验证配置正确性# 构建生产版本
make build
确保生产环境的 .env 文件配置正确:
# LLM 配置
OPENAI_API_KEY=your_production_api_key
OPENAI_BASE_URL=https://api.openai.com/v1
MODEL=gpt-4o
# 生产环境配置
ENV=production
LOG_LEVEL=warning
# 使用 Docker 部署(推荐)
docker build -t opinion-analysis .
docker run -p 8000:8000 --env-file .env opinion-analysis
# 或使用传统方式
uvicorn src.main:app --host 0.0.0.0 --port 8000 --workers 4
部署架构图:
部署说明:
server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:8000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_cache_bypass $http_upgrade; } }
# 使用 Let's Encrypt
certbot --nginx -d your-domain.com
import logfire
logfire.configure(
send_to_logfire=True,
api_key=your_logfire_api_key
)
解决方案:
解决方案:
解决方案:
解决方案:
解决方案:
解决方案:
本项目采用 AGPL-3.0 许可证。详见 LICENSE 文件。
感谢以下开源项目的支持:
通过 AgentRun 控制台的可视化配置,无需编写代码即可快速部署和定制您的舆情分析系统。