跳转到内容
彼岸论坛

小天管理

管理员
  • 内容数

    16069
  • 注册日期

  • 最后上线

  • 得奖次数

    1

小天管理 发表的所有内容

  1. BestBlogs.dev 基于 Dify Workflow 的文章智能分析实践 摘要 本文详细介绍了 BestBlogs.dev 如何利用 Dify Workflow 实现文章的自动化分析流程。我们将探讨从文章初评到深度分析,再到多语言翻译的全过程。通过采用 Dify 平台,我们成功提高了内容处理的效率和质量,为读者提供了更优质的阅读体验。文章还将分享实施过程中的经验教训,以及对 Dify Workflow 的使用感受,为有类似需求的开发者提供有价值的参考。 背景介绍 BestBlogs.dev 是一个面向技术从业者、创业者和产品经理的网站,主要收集和分享有关软件开发、人工智能、产品管理、营销、设计、商业、科技和个人成长等领域的高质量内容。 其主要原理是通过 RSS 订阅和爬虫,收集来自各个领域的优质博客文章,并通过大语言模型进行筛选和评估,以提高内容的质量和效率。其核心特性包括: 核心摘要,快速捕捉精髓:运用先进的大语言模型,我们为每篇文章提炼出核心要点,助力读者在快节奏中迅速掌握关键信息。 智能评分,优选内容:严选文章来源,通过大语言模型对文章内容深度、写作质量、实用性、相关性等多维度进行评估,帮助读者快速筛选优质文章。 一键翻译,跨越语言障碍(开发中):借助领先的翻译技术,我们打破语言界限,让全球开发者无碍阅读并吸收来自世界各地的卓越知识。 Dify Workflow 简介 Dify Workflow 是一个强大的 LLMOps 平台,专为构建复杂的 AI 应用流程而设计。它提供了直观的可视化界面,允许用户通过拖拽方式创建和管理工作流。Dify 支持多种大语言模型,并提供了丰富的预置节点类型,如条件判断、迭代、HTTP 调用等,使得复杂的 AI 任务变得简单易实现。此外,Dify 还提供了调试、日志追踪和 API 集成功能,非常适合用于构建如 BestBlogs.dev 这样的智能内容处理系统。 为什么需要 Workflow ? 原先网站采用了一个非常大而全的提示词用来实现文章的摘要、标签生成、评分及翻译工作,过多的任务使得输出效果难以控制和优化,比如摘要内容经常遗漏重要信息、标签的生成缺乏统一、评分标准调整调试麻烦、翻译结果过于生硬,以及在运维上修改、测试和部署麻烦。 为什么选择 Dify ? 在选择适合的工具时,我们对比了市面上几个主流的 AI 工作流平台: Coze: 优点: 社区化产品,便于分享 Workflow 和 Agent 上手成本低,用户友好 缺点: 不支持使用自己的 ApiKey 不支持自部署,可能存在数据安全风险 FastGPT: 优点: 开源,支持自部署 有一定的用户基础 缺点: 作为较新的平台,社区生态还在建设中 Workflow 预置节点类型较少,灵活性不足 Dify: 优点: 完善的 LLMOps 功能,非常适合复杂 AI 应用开发 直观的可视化界面,易于使用 支持多种主流大语言模型 丰富的预置节点类型,提高开发效率 开源,支持自部署,保障数据安全 完善的调试和日志追踪功能 缺点: 作为较新的平台,社区生态还在建设中 某些高级功能仅限企业版 考虑到 BestBlogs.dev 的具体需求,特别是对灵活性、可定制性和数据安全的要求,我们最终选择了 Dify 。它不仅能满足我们当前的需求,还为未来的扩展和优化提供了充足的空间。Dify 平台的 LLMOps 定位与我们的核心需求高度契合,使得我们能够快速构建和迭代我们的文章分析流程。 Dify Workflow 实现 在使用 Dify Workflow 之前,重新梳理了网站的核心流程,主要包括以下几个子流程: 文章爬取流程:基于 RSS 协议,爬取所有订阅源的文章信息,包括标题、链接、发布时间等,通过链接和无头浏览器爬取全文内容。通过订阅源上定义的正文选择器提取正文,并对正文的 HTML 、图片等进行处理,放入待处理文章列表。 文章初评流程:通过语言、文章内容等特征,对文章进行初次评分,剔除低质量文章和营销内容,减少后续步骤处理。 文章分析流程:通过大语言模型对文章进行摘要、分类和评分,生成一句话总结、文章摘要、主要观点、文章金句、所属领域、标签列表和评分等,便于读者快速过滤筛选及了解全文主要内容,判断是否继续阅读。包括 分段分析 - 汇总分析 - 领域划分和标签生成 - 文章评分 - 检查反思 - 优化改进 等节点。 分析结果翻译流程:通过大语言模型对文章分析结果进行翻译,目前网站支持中英两种语言,根据原文语言和目标语言对摘要、主要观点、文章金句、标签列表等进行翻译。包括 识别专业术语 & 初次翻译 - 检查翻译 - 意译 等环节。 以下流程的 DSL 文件和各个节点的提示词已更新到 BestBlogs 项目,欢迎查看和讨论。 文章初评流程 流程说明: 为了便于测试和接口调用,流程的输入为网站的文章 ID ,然后通过 Workflow 内置的 HTTP 调用节点和代码节点,调用网站的 API 获取文章的元数据(标题、来源、链接、语言等)和全文内容。 为中文和英文文章采用不同的模型和提示词,可以更加灵活的调整和优化。 文章初评 LLM 节点通过 CO-STAR 提示词框架定义上下文、目标、分析步骤、输入输出格式,提供输出示例,完整的提示词可以在上述项目地址查看。 网站应用通过 Dify Workflow 开放的 API 传入文章 ID ,获取文章的初评结果,根据 ignore 和 value 属性判断是否继续往下处理。 文章分析流程 流程说明: 同初评流程,分析流程的输入也是网站的文章 ID ,然后通过 Workflow 内置的 HTTP 调用节点和代码节点,调用网站的 API 获取文章的元数据(标题、来源、链接、语言等)和全文内容。 为了能不遗漏各个段落的关键信息,分析流程首先判断文章的长度,如果超过 6000 个字符则进行分段处理,否则直接对全文进行分析。 分析的内容输出主要包括一句话总结、文章摘要、文章关键词、主要观点和文章金句等,方便读者快速了解文章内容。 这里运用了 Workflow 中的分支、迭代、变量聚合等节点,使得我们能对流程进行灵活控制,对于不同的分支处理结果,可以采用变量聚合将全文分析的内容归集为一个,便于后续节点处理。 随后是领域划分和标签生成节点,通过大语言模型对文章内容进行分类,生成文章所属领域和标签列表,这里的标签主要包括主题、技术、领域、应用、产品、公司、平台、名人、趋势等,便于后续文章的组织,增强后续搜索和推荐的实现。 再之后的文章评分节点,通过大语言模型对文章内容进行评分,主要包括内容深度、写作质量、实用性、相关性等多维度评估,生成文章的评分,便于读者快速筛选优质文章。 然后是检查反思节点,输入为文章元数据和全文内容,以及分析结果、领域和标签列表、评分等,要求大语言模型扮演技术文章评审专家,按照全面性、准确性、一致性等原则,对前述输出进行检查,输出检查结果和反思内容。 最后是基于检查反思结果的优化改进节点,要求大语言模分析检查和分析结果,并再次确认输出格式和语言,输出最终的分析结果和更新原因。 网站应用通过 Dify Workflow 开放的 API 传入文章 ID ,获取并保存文章的分析结果,根据文章评分判断是否继续往下处理。 分析结果翻译流程 流程说明: 分析结果翻译流程的输入为网站的文章 ID ,然后通过 Workflow 内置的 HTTP 调用节点和代码节点,调用网站的 API 获取文章的元数据(标题、来源、链接、语言、目标语言等)、全文内容和分析结果。 翻译流程采用了 初次翻译 -- 检查反思 -- 优化改进,意译 三段式翻译流程,从而让翻译更加符合目标语言的表达习惯。 运行效果 目前网站已经完成灰度,全部文章采用 Dify Workflow 实现自动化分析,接口运行稳定。 相比于之前采用单个提示词的方式,采用 Workflow 分析文章结果比原先更好,摘要内容更加全面,还有主要观点和文章金句作为参考,文章评分更加标准化。 另外,采用 Workflow 的方式能够快速的调整提示词,详细的运行日志能够及时定位和改进。 总结与展望 本文主要介绍了 BestBlogs.dev 使用 Dify Workflow 实现文章自动化分析的背景、原因、流程和效果,主要包括文章初评、文章分析和分析结果翻译三个流程,通过大语言模型对文章内容进行摘要、分类、评分和翻译,提高了文章分析的效率和质量,为读者提供更好的阅读体验。 对于 Dify Workflow 的使用感受: 使用起来画布整体体验是非常流畅和自然的,对于我来说基本没有什么上手成本; Workflow 对测试运行和追踪功能非常棒,我可以不断的调试提示词来改进效果,中间的每一步详细的输出可以快速识别待改进的地方; 模型的接入非常丰富,基本涵盖了市场上主流的模型,我可以快速的切换各个模型对比输出效果; 开源,支持自部署,完善的日志,这一点对于网站使用非常重要,不用依赖外部服务的稳定性,以及担心数据泄漏等隐私问题。 当然,Dify 本身还在不断演进和优化,对于历史版本管理、并行执行、JSON 输出等功能还有待完善,希望未来能够更加强大和易用。 展望未来,我们计划进一步探索大语言模型在 BestBlogs.dev 中的应用范围。具体来说,我们正在考虑以下几个方向: 智能搜索:利用 Dify Workflow 识别搜索意图,基于文章领域、关键词、标签、摘要等实现更精准的文章搜索功能,使读者能够更快速地找到所需的信息。 个性化推荐:基于用户的阅读历史和偏好,开发一个智能推荐系统,为每个用户提供量身定制的文章推荐。 交互式问答:实现一个基于文章内容的智能问答系统,让读者能够直接向系统提问,解决阅读疑惑,提升阅读效果。 全文翻译:基于 Dify Workflow 实现全文翻译,沉浸式阅读全球各种语言优质技术文章。 通过这些功能的实现,我们期望能够进一步提升 BestBlogs.dev 的用户体验,为读者提供更智能、更个性化的内容服务。同时,这也将是对 Dify 平台功能的进一步探索和应用,我们期待在这个过程中不断学习和成长,为技术社区贡献更多有价值的经验和洞见。
  2. 十年经验 C++ Golang lua NextJS 二开维护 服务器维护 ansible 自动化 服务器集群部署 Docker 等等 有没有什么兼职群可以啦啦 主要是服务器后端 之前一直做后端业务逻辑 支付 第三方 sdk 等等 张小龙: ZHluYW1pYzY4ODg= 感谢
  3. 消防已经在用了,救护车呢?如果可以推开,那么在这种时间敏感领域,无人机就会有非常好的应用前景
  4. https://www.v2ex.com/index.xml 这个地址没有内容更新了。谁解决下啊
  5. 招聘条件如下: Android 开发工程师 -腾娱互动 工作地址: 1.武汉江夏区腾讯武汉研发中心 岗位职责: 1.参与 Android 平台游戏内嵌直播、开播、社区业务功能的开发; 2.负责 Android 平台具体项目的技术对接及现有功能的维护和体验优化; 3.参与相关 SDK 、组件以及功能模块的文档撰写和维护; 4.负责移动游戏内嵌直播、开播、社区业务创新功能与基础技术平台的开发与建设 岗位要求: 1.本科及以上学历,计算机相关专业,3 年以上 Android 开发经验; 2.熟练掌握 Java/Kotlin 语言,具备良好的编码风格,有大型项目开发经验; 3.熟悉 Android 开发平台,掌握主流开源框架的使用和原理; 4.熟悉多线程编程,掌握 Android 插件化原理、跨进程通讯; 5.熟悉常见的移动端性能优化方案和技巧,具备良好的问题定位和解决能力; 6.有良好的团队合作精神,工作积极主动,责任心强; 7.有音视频或游戏直播平台相关开发经验者优先; 8.有 Rust 语言、鸿蒙系统开发经验者优先. VX: MTMzODAzNzA3NTk= email : eXhpYW95YW5nMTEyNjgzQGdtYWlsLmNvbQ==
  6. 请问有没有升级测试版系统的朋友,我这里的 Arc 浏览器遇到了些非常奇怪的问题。 一些角落里的图标比如左下角的展开所有空间的按钮,右上角的分屏按钮,或者点击某个扩展程序都没有作用。 请问有没有人也有相同的情况或者是否可以正常使用呢,谢谢
  7. 大不大,里面适合一日游还是两日游? 里面吃饭的餐厅质量如何?不考虑价格,单问餐厅里吃的东西质量如何 里面还有个侏罗纪水上世界,买了恐龙园的门票,是否还需要单独购买水上世界的门票 水上世界里面有没有 1.2 米以上的深水区?
  8. rt ,今天刚刚新注册了一个号,本来都准备好接码了,结果填完邮箱验证完竟然就成功了,是现在不需要手机验证了吗?
  9. 现在失业的,被裁的程序员里大部分是干 App 开发吧? 前端和后端都还好找工作吧?
  10. 很多不起眼的项目,看不起的项目,恰好能赚钱。 可能不高大上,你看都不看一眼,已经有人年赚百万。 真实操刀过,所以是真实经历。 1 、内容农场+seo 选定一个主题,从行业头部网站采集内容,经过机器“处理”后发布,然后搜索引擎收录,做好 seo 。 每天保持更新,总文章数在数十万到百万级别。 做站群,每个主题一个站,批量复制。 重点:网站方向是资料参考类,如工作总结等(其他自己探索吧)。 2 、盈利模式 方式 1:付费复制 or 下载 用户从搜索过来,需要这篇资料,于是选择复制或下载,于是: 转化率在 20~30%左右。 方式 2:免费复制引流到公众号 让用户关注公众号,回复某个数字,然后给复制授权码。 短时间内就可以积累数十万、上百万公众号粉,还是行业细分,公众号可以对这部分人群变现。 3 、要求的能力 文章采集能力、处理能力、seo 能力、不断试错的耐心。 4 、经历 前几年的时候通过这种方式,创造了月 8-10 万的收入,后来把网站卖掉了(一次性变现)。
  11. 最近拿 python 写了一个访问实时币价的小脚本,在单位电脑上正常运行,但是在家里的电脑上会访问超时,似乎是代理的问题(试过访问墙内 ws 是没问题的),但是没有印象单位和家里电脑代理设置有什么不同,特来求助大佬 用的 python 的 aiowebsocket 库,翻了下代码是在 ssl 握手的时候超时造成的,但是文档没看到代理相关设置,clash 里使用的混合端口设置也未发现可能的问题 错误信息: Traceback (most recent call last): File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\websockets\legacy\client.py", line 647, in __await_impl_timeout__ return await self.__await_impl__() ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\websockets\legacy\client.py", line 651, in __await_impl__ _transport, _protocol = await self._create_connection() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\asyncio\base_events.py", line 1069, in create_connection sock = await self._connect_sock( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\asyncio\base_events.py", line 973, in _connect_sock await self.sock_connect(sock, address) File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\asyncio\proactor_events.py", line 726, in sock_connect return await self._proactor.connect(sock, address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ asyncio.exceptions.CancelledError The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\Users\xxx\Desktop\1\p.py", line 15, in <module> asyncio.get_event_loop().run_until_complete(clientRun()) File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\asyncio\base_events.py", line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "C:\Users\xxx\Desktop\1\p.py", line 5, in clientRun async with websockets.connect('wss://stream.binance.com/stream') as websocket: File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\websockets\legacy\client.py", line 629, in __aenter__ return await self ^^^^^^^^^^ File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\websockets\legacy\client.py", line 646, in __await_impl_timeout__ async with asyncio_timeout(self.open_timeout): File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\asyncio\timeouts.py", line 111, in __aexit__ raise TimeoutError from exc_val TimeoutError 代码: import asyncio import logging from aiowebsocket.converses import AioWebSocket import json async def startup(uri): async with AioWebSocket(uri) as aws: converse = aws.manipulator await converse.send('{"method":"SUBSCRIBE","params":["!miniTicker@arr@3000ms"],"id":1}') while True: mes = await converse.receive() # print(json.loads(mes.decode())) if __name__ == '__main__': remote = 'wss://stream.binance.com/stream' try: asyncio.get_event_loop().run_until_complete(startup(remote)) except KeyboardInterrupt as exc: logging.info('Quit.')
  12. 最近看到一款特别有意思的 AI 二次元图片生成产品:AI Anime Generator.以下是简单的产品介绍: 产品简介 这款 AI 二次元图片生成器是一款利用 Stable Diffusion 技术来制作的 AI 二次元图像生成,可以将文字描述瞬间转化为精美的二次元图片。无论您是专业创作者还是动漫爱好者,这款工具都能帮助给你感受到二次元图片的惊喜。 核心特性 强大的 AI 引擎 秒级生成:仅需输入文字描述,几秒钟内即可获得高质量二次元图像 多样化风格:支持传统动漫、电影级、马赛克、几何、3D 渲染、蒸汽朋克等多种艺术风格 丰富的应用场景 角色设计:轻松创建独特的动漫人物 场景构建:打造令人惊叹的动漫背景和风景 用户友好 直观操作:简洁的界面设计,新手也能快速上手 无需注册:部分功能无需注册即可使用,方便快捷 在线使用:无需下载安装,随时随地激发创意 使用流程 输入描述:在文本框中输入您想要创建的二次元图像描述 选择风格:从多种预设风格中选择,或自定义参数 生成图像:点击生成按钮,AI 将在几秒钟内创建图像 细节调整:使用内置工具进行颜色、姿势等微调 下载保存:满意后即可下载高清图像用于您的创作 收费方式 我们提供灵活的收费方案,满足不同用户需求: 免费体验:新用户可免费生成有限数量的图像,体验基础功能 按次付费:适合偶尔使用的用户,按生成次数计费 月度订阅:提供不限次数的图像生成,适合频繁使用的创作者 年度套餐:长期订阅用户享受优惠价格,并解锁额外高级功能 结语 无论您是动漫艺术家、游戏开发者、还是仅仅热爱二次元文化的爱好者,这款 AI 二次元图片生成器都能为您提供无限创意可能。立即开始您的 AI 辅助创作之旅,让想象力自由翱翔! 要了解更多信息或开始使用,请访问官网:AI Anime Generator
  13. cd ~ mkdir test mount --bind /etc test docker run -it --rm -v test:/data debian ls /data 这时候容器里的/data 目录是空的,没有/etc 目录中的文件 只要是 mount 上去的目录,不管是本地还是远程的,docker 都挂不进去。挂进去的其实是原始的~/test目录。 有人知道是为什么吗?
  14. Speedtest app(国际版)中国移动的测速点一个都不剩了。 本来还有一个“北京移动集团”的测速点能够正常使用,至于什么浙江移动江苏移动的那几个测速点早就废掉了,却一直还显示在上面,结果现在一个移动的都没了,只剩下联通与电信的。
  15. 背景: 双飞本科,计算机专业 性格: 内向话少,思维不活跃,记忆力差,反应迟钝,理解能力差,做事沉稳,追求完美。 有一样的人吗,都在从事什么工作?
  16. 请问聊天记录的语音可以导出为小音频文件 mp3 格式吗?
  17. 求问日本程序员的加班情况? 还有加拿大的。 二者的工作机会多吗
  18. 暑假来临,7,8,9 月持续促销活动!,七月份 6 元购买终身会员 活动地区:大陆 + 港澳台 欢迎下载使用 胶片拾光 Film Snappers App Store 下载: https://apps.apple.com/app/film-snappers/id6474945141
  19. https://www.bilibili.com/opus/955429983464980487 原文引用: 我服了,B 站就这么对待他们的创始用户的吗?今天突然打个电话过来说别人申诉就把我昵称 Seto 抢走了,搜了一下,一个人呢独立音乐人,1000 多粉丝。我一个从 09 10 年用 b 站到现在的用户,我的账号就不是账号?
  20. 不是付费的一次性,指的是软件开机一次只能用一次,电脑重启了以后就无法连上,提示网络异常什么的,只能卸载以后重新装。 而且比较奇葩的是,我只想做控制端,非要一大堆权限,无语
  21. 刚才在微博看到国家开发了这么一个平台,可以申请“网证”,不知道有了这东西是不是可以解决一部分隐私问题? 国家网络身份认证 App(试点版)首页界面上展示的网号、网证是什么? 网号,是指与自然人身份信息-一对应,由字母和数字组成、不含明文身份信息的网络身份符号。 网证,是指承载网号及自然人非明文身份信息的网络身份认证凭证 网号、网证有什么用? 在国家网络身份认证公共服务平台支撑下,人民群众可使用网号、网证方便、快捷地在互联网服务及有关部门、行业管理、服务中非明文登记、核验身份 国家网络身份认证公共服务的介绍 国家网络身份认证公共服务,是指国家根据法定身份证件信息,依托统一建设的网络身份认证公共服务平台,为自然人提供申领网号、网证以及进行身份核验等服务.
  22. 我的需求如下 1 监测睡眠质量,是否打呼,是否深度睡眠等睡眠状况。 2 预算 2000 ,越便宜越好,2000 往上除非特别出众,3000 往上不考虑,要不是为了监测睡眠质量根本没想过买 3 跑步时方便统计配速,方便接打电话和微信通话,方便微信支付 4 心跳等健康数据 必要程度由上到下依次递减,1 必须
  23. 划水 AI 创始人对此的评价如下 https://juejin.cn/post/7392513761855176714 博客下面有人留言: 请问思变的新赛道像你一样弄划水 AI 割韭菜?评判他人价值的时候先看看自己够不够资格 请问大家怎么看待这件事
×
×
  • 创建新的...