功能文档.md 16.4 KB

AI落地页生成系统流程详解

  1. 项目创建与初始化

目标: 为用户启动一个新的落地页创建项目,记录其基本信息和当前所处的步骤。 涉及表: ai_landing_page_projects: 存储项目的基本信息(名称、状态、所属公司/用户)。 ai_landing_page_step_configs: 存储项目在不同步骤中用户输入的详细配置。 处理逻辑: 用户在前端界面发起“新建落地页项目”请求。 后端服务创建一条 ai_landing_page_projects 记录,初始状态设为 draft 或 configuring,last_step_completed 设为 0。 前端引导用户逐步完成配置步骤。

  1. 步骤式配置 (Step-by-Step Configuration)

目标: 通过引导用户完成一系列配置步骤,收集生成落地页所需的核心信息。 涉及表: ai_landing_page_step_configs: 存储所有步骤的配置数据。 步骤详解 (基于表结构推断): Step 1: 目标用户 (Target Audience) 配置项: target_audience_desc, user_pain_points, user_expectations, age_groups, gender_preference, behavior_characteristics, decision_making_styles 目的: 明确落地页是为谁而设计。 Step 2: 落地页目标 (Page Goal) 配置项: industry_primary/secondary/tertiary, marketing_goal 目的: 确定落地页的行业背景和核心营销目的(如收集线索 lead-collection、产品销售 product-sales)。 Step 3: 风格与配色 (Style & Design) 配置项: design_style, primary_color, accent_color, template_id (关联 ai_landing_page_templates) 目的: 选择落地页的视觉风格和布局模板。 Step 4: 核心卖点 (Core Value Proposition) 配置项: unique_value_proposition, core_advantages, primary_keyword, secondary_keywords 目的: 定义落地页要传达的核心信息和优化关键词。 Step 5: 页面内容 (Content Details) 配置项: content_generation_type (AI生成 ai / 自定义 custom / 上传 upload), company_name, brand_name, company_description, video_url 目的: 决定内容来源,并提供基础信息。 Step 6-N: 其他内容模块 (如CTA、表单、信任元素等) (表结构中未完全体现,但实际应用中通常会有) Step 9: 生成与部署 (Generation & Deployment) 配置项: page_title, page_description, ga_tracking_code, deployment_method (ftp/link), deployment_config, pricing_plan 目的: 设置SEO信息、跟踪代码和部署方式。 处理逻辑: 每完成一个步骤,前端将该步骤的数据发送到后端。 后端服务将数据存入或更新 ai_landing_page_step_configs 表中对应的项目记录。 更新 ai_landing_page_projects 表中的 last_step_completed 字段。 当所有步骤完成(或达到可生成状态),用户可以触发生成。

  1. 内容与资产准备

目标: 根据配置,准备AI生成所需的内容提示(Prompt)和媒体资源。 涉及表: ai_landing_page_step_configs: 获取配置信息。 ai_landing_page_assets: 获取上传的图片、Logo等。 ai_uploaded_files: 存储实际上传的文件。 处理逻辑: Prompt构建: 根据 ai_landing_page_step_configs 中的信息(如目标用户、卖点、内容类型等)和 ai_prompt_templates(如果使用模板)构建发送给Dify的Prompt。 资产关联: 如果用户上传了图片等资源,将其存入 ai_uploaded_files,并在 ai_landing_page_assets 中记录与项目的关联关系。

  1. AI生成任务创建与执行

目标: 将准备好的信息提交给AI模型(如Dify)进行落地页内容(主要是HTML)的生成。 涉及表: ai_landing_page_generation_tasks: 记录生成任务。 处理逻辑: 用户点击“生成落地页”按钮。 后端服务创建一条 ai_landing_page_generation_tasks 记录,关联到 ai_landing_page_projects,并记录使用的 dify_api_config_id、prompt_template_id 等。 调用Dify API: 将构建好的Prompt、配置信息、资产链接等发送给Dify API。 异步处理: 与文章生成类似,Dify处理需要时间,应采用异步方式处理任务状态更新。

  1. 结果接收与存储

目标: 接收Dify返回的生成结果(HTML代码),并存储。 涉及表: ai_generated_landing_pages: 存储生成的落地页HTML。 处理逻辑: 通过Dify回调或主动轮询获取生成结果。 将返回的HTML内容存入 ai_generated_landing_pages 表,关联到 project_id 和生成的 version_code (支持A/B测试)。 更新 ai_landing_page_generation_tasks 的状态为 completed。 更新 ai_landing_page_projects 的状态为 generated。

  1. 预览、编辑与发布

目标: 允许用户查看生成结果,进行微调,并最终发布。 涉及表: ai_generated_landing_pages: 提供预览内容。 ai_landing_page_projects: 更新项目状态。 ai_landing_page_step_configs: (如果允许编辑并重新生成) 处理逻辑: 预览: 前端加载 ai_generated_landing_pages 中的HTML进行展示。 编辑: (可选) 提供简单的可视化编辑器,或允许用户修改原始HTML/Markdown,保存为新版本。 发布: 根据 ai_landing_page_step_configs 中的 deployment_method 和 deployment_config 进行部署。 如果是 link 方式,生成一个可访问的链接,并存入 ai_generated_landing_pages.publish_url。 如果是 ftp 方式,则需要后端或前端(通过JS)将HTML文件上传到指定FTP服务器。 更新 ai_landing_page_projects 状态为 published。 更新 ai_generated_landing_pages 状态为 published。 落地页生成开发建议 清晰的步骤引导UI: 前端必须提供清晰、易懂的多步骤表单,引导用户完成配置。 配置数据持久化: 每一步的输入都应及时保存到 ai_landing_page_step_configs,避免用户丢失进度。 模板化Prompt: 为不同类型的落地页(如线索收集、产品销售)设计不同的Prompt模板 (ai_prompt_templates),提高生成质量。 资产管理系统: 完善文件上传、存储 (ai_uploaded_files) 和关联 (ai_landing_page_assets) 逻辑,确保AI能访问到正确的媒体资源链接。 异步任务队列: 落地页生成任务(调用Dify)应使用异步处理,通过任务ID跟踪状态,并及时更新数据库。 版本管理: 利用 ai_generated_landing_pages.version_code 实现A/B测试或多版本迭代。 部署集成: 实现 link 和 ftp 两种部署方式的后端逻辑。link 方式可能需要一个简单的静态文件服务或CDN支持;ftp 方式需要安全地处理FTP凭据。 错误处理与日志: 详细记录每个步骤和API调用的错误,方便排查问题。 SEO预设: 在 ai_landing_page_step_configs 的Step 9中预设SEO信息,并在生成HTML时正确嵌入。 数据校验: 对用户输入的各项配置进行严格校验,确保数据质量和后续流程的顺利进行。

AI文章生成系统开发文档

  1. 模块概述

本模块旨在自动化生成高质量文章内容。其核心流程包括:关键词扩展、话题发现、内容生成配置、调用AI模型(如Dify)生成文章、以及对生成内容进行SEO优化和结构化处理。

  1. 功能流程详解

2.1 关键词获取与扩展

目标: 基于初始关键词,通过搜索引擎API挖掘相关长尾词,丰富关键词库。 输入: 一个或多个初始关键词(逗号分隔,最多3个)。 企业ID (用于数据隔离和去重)。 可选:用户上传的关键词文件。 处理逻辑: 解析输入: 将逗号分隔的关键词字符串拆分为单个关键词列表。 API调用: 对列表中的每个关键词,分别调用 SearchAPI。 百度API: https://www.searchapi.io/api/v1/search?engine=baidu&q={keyword}&api_key={YOUR_API_KEY} Google API (简化版): https://www.searchapi.io/api/v1/search?engine=google_light&q={keyword}&api_key={YOUR_API_KEY} Google API (完整版): https://www.searchapi.io/api/v1/search?engine=google&q={keyword}&api_key={YOUR_API_KEY} (根据需求选择) 注意: 根据实际需求,可能需要设置 gl, hl, lr, domain 等参数以获取特定区域或语言的结果。 数据解析: 从API响应中提取 related_searches 字段(百度/Google Light/Google)。 数据存储: 将提取到的新关键词存入 ai_keywords 表。 使用 company_id 进行关联,并确保 keyword 字段在 company_id 范围内唯一 (uk_company_keyword)。如果关键词已存在,则忽略或更新计数(如 usage_count)。 用户交互: 界面回显: 将成功获取并存储的新关键词列表返回给前端界面展示。 文件导入: 提供接口支持用户上传符合固定格式的关键词文件,解析后批量存入 ai_keywords 表。 关键词加载: 提供接口,按企业ID (company_id) 查询 ai_keywords 表,并根据 usage_count 升序排序返回关键词列表供用户选择。 输出: 更新后的关键词库,前端展示的关键词列表。 2.2 话题发现与参考来源

目标: 根据选中的关键词,利用不同数据源挖掘潜在的文章主题和参考链接。 输入: 用户选中的一个或多个关键词。 用户选择的“话题参考来源”配置(来自 ai_search_sources_api 表)。 处理逻辑: 配置读取: 根据用户选择,从 ai_search_sources_api 表读取对应来源的配置 (name, source_type, api_config, result_parser)。 API请求构建: 根据 api_config 中的规则(如 engine, q 的拼接方式),为每个选中的关键词构建具体的 SearchAPI 请求URL。 示例(根据您提供的配置): 百度前10: engine=baidu&q={keyword} 谷歌前10: engine=google_light&q={keyword} (或 engine=google) 谷歌 also ask: engine=google_light&q={keyword} (解析 related_questions) 百度大家还在搜: engine=baidu&q={keyword} (解析 people_also_search_for - 注意:百度API响应字段可能不同,请核实) 知乎前10: engine=baidu&q=site:zhihu.com {keyword} 维基百科: engine=google_light&q=site:wikipedia.org {keyword} (或 engine=google) 百家号前10: engine=baidu&q=site:baijiahao.baidu.com {keyword} Quora前10: engine=google_light&q=site:quora.com {keyword} (或 engine=google) Linkedin前10: engine=google_light&q=site:linkedin.com {keyword} (或 engine=google) API调用与数据解析: 执行构建好的API请求。 根据 result_parser 中的规则(如提取 organic_results, related_questions, people_also_search_for),解析API响应,提取所需数据(通常是标题、链接)。 结果整合: 将所有来源返回的话题/链接进行整合,去重(基于链接),并可能根据来源权重或相关性进行排序。 输出: 一个包含潜在主题和参考链接的列表。 2.3 内容生成配置

目标: 收集用户对于即将生成文章的具体要求和参数。 输入: 文章主题/标题: 用户手动输入或从上一步话题发现中选择。 参考链接: 用户手动输入或从上一步话题发现中选择并勾选“高度参考”。 生成参数: 写作语言 (e.g., 中文, English) 文章类型 (e.g., 产品介绍) - 关联 ai_article_types 表 适用平台 (e.g., 官网博客) AI模型 (e.g., GPT-4, Claude) - 与Dify配置关联 文章长度 (e.g., 800-1500字符) 风格要求 (e.g., 口语化, 去除AI味) SEO选项 (e.g., 自动优化关键词布局, 生成FAQ, 生成结构化数据) 媒体选项 (e.g., AI配图, 自主配图, 视频嵌入) 权威证明 (e.g., 自动化, 自定义) 版本数 (e.g., 生成3个不同版本) 关键词链接: 用户指定主关键词和辅关键词及其对应的内链URL。 知识库: 用户选择引用企业自有知识库或上传本地文档。 处理逻辑: 表单验证: 确保必填项已填写,参数合法。 任务记录: 将用户提交的所有配置信息、选中的关键词、主题、参考链接等存入 ai_article_generation_tasks 表。 关联关系: 在 ai_task_keywords 表中记录任务与关键词的关联关系,并标记主关键词。 知识库处理: 如果选择“引用知识库”,记录关联的知识库ID。 如果选择“参考知识库上传”,调用文件上传服务,将文档解析为文本,并将解析后的文本内容或文件ID记录在任务表的 reference_content 或通过 ai_task_knowledge_files 表关联。 Dify API配置选择: 根据是否使用自有知识库,从 ai_dify_api_configs 表中选择合适的配置 (dify_api_config_id) 关联到任务。 输出: 创建成功的任务记录 (ai_article_generation_tasks ID)。 2.4 调用AI模型生成文章 (Dify)

目标: 将配置好的任务信息发送给Dify API,触发文章生成过程。 输入: ai_article_generation_tasks 表中的任务记录。 从关联表中获取的关键词、主题、参考链接、生成参数等。 处理逻辑: 数据组装: 根据Dify API的要求,将任务信息、关键词、主题、参考内容、生成参数(如Prompt模板、风格、长度)等组装成API请求体。 API调用: 调用选定的Dify API配置 (ai_dify_api_configs) 对应的接口,发起文章生成请求。 异步处理: Dify处理通常需要时间,应采用异步方式。可以轮询Dify API状态,或等待Dify回调。 输出: Dify返回的生成结果(可能包含多个版本)。 2.5 结果处理与优化

目标: 接收AI生成的原始内容,并根据配置进行后续处理和优化。 输入: Dify返回的原始文章内容(文本和HTML)、FAQ、结构化数据等。 任务配置中的优化选项。 处理逻辑: 版本存储: 将每个生成的版本分别存入 ai_generated_articles 表,使用相同的 task_id 和不同的 version 号。 关键词关联: 在 ai_article_keywords 表中记录生成文章与实际使用关键词的关联关系。 SEO优化 (可选): 分析文章内容和关键词密度,进行微调(此步骤复杂,通常由AI模型在生成时处理,或作为后处理插件)。 FAQ处理 (可选): 将Dify生成的FAQ部分存入 ai_generated_articles 表的 faq_section 字段(JSON格式)。 结构化数据 (可选): 将Dify生成的JSON-LD结构化数据存入 ai_generated_articles 表的 structured_data 字段,或存入单独的 ai_article_structured_data 表。 媒体处理 (可选): AI配图: 根据文章内容或用户提示,调用如 Pollinations 等API生成图片,并将图片信息存入 ai_article_media 表。 自主配图/视频: 记录用户提供的图片/视频URL和描述信息到 ai_article_media 表。 权威证明 (可选): 根据配置生成 sameAs 等信息(可能需要嵌入到结构化数据中)。 输出: 存储在数据库中的、经过处理和优化的多个文章版本。

  1. 数据库表关系梳理 (基于提供内容) ai_keywords: 存储关键词及其元数据。 ai_search_sources_api: 存储话题来源的API配置。 ai_article_generation_tasks: 存储每次生成任务的配置和状态。 ai_task_keywords: 任务与关键词的规划关联。 ai_generated_articles: 存储AI生成的最终文章内容(多版本)。 ai_article_keywords: 文章与实际使用关键词的关联。 ai_article_topics: 文章与话题的关联(如果需要)。 ai_article_media: 文章关联的图片、视频等媒体资源。 ai_task_knowledge_files: 任务使用的上传知识库文件。 ai_dify_api_configs: Dify API的配置信息。 ai_prompt_templates: Prompt模板(如果使用)。 ai_article_types: 文章类型定义。 ai_article_structured_data: (可选) 文章结构化数据单独存储。
  2. 开发建议 模块化设计: 将流程拆分为独立的服务或函数:关键词扩展服务、话题发现服务、任务创建服务、Dify调用服务、结果处理服务。 异步处理: 话题发现、Dify调用、结果优化等耗时操作应使用消息队列(如 RabbitMQ, Redis Queue)或异步任务框架(如 Celery)处理,避免阻塞用户界面。 API调用容错: 对SearchAPI和Dify API的调用实现重试机制和错误处理(如超时、API限制、返回错误码)。 配置管理: 将API Key (vAvKvXELE3fyDCp6ZXhTGd9e)、Dify配置、SearchAPI参数等敏感信息和可变配置存放在环境变量或配置中心,而非硬编码。 缓存策略: 对于频繁请求的相同关键词的 related_searches 结果,可以考虑使用缓存(如 Redis)来减少API调用次数和成本。 前端交互: 提供清晰的步骤引导用户完成流程。 实现关键词加载、话题列表展示、任务配置表单、生成进度提示、多版本结果展示等功能。 日志记录: 详细记录每个步骤的操作日志和API调用日志,便于调试和问题追踪。 权限控制: 确保用户只能访问和操作其所属企业的数据(基于 company_id)。 数据校验与清洗: 对从API获取的数据(如关键词、链接、文章内容)进行必要的清洗和校验,防止注入攻击或无效数据。 SEO优化深度: 基础的关键词密度检查可以实现,但复杂的SEO优化(如语义分析、可读性评分)建议依赖AI模型能力或集成专业SEO工具。