Q Steam
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # To Dify # 面试复盘 ## 论坛什么用 昨天和本文稿之前篇都提到了,内容沉淀这点。但这里补充一点,我昨天看了 n8n 的论坛,dify 有一点可以增强的是,账号打通,SaaS 和论坛注册的账号打通,这样一个 SaaS 用户在论坛提的问题,也能被看到。 n8n 和 dify 的产品差异性不大的情况下(至少目前没有太大的壁垒,技术和产品设计都如此),谁更“**懂**”用户就更重要了,这个懂基于对整个地域市场的了解,也具象到这个人的了解。论坛作为后者的补充,账号打通是必须的。 > 插一嘴:这个账号打通只是运营商的暂时的壁垒,但这个东西好抄袭,真要解决的是产品的壁垒。nebula 和国外老牌 neo4j 的对比就是 nebula 能处理更大数据量,架构上计算分离(技术产品架构是比较难改的),资源充分利用。dify 和 n8n 最大的产品差异? 大致形态参考: ![image](https://hackmd.io/_uploads/SkAMPRUJWe.png) ## 翻译软件 面试的时候提了一点,但是就这个问题稍微展开下(因为在博客写了,所以直接截图了),简而言之,主要问题是发的**内容**是什么,其次是**人的问题**,最后是翻译软件使用问题。 ![image](https://hackmd.io/_uploads/SJALfn-J-e.png) ### prompt 参考 ``` # 角色:资深开发者兼技术布道者 你是一名以英语为母语的资深开发者(SDE)和技术布道者。 # 核心风格:专业术语 + 口语化叙述 这是你的核心翻译准则:你必须在“技术精准”和“语气自然”间找到完美平衡。 1. **技术术语 (Tech Terms)**: 在谈论技术概念、架构、代码和术语时,必须 100% 专业、精准、符合行业标准。 2. **非技术措辞 (Wording & Tone)**: 在叙述、连接和解释时,必须使用**口语化、非正式、轻松**的风格。使用自然的日常对话方式,就像在和同事进行技术评审 (Code Review) 或在 Slack 里聊天。 **风格示例**: * **中文原文**:“为了优化性能,该函数被设计为异步处理高并发请求。因此,调用者不应立即假定操作已完成。” * **[禁止] 过度书面语**:`In order to optimize performance, this function is designed to process high-concurrency requests asynchronously. Therefore, the caller should not immediately assume the operation is complete.` * **[标准] 混合风格 (你应采用的)**:`So, to boost performance, this function handles high-concurrency requests asynchronously. This just means the caller shouldn't assume the operation is done right away.` --- # 工作流程 ## 1. 评估语境(最重要) 你必须先判断中文内容的**预期使用场景**。 * **[行动]**:如果语境不明确(例如:只有一个词“部署”),**必须先询问**:“这个词/这句话的预期使用场景是什么?(例如:UI 按钮、文档描述,还是回复用户提问?)” * **[例外]**:如果我已提供语境(例如:`回复用户: 提交`),则直接进入第2步。 ## 2. 翻译原则 (按语境调整) * **(A) 回复用户 / 博客 / 讨论 (默认场景)**: * **原则**:严格遵循上述的 **[核心风格]**(专业术语 + 口语化叙述)。 * **(B) 技术文档/API参考**: * **原则**:同样遵循 **[核心风格]**,但可以稍微正式一点(例如,使用完整的句子),但依然要避免僵硬的学术腔。 * **(C) UI/界面字符串** (如:按钮, 标签): * **原则**:此时**忽略**口语化。规则是:极度简洁。多用动词原形或名词。 * *例:中文“删除文件” -> (按钮) `Delete File`* * **(D) Git Commit 信息**: * **原则**:此时**忽略**口语化。遵循 [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) 规范。 * *例:中文“修复了删除文件的bug” -> `fix: Correctly handle file deletion errors`* * **(E) 代码注释**: * **原则:** 简洁明了,帮助理解即可。 * *例:中文“删除文件” -> (注释) `// Handle file deletion`* ``` ### 测试用例 输入: `ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.` 错误一般发生在原数据定义时,列表的维度不统一。可以检查下原始定义。方便的话,麻烦告知下包含版本信息、部署方式、workflow 流动方向等等环境信息。 输出:Ah, that `ValueError`. You usually run into that when your arrays have an **inhomogeneous shape**—basically, the lists you're using to build it don't all have the same dimensions. I'd **check the original data definition** first. Also, if you get a chance, could you share a bit more **env info**? Things like **version info, your deployment method, the workflow direction**, etc., would be super helpful. ## 数据收集 昨天没提到 nebula 的数据收集这块,很多时候会说数据分析,数据用来做决策支持,同上面论坛什么用一样,数据让我们更了解用户,对某个人能做更好地转化。 nebula 数据收集问卷链接:https://wj.qq.com/s2/8321168/8e2f 入口: 1. 同步多渠道的对外文章末尾; 2. 论坛、官网等自建渠道; ## 论坛初启动 ### 内容生成(提问) 导流:从社群导流,将社群提问者往论坛上引导。 注意事项:这里不要粗暴引导,即不要所有问题都往论坛上导。区分:一次性且重复的问题(文档咨询、产品功能咨询、销售咨询等等),用户具体使用过程中遇到的问题。 前者,诸如: 1. Dify 支持不支持 xx 模型? 2. 本地部署 Dify 的最低条件 3. 上面这类内容,第一次出现都可以往上论坛上引导,给论坛的问答留一个“底”,后续再出现可以不往论坛上引导。而回复起来也是一句话的事情,“是” or “不是”,如果简单粗暴地让用户上去提的话,有些用户可能会觉得,这么简单的问题为什么要去特定的地方,那我**加社群干嘛用**? ### 内容生产(回复) nebula 论坛建站开始,实施的一直都是研发 oncall 机制,一周两个研发,下周换下一组。所有研发给了 nebula member 的群组徽章(论坛回复就能看见),是想建立**回答的权威性**。前面说过这个机制会让用户对官方回复产生依赖,建议统一使用 dify-committer、dify-contributor 之类的徽章。 回复只要保证一点,“相对及时”、“有用性”即可。它可以是其他用户的建设性意见,也可以是官方的权威回复。所以,权威性不是必要的。但,时效是很重要的。所以得关注问题的回复情况,最好有一个名单,再这个名单上的人,都是 dify 可以找他们帮忙回复问题的,名单上的人可以是内部研发,也可以是外部的 contributor,或者只是相识关系不错的用户。 ### 其他(体感) 为了避免让用户产生这个站点没人回复、只有运营人员自嗨的体感,不建议让某人频繁刷屏(我在运营思否(程序员界的知乎)和掘金(程序员界的 Medium)也是避免单用户屠版信息流): ![image](https://hackmd.io/_uploads/S1Gjz9YkWe.png) 如何避免: 1. 更改帖子的发布时间,一般用于已有不少其他用户内容,运营人员一次性更新了一些文档、文章的时候,将发帖时间改成不连续的,被其他用户发帖时间打乱的时间序列; 2. 隐藏一些不是特别重要的帖子,之后再修改隐藏帖子的发布时间,再发布; 3. 换 ID,多个头像发布内容; discourse 如何注册 fake 账号: discourse 需要邮箱注册、验证之后才能登录,但后台有一个人工审核通过邮箱验证的机制,所以你可以 fake 一个邮箱,注册一个暂时使用的账号,或者永久使用的账号,看你需求,将其用来解决论坛初始化问题。参考下面这些 nebula 的初始化问题(Orz 都是我的账号,虽然头像都裂了) ![image](https://hackmd.io/_uploads/H11LS5K1Wl.png) 回复的都是研发、PM。有一点都没告诉内部人员的是,他们以为这些都是真实用户的提问。。。但其实是我 fake 的小账号,如果他们知道只是我在搬运问题的话,他们会觉得和虚假的用户打交道没意思。 ### 目前建议 1. 先搬运 10-30 个让运营、研发印象深刻的问题到论坛,注意,提问者和回答者不要是一个人,提问者要是多个不同的 id; 2. 上徽章,上一波 dify-contributor、dify-committer 之类的徽章,让现在的用户上论坛领取(习惯上这个站点) ![image](https://hackmd.io/_uploads/HJqVL5Yy-x.png) 3. 发布其他徽章事迹,例如首次提问、首次回答之类的,吸引用户进行操作; 第 1 点是最重要的,请一定要好好做。10 个问题是一个屏幕左右的问题量,至少保证一个屏幕的内容量; # AI 美化版(官网页面优化、bug 请看原版) > 为了让原本看过去结构更清晰,借了 gemini pro 的手美化了下。当中被 gemini 删去了一些用户操作流程,可以看原文。 ## 新增一、 新用户引导优化:通过注册问卷精准画像 **目标:** 在不显著影响注册转化率的前提下,于用户注册流程中置入简短问卷,以建立初步的用户画像,为后续的个性化引导和商业转化奠定基础。 ### 核心逻辑 * **时机选择:** 在用户通过邮箱授权、注册成功后,跳转至应用初始页前插入问卷。此阶段用户对产品抱有最高期待,愿意用少量信息换取使用权,是数据收集的“黄金窗口”。 * **数据驱动决策:** 严格监控问卷加入前后从“注册成功”到“进入应用”的转化率。设定一个可接受的流失率阈值(例如,相较于无问卷流程,转化率下降不超过10%),以此来动态调整问卷的问题数量和形式。 ### 建议补充的问卷问题 1. **哪一种符合你的情况** * *说明*:了解用户的身份构成。 * *选项*:个人 / 独立开发者、企业雇员、政府部门雇员、高校组织(课题、学术研究) 1. **您的身份角色? (Role)** * *说明*:了解用户的职能,直接关联其使用场景。 * *选项*:开发者/工程师、产品经理、运营/市场、业务/销售、学生/研究员、个人爱好者、其他 2. **您的团队规模? (Team Size)** * *说明*:评估潜在商业价值(ARR/LTV)的关键指标,也可以作为 pricing 团队人数的参考。 * *选项*:小于 3 人、3 - 5 人、6 - 10 人、10 + 人 3. **您计划使用 Dify 构建什么? (Primary Use Case)** * *说明*:这是实现场景化引导的核心,应设为多选题。 * *选项(示例)*: * 构建智能客服与对话机器人 (Intelligent Customer Service) * 内容创作与自动化营销 (Content Creation & Marketing Automation) * 企业内部知识库与AI助理 (Internal Knowledge Base & AI Assistant) * 数据分析与报告生成 (Data Analysis & Reporting) * 我还在探索... (Still Exploring...) ### 后续动作补充 * **个性化邮件跟进 (Onboarding Email Sequence)**:注册一周后,可根据用户在问卷中的画像,自动触发个性化邮件。例如,对“未进行任何操作”的用户发送引导邮件,附上对应场景的教程链接和个人客服联系方式,主动破冰。 --- ## 二、 场景化运营:从“模板市场”到“预设工作流” ### 核心痛点 当前的应用模板市场解决了“插件如何组装”的问题,但没有解决用户更核心的“在哪里用”的问题。用户从察觉需求到找到并安装正确模板的路径过长,每一步都存在流失。 ### 解决方案 * **变“人找模板”为“场景找人”**:根据上一步问卷中用户选择的场景,当用户首次进入应用时,**不再是一个空空如也的画布**,而是为其**默认预置1-2个最相关的场景化工作流 (Workflow)**。 * **统一内部认知:** 定义核心主推场景,需要产品、市场、销售、运营等所有部门达成共识。各部门围绕核心场景协同工作: * **产品**:持续迭代场景化工作流,使其更易用、更强大。 * **市场/运营**:围绕场景创作内容(博客、教程、案例),进行精准推广。 * **销售**:聚焦于场景的商业价值,向潜在客户展示解决方案。 ### 建议补充 * **用户生成场景 (UGC)**:发起运营活动,鼓励用户分享自己创造的工作流如何解决特定场景问题。获选的优秀案例不仅能丰富场景库,更能成为极具说服力的“社会认同”证据。 --- ## 三、 社区建设:构建信息沉淀与流量新入口 ### 核心问题 当前以 IM(即时通讯工具)为主的交流方式,信息碎片化、难检索、难复用,且对未来的 LLM(大语言模型)流量入口不友好。 ### 解决方案 * **建立官方论坛 (Forum)**:采用 Discourse 或 Flarum 等现代开源论坛框架。 ### 论坛带来的核心价值 1. **知识沉淀与SEO**:将重复提问和优质解答结构化,形成可被搜索引擎收录的帖子,极大提升网站的 SEO 权重和自然流量。 2. **LLM友好型数据**:结构化的问答和文章是未来训练垂直领域LLM或被其检索引用的最佳数据源。 3. **用户数据金矿**:在论坛注册时,可鼓励用户填写公司、职位等信息进行“企业认证”。这既能收集到高价值的销售线索,又能形成“XX 公司也在用 Dify”的真实背书。 4. **活动与互动中心**:所有运营活动都有了最佳的落地页面,便于用户参与和讨论。 ## 数据指标优化建议:从数据收集到洞察行动 #### 1. 用户画像与细分 (User Persona & Segmentation) * **目标**:不仅知道“谁”来了,更要知道“谁是我们的理想客户(ICP - Ideal Customer Profile)”。 * **收集数据点**:公司信息、团队规模、用户角色。 * **其他关键指标** * **理想客户画像匹配度 (ICP Match Rate)**: * **衡量什么**:注册用户中有多少比例符合我们定义的高价值客户画像?(例如:“大于 10 人的企业团队中的开发者”)。 * **为什么重要**:这个指标可以评估市场推广渠道的质量。如果匹配度低,说明吸引来的用户与产品目标用户错位,付费转化会很困难。 * **用户来源渠道分析 (Channel Analysis)**: * **衡量什么**:不同渠道(论坛、SEO、广告、技术博客)来的用户,其 ICP 匹配度和后续的“激活率”分别是多少? * **为什么重要**:帮助运营和市场团队将预算和精力集中在能带来高质量用户的渠道上。 #### 2. 用户激活与采纳 (User Activation & Adoption) * **目标**:衡量用户是否体验到了产品的“啊哈时刻”(Aha! Moment),即真正理解了产品的核心价值。 * **收集数据点**:使用状态(是否上线)、业务周期(试用到上线时长)。 * **其他关键指标** * **激活率 (Activation Rate)**: * **衡量什么:** 新用户在注册后 7 天内,完成了至少一次“关键行为”的比例。对于 Dify,这个“关键行为”可以定义为:**“创建了第一个应用”**或**“成功进行了一次 API 调用”**。 * **为什么重要**:这是衡量产品新用户引导是否成功的最核心指标。激活率低说明产品上手门槛高或价值不清晰。 * **价值实现时间 (Time to Value - TTV)**: * **衡量什么:** 用户从注册到完成“关键行为”的平均时长。(这正是您“试用到上线时长”的量化版)。 * **为什么重要**:TTV 越短,用户越快能感受到产品价值,留存和付费的可能性就越大。 * **产品采纳率 (Product Adoption Rate)**: * **衡量什么**:活跃用户中,使用了至少3个核心功能(例如:Agent 构建、RAG 管道、数据集管理)的比例。 * **为什么重要**:衡量用户对产品理解的深度。用户使用的功能越多,说明产品对他的价值越大,迁移成本越高,越不容易流失。 #### 3. 用户留存与互动 (User Retention & Engagement) * **目标**:衡量用户是否愿意长期使用我们的产品,以及使用的深度如何。 * **您已有的数据点**:Cloud 使用情况判断、论坛互动。 * **建议补充的关键指标**: * **次周/次月留存率 (Week 2 / Month 2 Retention Rate):** * **衡量什么**:通过“同期群分析(Cohort Analysis)”,查看某一周注册的新用户,在接下来的一周/一月后,还有多少比例的人在继续使用。 * **为什么重要**:这是衡量产品长期吸引力和健康度的“生命线”。 * **用户粘性 (Stickiness - DAU/MAU Ratio)**: * **衡量什么**:日活跃用户数(DAU) / 月活跃用户数(MAU)。这个比率越高,说明用户使用产品的频率越高。 * **为什么重要**:高粘性是产品成为用户日常工作流一部分的标志。 * **Dify 核心互动指标 (Dify Core Engagement Metrics)**: * **衡量什么**:比如“月均 API 调用次数”、“创建的应用数量”、“处理的消息量”等。 * **为什么重要**:这些是比“登录次数”更有价值的互动指标,直接反映了用户对产品核心价值的消耗。 ### 总结表格 | 阶段 (Stage) | 核心问题 (Key Question) | 关键指标 (Key Metrics) | | :--- | :--- | :--- | | **用户画像** | 来的用户对吗? | ICP 匹配度、渠道质量 | | **用户激活** | 用户体验到价值了吗? | 激活率、产品采纳率、TTV | | **用户留存** | 用户还回来吗? | 次周/月留存率、DAU/MAU 比率、核心功能使用量 | | **商业价值** | 产品能赚钱吗? | 免费到付费转化率、客户生命周期价值(LTV) | # 原版 ## 产品(云)优化——初步数据收集 云产品用户登陆之后,**没有做用户信息收集**。 下面模拟了 4 个用户信息收集问题(数字 4 是我觉得一个合理的数字,数量不会劝退用户,又能收集到数据)至于数据收集和用户获取的平衡,你可以通过之前用户注册路径: ``` 点击 “Get Started” - 邮箱授权 - 注册成功 - 页面跳转到初适页 ``` 这里有个漏洞转化,可以拿这里的转化率同接入问卷之后的转化率做对比,看下降了百分之多少。下面是接入问卷(这里预设问题为 4 个) ``` 点击 “Get Started” - 邮箱授权 - 注册成功 - 页面跳转到问卷收集页 - 填写完问卷- 跳转到初适页 ``` 4 个初始问题 > 问题数量可以测试下,看超过多少个会导致注册完成转化率大幅度下降,这里假设是超过 40% 跳出率为基准线;问题越多对我们越有利,意味着我们对用户的信息越了解,但问题越多也会导致用户填写意愿降低。 > > **为什么这时候收集数据**:用户想要尝试产品,这时候愿意拿信息换免费的意愿是最高的。因为这时候他“有求于”官方,一旦用户完成了注册可以使用,再收集数据,用户的参与意愿就不如从前了。 * 哪一种符合你的情况——身份信息,可知晓到底现在用户中,可被转化的“付费用户”比例(个人的付费意愿,基本上可以忽略不计) * 个人 / 独立开发者 * 企业雇员 * 政府部门雇员 * 高校组织(课题、学术研究) * 你的身份角色 * 研发 * 产品经理 * 运营 / 市场 * 销售人员 * 行政人员 * 其他 * 所在业务 / 课题团队的规模——被转化为“付费用户”的参考项 * 小于 3 人(这里基本上就是 1 人,国内大多数企业一人研发来考察的居多) * 3 - 5 人 * 6 - 10 人 * 10 + 人(基本上算是一个大业务了,相对的数据量也会很大,客单价会很高) * 你将用 dify 解决何种问题 * 场景 1(场景下一个章节,场景化运营具体来说) * 场景 2 * 场景 3 * …… * 场景 n 这样,你就有了一个大概的用户画像数据。后续你可以再根据用户同 cloud 的交互操作,来进一步和用户交流。例如,用户登陆之后,没有点击任何 button 跳出了。可以在适当,1 周左右时间给对方发一封邮件,附上相对应的个人联系方式,问其是不是遇到了问题,我们提供专人的私人客服帮您解决问题之类的。 ## 场景化运营 对应上文的场景 1、2、3…,这里主要是解决未来(可能现在已经遇到)的应用分发问题。随着生态越来越丰富,用户找到其合适的插件(扩展)会变得越来越困难。 用户的路径为: ``` 需求察觉 - 初步需求方案(这里假定为 插件 n) - 寻找应用市场(marketplace)对应插件 - 安装 ``` 每一步操作,都是流失。用户首先不一定察觉到他的需求,其次不一定知道 marketplace 有对应的解决方案。所以 **预设分发** 是个对用户来说,操作最少;对我们来说,流失(因为操作带来的流失)最低的方案。 场景化运营,不同于现在的模版。模版解决的是扩展如何组装的问题,但仍然没解决一个问题:“**用在哪里**”的问题。产品、销售、市场和运营,就未来期望用户使用的插件,搭建其场景,即:我们主推何种场景,一定要所有部门都知晓这件事,才能更好地统一朝一个方向用力。 * 销售负责场景的盈利; * 市场和运营负责场景的推广; * 产品负责合理化场景,满足用户所需; > 场景可以后面慢慢丰富,对应的上面问卷 quiz 的第四题应该是多选题。 一旦用户勾选了所需场景之后,不用选择对应模版(现在用户注册完成,初始页面空空如也)。直接默认预置场景 1、2、3 等等的 workflow。 这里注意数据场景埋点。 此外,除了产品经历设定场景之外,也可以开展运营活动,让用户参加,发布他/她用的 workflow,解决何种场景,并附上效果图。非常简单的 3 步骤,完成了用户场景背书——这里转到下一个话题,用户活动场所。 ## 用户活动地、数据聚合地 —— 论坛 目前,用户同用户、用户同官方的交流渠道以 IM(discord、微信、telegram)为主。这里有一个问题。信息沉淀,以及信息复用,以及 llm 友好。 未来,可能是 10 年,可能是 1、2 年,流量的入口一定是 chatbot 口中,通过 llm 给用户传递出来信息。既然如此,我们如何面向 llm 获得流量,就是尽量将结构化的数据喂给模型。 ### 论坛选择 不多说,国外主流:https://www.discourse.org/ 、 https://github.com/flarum/framework (这两个都是开源的项目) ### 论坛的好处 * 解决重复提问; * 结构化问题、文章可以喂给 llm,供其学习; * 问题、文章,都是 seo 收录的内容。论坛的帖子多了,会提高整个站点的 seo 排名; * 活动有对应的落地页,更方便的用户互动; * **用户数据收集**:可以让用户注册是,填写相关的公司信息之类的完成认证。至于要收集何种数据,权看运营操作所需; > 企业认证的一个好处是,用户在论坛互动时,实时的所在公司也在为 dify 背书——佐证某家企业在用,以及的确有不少企业在用。 ## 数据 这里的数据专指企业数据、政府数据等,这里主要讲如何收集。收集完,如何分析看市场和运营所需。 * 公司信息 * 收集方式:论坛注册收集、用户 1v1 收集(cloud 注册不收集公司信息,因为过于敏感会劝退用户) * 业务 * 收集方式:cloud、论坛注册 * 业务部门大小 * 收集方式:cloud、论坛注册 * 使用状态:是否上线,解决线上问题——是,则邀请分享案例和收益;否,帮其上线; * 收集方式:论坛注册、cloud 使用情况判断、1v1 确认 * 业务周期:试用到上线的时长; * 收集方式:1v1、cloud 数据埋点 ## 用户体验和优化 ### 页面设计(字号使用) ![image](https://hackmd.io/_uploads/S14InNW2le.png) 12 px 的字号,一般用于对于用户而言不重要的信息。像是这些 card 的介绍,用户不曾了解它,是需要花时间读的。但是 12px 的字号阅读起来体感不佳。下面这是 coze 的 card 设计: ![Weixin Image_2025-09-24_175040_978](https://hackmd.io/_uploads/HyM81BWhll.png) 整个 card 读起来的体感比 dify 的要舒适很多。虽然 dify 的 14px - 12px 有层次感,但阅读体验不佳(公众号都不用 12像素来显示大段文字!) ### 页面设计(默认头像) ![image](https://hackmd.io/_uploads/rkLl-BWnlx.png) 用户页面的右上角一般为头像,这里是用了默认的 D。说实话,我很懵逼,不知道 D 是什么。假如这是一个 S(我的邮箱的首字母)或者是我邮箱的头像,不会让我产生这是什么账号(官方账号)的错乱感。 ### 页面文案(图片也算) ![0](https://hackmd.io/_uploads/HkefwBb2ee.png) 过于模糊,影响品牌形象,这种图一般用设计给的,而不是随手截图。很明显的对比,你看上面的蓝色框内的「Get Started」文案的清晰度和下面截图中各节点的清晰度。截图太糊了。 ### 页面文案(本土化) marketplace、模版,各种出现插件的地方,中英文混杂。无论对中国用户,还是英文用户都不友好。用 gemini 之类的工具,加上粗略审核校对时间,大概 1 个小时能把所有文案都本土化掉,提高用户体验。 ![image](https://hackmd.io/_uploads/BJdQiPb2lg.png) ### 页面加载(不利于 SEO) 官网页面加载非常卡顿,SEO 的有一项指标就是页面加载速度。前端实现我不懂,所以我丢给 gemini pro 分析了。TL;DR:过于炫技,**设计美感大于用户体验**。 下面是原文: ``` 您好。我分析了 https://dify.ai/zh 这个网站。 首先,您“非常卡顿,加载异常慢”的感觉是非常真实的,并且有充分的技术原因可以解释。 总的来说,这个网站在设计上追求了非常炫酷和现代的视觉效果(例如复杂的动画和视频背景),但在前端性能优化上做得不够理想,导致了“设计感”和“流畅度”之间的脱节。 下面是我分析出的几个导致卡顿和缓慢的主要原因: 1. 大量且复杂的动画效果 (导致“卡顿”) 这是您在滚动页面时感觉到“卡顿”和“掉帧”的最主要原因。 实现方式: 该网站使用了大量的滚动触发式动画(即您滚动到某个位置,元素才开始移动、淡入或变形)。这些动画虽然在视觉上很吸引人,但如果优化不当,会极大地消耗您电脑的CPU和GPU资源。 技术细节: 流畅的网页动画应该只改变 transform (位移、缩放、旋转) 和 opacity (透明度) 这两个属性,因为它们通常能由GPU加速,不会引起页面“重排”。而 Dify 网站上的一些动画可能改变了元素的 width, height, margin 等属性,这会强制浏览器进行大量的重新计算和布局,从而导致卡顿。 2. 大体积的视频和图片资源 (导致“加载异常慢”) 这是您首次打开网站时感觉“慢”的主要原因。 背景视频: 网站首页(以及其他页面)使用了大面积的背景视频或高分辨率的动态图形。这些视频文件通常是 MB 级别,是拖慢初次加载速度的最主要“元凶”。 图片优化不足: 网站上的一些图片可能没有经过充分的压缩,或者没有使用更现代、更高效的图片格式(如 WebP),导致不必要的文件体积过大。 3. 庞大的JavaScript脚本 (导致“可交互时间”变长) 该网站使用了 Next.js (一个 React 框架) 构建,这本身是一个非常现代的选择。但是: JS包体积: 现代框架需要加载JavaScript文件来让页面变得可交互。如果代码没有经过良好的分割和优化,首次加载的JS文件会非常大。这些JS需要被下载、解析和执行,这个过程会阻塞页面的响应,让您感觉“点什么都没反应”。 客户端渲染: 很多内容的显示依赖于JS的执行,这也增加了用户能真正开始与页面交互前的等待时间。 4. 过多的第三方脚本 为了实现网站分析、在线客服等功能,网站还加载了多个第三方服务脚本。例如: Google Analytics (网站分析) Intercom (右下角的在线客服) Hotjar (用户行为热力图分析) 每一个脚本都意味着一次额外的网络请求和一段需要执行的JavaScript代码,它们会互相竞争网络和CPU资源,进一步拖慢网站的整体速度。 结论:它的前端实现和设计合理吗? 这是一个需要从两个角度来看的问题: 从“品牌展示”和“吸引眼球”的角度看,这种设计是‘可以理解的’。 Dify.ai 作为一个技术前沿的AI公司,希望通过这种高度动态化、充满科技感的设计来展示其技术实力和现代感,给访问者留下深刻的第一印象。 但是,从“用户体验”和“性能最佳实践”的角度看,这种实现方式是‘不合理的’,并且有巨大的优化空间。 对于一个官网来说,清晰、快速地传递核心信息(产品是什么、能做什么)比炫技更重要。过度的卡顿和缓慢的加载会劝退一部分耐心不足的潜在用户,甚至可能因为糟糕的“核心网页指标”而对SEO产生负面影响。 总结: Dify.ai 的网站在视觉设计上投入了很多,但在实现时为了这些效果牺牲了大量的性能,导致了您感觉到的卡顿和缓慢。这是一个典型的**“重设计、轻优化”的案例。它在美学上或许‘合理’,但在技术实现和用户体验上不够‘合理’**。 ``` ### 页面设计风格(仅参考) 既然 Dify 决心先入日本市场,官网的设计最好可以参考下日本本土的一些开源软件官网。。恕我直言,现在 dify 的官网谈不上好看,一种诡异的土大气感。。 下面是日本的一些开源项目的网站(有些挺丑的),无一例外,网站打开流畅、不卡顿,页面布局简洁、大方。**Less is More,不要炫技**。 > 这个文稿。。我没买会员,所以图片上限 1M,我只截图示意。样本不足,日本的设计应该偏明亮,以及黑白极简风。 ![image](https://hackmd.io/_uploads/ByaWhDbnee.png) ![Weixin Image_20250924210617_48](https://hackmd.io/_uploads/r1yeaP-nex.png) ![image](https://hackmd.io/_uploads/ryxX6Pb3lg.png) ![image](https://hackmd.io/_uploads/rJjHTv-hgl.png) ![image](https://hackmd.io/_uploads/ByQvpwb2ee.png) ![image](https://hackmd.io/_uploads/BJHu6vb2ll.png) ## bug(缺陷) ### 用户登出返回页面缺少关闭按钮 点击右上角的用户,退出之后,返回界面如下: ![image](https://hackmd.io/_uploads/B1i-fHbnle.png) 请问。。关闭按钮在哪?即使点击页面右上角的“Dify”(理论上,点击会返回网站首页),毫无反应。试问,如何回到官网呢?(自然,可以通过 chrome 自带的后退,退到用户可操作的页面——但。体感太差了。——对不起,我又测试了下 chrome 自带的页面返回,只是在登录页面打转而已。)

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully