menacing-american-patriot/decision-points

GitHub: menacing-american-patriot/decision-points

Decision Points 是一个基于 Flask 和 React 的 AI 驱动的业务自动化与自主创收平台。

Stars: 3 | Forks: 1

# Decision Points AI 系统 ![Decision Points AI Logo](https://i.imgur.com/5AVm5uo.jpeg) ## 概述 Decision Points 是一个 AI 驱动的系统,旨在协助完成各种业务自动化和分析任务。它提供了一个基于 Web 的仪表板,包含自动化(工作流创建/列表)、分析、洞察、客户和收入等功能页面(后四个页面目前使用占数据)。其核心功能是编排器面板(Orchestrator Panel),允许通过 WebSocket 与 Google Gemini 驱动的代理进行直接交互。该系统采用 Flask 后端、React 前端,并使用 Docker 实现简化的本地开发环境搭建。 ## 核心功能 * **功能完整的仪表板页面:** * **自动化:** 创建和列出自动化工作流。 * **分析、洞察、客户、收入:** 专用页面(目前显示从后端 API 获取的占位数据)。 * **编排器面板:** 通过 WebSocket 连接与 Gemini 驱动的 AI 代理进行实时交互,执行任务并获取实时反馈。 * **工作流管理:** 后端支持定义和管理自动化工作流。 * **API 端点:** 为仪表板数据和编排器任务提供后端 API。 * **Docker 化本地搭建:** 使用 Docker Compose 轻松搭建本地开发环境。 * **自主创收工作流:** 一个集成化工作流,由 `WorkflowManagerAgent` 协调多个专业代理(市场研究、改进、品牌、部署),用于识别、优化、品牌推广和部署简单的数字产品或服务。 ## 技术栈 * **后端:** * 语言:Python 3.9+ * 框架:Flask、Flask-SocketIO(用于 WebSocket 通信) * AI:Google Generative AI(Gemini) * **前端:** * 库:React * 构建工具:Vite * 样式:CSS(可能使用 Tailwind CSS) * **容器化:** Docker、Docker Compose * **通信:** REST API、WebSocket ## 架构概述 该系统采用客户端-服务器架构。React 前端通过 REST 调用与 Flask 后端 API 通信以获取标准数据,并通过 WebSocket 与编排器代理进行实时交互。后端利用 Google Gemini 提供 AI 能力。Docker Compose 用于管理本地开发环境,在前端和后端服务的独立容器中运行。 ## 自主创收工作流 本系统包含一个自主工作流,旨在通过识别市场需求、创建/改进简单的数字产品或服务、品牌推广并部署来产生收入。该工作流由 `WorkflowManagerAgent` 协调,涉及以下专业代理: 1. **市场研究代理:** 扫描网络、分析趋势,识别竞争低且需求高的潜在细分市场或产品创意。 2. **改进代理:** 接收初始创意或现有的简单产品并对其进行优化,可能根据研究结果添加功能、提升代码质量或增强其价值主张。 3. **品牌推广代理:** 开发简单的品牌标识,包括名称建议、Logo(可能是占位/简单生成)以及产品的营销文案。 4. **部署代理:** 接收最终产品和品牌资产,并将其部署到合适的平台(如 Vercel、Netlify、Cloudflare Pages、简单 Web 托管服务)。 `WorkflowManagerAgent` 协调这些代理的执行,在各步骤之间传递上下文和结果。用户可以通过向编排器面板发送特定提示来触发此工作流(例如,"start income workflow")。 **关于分析的说明:** `CodeGenerationAgent`(被工作流隐式使用)现在在生成的应用程序 `index.html` 中包含了基本的 Google Analytics(GA4)设置。但它使用了占位 Measurement ID(`G-XXXXXXXXXX`)。要使分析跟踪功能正常工作,您**必须**在部署的应用程序代码中将此占位符替换为您实际的 GA4 Measurement ID。 **关于 AdSense 的说明:** 同样,`CodeGenerationAgent` 包含了占位的 Google AdSense 设置(`index.html` 中的脚本和组件中的示例广告单元)。这些使用了占位 ID(`ca-pub-XXXXXXXXXXXXXXXX`、`YYYYYYYYYY`)。要使变现功能正常工作,您**必须**将这些占位符替换为您实际的 Google AdSense Publisher ID 和 Ad Unit Slot ID。您还需要一个活跃且已通过审核的 Google AdSense 账户。 ## 本地搭建(Docker - 推荐方式) 这是本地开发和测试的主要推荐方式。 * **前置条件:** 确保已安装并运行 Docker Desktop(或 Docker Engine + Docker Compose)。 * **环境设置:** * 将根目录的 `.env.example` 文件复制为 `.env`: cp .env.example .env * **关键步骤:编辑新建的 `.env` 文件并填写*所有*必需的值。** 包括: * `SECRET_KEY`:生成一个唯一的密钥(参见 `.env.example` 中的命令)。 * `GEMINI_API_KEY`:您从 Google AI Studio 获取的 API 密钥。 * **运行:** docker compose -f docker-compose.dev.yml up --build -d * 使用 `-d` 在后台(detached 模式)运行。省略此参数可直接查看日志。 * `--build` 标志确保在 Dockerfile 或上下文发生变化时重新构建镜像。建议包含此参数,尤其是在拉取代码变更后。 * **访问:** * 前端:`http://localhost:8000`(由 Vite 开发服务器提供服务,支持热重载) * 后端 API:`http://localhost:5000`(Flask 开发服务器,支持热重载) * **工作原理:** * `docker-compose.dev.yml` 定义了 `frontend` 和 `backend` 服务。 * 它使用了针对开发优化的多阶段 Dockerfile(代码使用卷挂载,使用开发服务器)。 * 服务连接在 Docker 网络上。在您**浏览器**中运行的前端 JavaScript 代码通过主机映射的端口访问 API:`http://localhost:5000`(由 `.env` 文件中的 `VITE_API_BASE_URL` 配置)。 * 根目录的 `.env` 文件为服务提供环境变量。 * **停止:** docker compose -f docker-compose.dev.yml down * *重启:* docker compose -f docker-compose.dev.yml down && docker compose -f docker-compose.dev.yml up -d ## 环境变量 以下环境变量需要在您的 `.env` 文件中配置(从 `.env.example` 复制): * `SECRET_KEY`:**(必需)** Flask 用于会话安全的强唯一密钥。使用 `python -c "import secrets; print(secrets.token_hex(32))"` 生成。 * `GEMINI_API_KEY`:**(必需)** 您用于 Google Generative AI(Gemini)的 API 密钥,从 Google AI Studio 获取。这对于编排器面板和其他 AI 功能至关重要。 * `ORCHESTRATOR_LLM_MODEL`:**(必需)** 主编排器代理的 Gemini 模型名称(例如 `gemini-1.5-pro-latest`)。该代理处理用户交互,通常受益于更强大的模型。如果未设置,默认为 `gemini-1.5-pro-latest`。 * `SPECIALIZED_AGENT_LLM_MODEL`:**(必需)** 专业代理(如市场研究、品牌推广、代码生成)的默认 Gemini 模型名称。这些代理执行专注的任务,通常可以使用更快/更便宜的模型,如 `gemini-1.5-flash-latest`。如果未设置,默认为 `gemini-1.5-flash-latest`。 * `VITE_API_BASE_URL`:**(必需)** 前端用于访问后端 API 的 URL。对于默认的 Docker 设置,此值**必须**为 `http://localhost:5000`。 * **(可选)** `GCP_PROJECT_ID`:Google Cloud Project ID,可能被 `FreelanceTaskAgent` 等代理使用。 * **(可选)** `BRAVE_API_KEY`:Brave Search 的 API 密钥,由 `WebSearchAgent` 使用。 ### 可选的代理专用 LLM 模型: 您可以通过设置特定的环境变量来为单个代理覆盖 `SPECIALIZED_AGENT_LLM_MODEL`。如果未设置代理专用变量,该代理将使用 `SPECIALIZED_AGENT_LLM_MODEL` 定义的模型。示例包括: * `MARKET_RESEARCH_LLM_MODEL`:市场研究代理的模型。 * `IMPROVEMENT_LLM_MODEL`:改进代理的模型。 * `BRANDING_LLM_MODEL`:品牌推广代理的模型。 * `DEPLOYMENT_LLM_MODEL`:部署代理的模型。 * `CODE_GENERATION_LLM_MODEL`:代码生成代理的模型。 * `CONTENT_GENERATION_LLM_MODEL`:内容生成代理的模型。 * `FREELANCE_TASK_LLM_MODEL`:自由职业任务代理的模型。 * `LEAD_GENERATION_LLM_MODEL`:潜在客户开发代理的模型。 * `MARKET_ANALYSIS_LLM_MODEL`:市场分析代理的模型。 * `MARKETING_LLM_MODEL`:营销代理的模型。 * `WEB_SEARCH_LLM_MODEL`:网络搜索代理的模型。 * `WORKFLOW_MANAGER_LLM_MODEL`:工作流管理代理的模型。 * (根据已实现的代理按需添加其他变量) ### 自主创收工作流变量: * **(可选)** `OPENAI_API_KEY`:可能被 `MarketResearchAgent` 使用。 * `FIRECRAWL_API_KEY`:**(必需)** 由 `MarketResearchAgent` 用于网页抓取。从 [Firecrawl](https://www.firecrawl.dev/) 获取。 * **(可选)** `COMPETITOR_SEARCH_PROVIDER`:竞争对手分析的搜索引擎(例如 'google')。 * **(条件必需)** `EXA_API_KEY`:在 `MarketResearchAgent` 中使用 Exa Search 时必需。从 [Exa AI](https://exa.ai/) 获取。 * **(条件必需)** `PERPLEXITY_API_KEY`:在 `MarketResearchAgent` 中使用 Perplexity AI 时必需。从 [Perplexity AI](https://docs.perplexity.ai/docs/getting-started) 获取。 * `MARKET_RESEARCH_AGENT_URL`:**(必需)** `WorkflowManagerAgent` 访问 `MarketResearchAgent` 的端点。(示例:`http://localhost:5001`) * `IMPROVEMENT_AGENT_URL`:**(必需)** `WorkflowManagerAgent` 访问 `ImprovementAgent` 的端点。(示例:`http://localhost:5002`) * `BRANDING_AGENT_URL`:**(必需)** `WorkflowManagerAgent` 访问 `BrandingAgent` 的端点。(示例:`http://localhost:5003`) * `DEPLOYMENT_AGENT_URL`:**(必需)** `WorkflowManagerAgent` 访问 `DeploymentAgent` 的端点。(示例:`http://localhost:5004`) * **(可选)** `AGENT_TIMEOUT_SECONDS`:子代理响应的最大等待时间(默认:300)。 * **(条件必需)** 部署提供商密钥(例如 `VERCEL_API_TOKEN`、`CLOUDFLARE_API_TOKEN` 等):根据所选部署平台,`DeploymentAgent` 需要这些密钥。添加您的设置所需的具体密钥。 ## API 端点 后端提供多个 API 端点,包括: * `/api/workflows`:管理工作流自动化(GET、POST)。 * `/api/analytics`:获取分析仪表板数据(GET)。 * `/api/insights`:获取洞察仪表板数据(GET)。 * `/api/customers`:获取客户仪表板数据(GET)。 * `/api/revenue`:获取收入仪表板数据(GET)。 * `/api/orchestrator/tasks`:与编排器任务相关的端点(详情可能有所不同)。 * WebSocket 端点(通常为 `/ws` 或类似路径,由 Flask-SocketIO 处理):用于与编排器面板进行实时通信。 *(注意:此列表可能不完整。完整详情请参阅后端路由定义。)* ## 开发状态 * **阶段:** 积极开发中 / 功能原型 * **核心功能:** 仪表板页面(自动化、分析等)、编排器面板(Gemini/WebSocket)、工作流后端。 * **数据:** 分析、洞察、客户、收入页面目前使用来自各自 API 端点的占位数据。 * **搭建:** Docker Compose 是标准的本地开发环境。 * **已知问题:** (在此列出任何已知问题,例如"占位数据需要替换为真实逻辑。") * **路线图:** (概述未来计划,例如"为仪表板页面实现真实数据获取"、"扩展工作流功能。") ## 贡献指南 欢迎贡献。请建立贡献指南(例如在 `CONTRIBUTING.md` 文件中),涵盖编码规范、分支策略和 Pull Request 流程。 ## 许可证 Apache License 2.0(基于先前上下文假设 - 请核实 LICENSE 文件)
标签:AI代理, API, Docker, Flask, Flask-SocketIO, Gemini LLM, HTML/CSS, Python, React, REST API, SaaS, Syscalls, Vite, WebSocket, 业务流程自动化, 产品经理工具, 人工智能, 代码示例, 依赖分析, 决策支持系统, 可视化仪表板, 品牌生成, 商业智能, 安全防御评估, 实时通信, 容器化部署, 市场分析, 收入自动化, 数字产品开发, 数据分析, 无后门, 本地开发环境, 版权保护, 生产力工具, 用户模式Hook绕过, 自主任务编排, 请求拦截, 逆向工具