Skip to content

2024

Bolt.new - AI前端开发神器

Bolt.new

1. 简介

Bolt.new 是一个创新的、AI 驱动的 Web 开发平台,旨在让用户能够直接在浏览器中创建、运行、编辑和部署全栈 Web 应用程序。它通过将前沿的 AI 模型与 StackBlitz 的 WebContainers 集成,消除了对本地开发环境的需求。这种方法使得全栈开发更易于访问,特别是对于那些在复杂软件配置方面经验较少的人。其核心思想是将 AI 集成到浏览器内的完整开发环境中,从而大大减少了设置时间和复杂性。

Bolt.new 是一个开源项目,鼓励开发人员贡献并构建自己的 AI 驱动开发工具。该平台目前处于 beta 测试阶段,正在积极改进中。Bolt.new 旨在成为 Devin 和 Cursor + v0 等类似工具的强大替代品。

2. 核心功能

以下是 Bolt.new 的一些核心功能:

  • AI 驱动的开发: Bolt.new 使用 AI 来解释用户提示并生成代码,配置数据库,处理身份验证,甚至管理部署。AI 对整个环境拥有 “完全控制权”,包括文件系统、Node 服务器和包管理器。
  • 浏览器内的全栈环境: Bolt.new 使用 StackBlitz 的 WebContainers 在浏览器中提供完整的开发环境。这允许用户在浏览器中直接运行 npm 工具、Node.js 服务器、与第三方 API 交互、部署和共享工作。
  • 快速原型设计和部署: 该平台促进了快速原型设计和部署。一个演示展示了在不到 20 分钟内创建一个 pastebin 克隆并将其部署到自定义域名。
  • 无需本地设置: 用户可以直接从浏览器构建全栈应用程序,无需任何本地设置.
  • 适用于各种用户: Bolt.new 的目标是对开发人员、产品经理、设计师甚至那些编码经验有限的人都非常有用。自然语言提示使更广泛的用户能够参与到开发过程中.
  • 代码编辑和修改: 用户可以编辑生成的代码、修复错误并微调应用程序。它还可以修改现有项目.
  • 迭代开发: 用户可以使用提示迭代地改进其应用程序,以添加功能、修改 UI 和修复问题.
  • 实时反馈: Bolt.new 在浏览器中运行,并提供一个动态的、可编辑的界面,在用户修改代码时提供即时反馈.

3. 使用技巧

为了有效地使用 Bolt.new,请考虑以下技巧:

  • 明确提示: 在开始项目时,请明确指出您打算使用的特定框架和库 (例如,React, ShadCN/ui).
  • 使用增强提示图标: 在提交提示之前,使用 “增强” 图标来改进您的提示.
  • 从基础开始: 在添加高级功能之前,先搭建应用程序的基本结构。这种方法有助于确保一切都正确连接.
  • 批量指令: 将简单的指令组合到一个提示中,以节省时间并减少 API 信用消耗.
  • 理解 AI 的局限性: AI 虽然强大,但并非完美,有时可能需要人工干预来修复错误。准备好手动调试和改进您的应用程序。
  • 使用迭代开发: 使用提示来添加功能、修改 UI 和修复问题.

4. 应用案例

Bolt.new 可用于创建各种 Web 应用程序。以下是来源中的一些示例:

  • Pastebin 克隆(一个出名的文本储存网站): 创建了一个 pastebin 克隆,包括用户身份验证、数据库设置、粘贴创建表单和链接共享。此示例演示了该平台处理全栈需求的能力。
  • AI 咨询网站: 创建了一个 AI 咨询网站,包含前端和后端代码,展示了 Bolt.new 的多功能性.
  • 翻译器应用: 还创建了一个与用户管理服务集成的翻译器应用,突出了该平台与第三方服务协同工作的能力.

5. 价格

Bolt.new 提供免费试用层。但是,对于需要更多 AI 令牌或私人项目的用户,可以在应用程序设置中购买付费订阅。如果您达到免费每日限制,AI 交互将暂停,直到第二天,除非您升级您的计划.

6. 常见问题

  • Bolt.new 的主要目的是什么? Bolt.new 使户能够直接从浏览器创建、运行、编辑和部署全栈 Web 应用程序。它的目标是使用 AI 来简化 Web 开发.
  • Bolt.new 与其他 AI 编码助手有何不同? Bolt.new 提供对整个开发环境的完全控制,包括文件系统、服务器、包管理器和浏览器控制台。其他工具可能只辅助生成代码。
  • 是什么技术为 Bolt.new 提供支持? Bolt.new 使用 StackBlitz 的 WebContainers 在浏览器中运行全栈应用程序.
  • Bolt.new 赋予 AI “完全控制” 环境是什么意思? AI 可以与整个环境进行交互和管理,包括文件系统、node 服务器、包管理器、终端和浏览器控制台.
  • Bolt.new 支持哪些框架和库? Bolt.new 支持大多数流行的 JavaScript 框架和库。如果它可以在 StackBlitz 上运行,它也可以在 Bolt.new 上运行.
  • Bolt.new 是开源的吗? 是的,Bolt.new 是一个开源项目.
  • Bolt.new 如何处理部署? Bolt.new 允许用户一键部署应用程序,从而将应用程序托管在相应的 URL 上.
  • 我可以使用 Bolt.new 进行本地开发吗? 是的,您可以通过克隆 git 存储库并运行安装命令来在本地设置 Bolt.new.
  • Bolt.new 处于 beta 测试阶段吗? 是的,Bolt.new 目前处于 beta 测试阶段.

Bolt.new 是一个很有前景的平台,有可能改变 Web 应用程序的开发方式。通过将 AI 集成到基于浏览器的全栈环境中,它为不同技能水平的用户提供了快速原型设计、降低的开发复杂性和更高的可访问性.

Recraft AI:简单易用的设计利器!

Recraft AI

你是否厌倦了与设计软件的斗争?你是否需要一个标志、一些产品模型,或者只是想在没有麻烦的情况下创造一些酷炫的东西?那么 Recraft AI 可能就是适合你的工具。让我们一起来详细了解一下它能提供什么。

1. 什么是 Recraft AI?

Recraft AI 是一款 AI 驱动的设计工具,旨在让创作过程更简单、更易于访问。它就像一个设计助手,可以帮助你生成各种图形,从标志和插图到 3D 设计。

  • 背景:在拥挤的 AI 图像生成器领域,Recraft 通过专注于用户友好性和实用的设计工具脱颖而出。它的目标是消除那些通常使设计软件难以使用的障碍,即使对于初学者也是如此。
  • 主要功能:Recraft 使用先进的生成式 AI 来提供 AI 图像生成器矢量生成器模型生成器 等工具。你可以创建各种设计元素,包括标志、图标、T 恤设计、数字插图和 3D 图形。它的设计宗旨是简化整个设计流程。

2. 功能介绍

Recraft 具有许多使设计任务更容易的功能。以下是一些最有用的功能:

  • AI 驱动的生成:Recraft 的核心是其使用 AI 生成设计的能力。你可以使用自然语言提示来快速创建初始设计概念。
  • 多功能设计工具:你不局限于只使用一种设计类型。Recraft 允许你创建标志、图标、插图甚至产品模型。
  • 风格转换:如果你有喜欢的图像,你可以将其上传到 Recraft,它将提取该风格用作生成新设计的模板。这对于保持一致的品牌风格非常有用。
  • 模型生成:使用 Recraft,你可以轻松查看你的设计在真实产品上的外观。你可以为 T 恤、马克杯、包等创建模型,让你清楚了解最终产品。
  • 全面的编辑工具:Recraft 包括一套用于优化设计的工具,包括背景移除、图像放大和矢量化。
  • 无限画布:Recraft 提供了一个灵活的工作区,允许你拖放元素、生成新设计并轻松移动它们。这与 Figma 或 Miro 等设计工具非常相似。

3. 使用技巧

为了充分利用 Recraft AI,以下是一些技巧:

  • 从清晰的想法开始:在进入平台之前,请考虑你想要创建什么。收集灵感,选择调色板,并确定你想要的目标风格。
  • 使用自然语言:Recraft 允许你使用自然语言提示,因此你无需成为设计软件专家即可上手。只需描述你想要的内容,AI 就会完成其余的工作。
  • 探索社区:Recraft 拥有一个协作社区,你可以在其中找到其他用户设计的灵感。这是了解该工具的可能性并学习新技术的绝佳方式。
  • 迭代和优化:不要满足于你生成的第一个设计。使用“微调”功能来修改和更改设计概念,并不断尝试以达到你想要的设计。
  • 尝试不同的风格:使用风格转换功能来保持品牌或项目视觉效果的一致性。将你最喜欢的设计转换为风格,并将其应用于其他设计元素。
  • 使用模型:获得徽标后,使用模型查看它在真实产品上的外观。这有助于你和你的客户可视化最终设计。
  • 正确导出:导出时请确保使用正确的格式。徽标和矢量图形使用 SVG,模型和图像使用 PNG 和 JPEG 等格式。

4. 价格

Recraft 提供一个 免费计划,其中包含有限的积分,这些积分基本上是你可执行的操作。如果你需要做更多事情并想要额外的福利,则需要订阅付费计划。

  • 免费计划:你每天都会获得50免费积分。新用户可以通过使用邀请链接获得 200 个额外的积分。但是,免费用户可能在商业权利和隐私方面受到限制。
  • 付费计划:付费订阅会提供更多积分、商业权利以及让你将作品设为私有的能力。这些计划的费用因你需要的功能以及你选择按月还是按年付费而异。基本付费计划约为每月 10 美元(按年支付)。按月支付计划约为 12 美元,允许你生成 1000 多张图像。还有其他层级可以增加你每月可以生成的图像数量。
  • 订阅注意事项:即使你取消了付费订阅,你在订阅期间创建的图像仍然属于你。

但是我测试免费计划时,上传了一张图片进行风格转换完成后,再上传第二张图片进行风格转换时,就不断提示我升级付费计划,这是比较烦人的。

5. 常见问题

  • Recraft 适合初学者吗? 是的,该平台的设计宗旨是用户友好,即使对于没有设计经验的人也是如此。界面直观,自然语言提示使其易于使用。
  • 我可以自定义我的设计吗? 是的,你可以对你的设计进行很多控制。你可以调整细节、混合样式并使用精确的颜色控制。还有用于移除背景、放大图像和矢量化的工具。
  • 如果我需要更改怎么办? 你可以随时返回并编辑你的设计。无限画布允许你迭代你的想法并尝试不同的方法。
  • Recraft 如何支持品牌一致性? 你可以上传特定于品牌的图像、建立调色板并创建样式,以确保你的所有设计都与你的品牌相匹配。
  • 我可以将这些图像用于商业用途吗? 只有通过付费订阅,你才能完全拥有 AI 生成作品的所有权和商业使用权。
  • Recraft 支持哪种输出格式? Recraft 支持矢量 (SVG) 和光栅 (PNG, JPEG) 格式,以及动画图形的 Lottie 格式。

结论

Recraft AI 是一款功能强大且易于访问的设计工具,适用于专业设计师和完全的初学者。它可以帮助你创建各种类型的图形,包括徽标、插图和产品模型,同时非常用户友好。虽然一些高级功能和大量使用需要付费订阅,但免费计划提供了一种探索该平台功能的绝佳方式。因此,如果你正在寻找可以帮助你完成创意设计工作的工具,请尝试 Recraft AI。

如何使用 Perplexity AI 在谷歌上排名第一

Perplexity SET

在当今的数字环境中,在谷歌和 YouTube 上获得靠前的排名对于增加流量、曝光和销售至关重要。在这篇博文中,我们将探讨如何利用 AI,特别是 Perplexity AI,来简化您的 SEO 工作并提高您的在线可见性。

排名第一的三个基本要素

在深入研究实际步骤之前,重要的是要了解在搜索引擎上获得高排名涉及三个关键要素:

  • 话题:选择热门和相关的话题。
  • 关键词:确定您的目标受众在搜索时使用的词语。
  • 内容:创建满足受众需求的高质量材料。

传统上,这个过程需要专业的知识、工具和大量的时间。然而,借助像 Perplexity 这样的 AI 工具,您可以优化此工作流程。

使用 Perplexity AI 的分步指南

  1. 访问 Perplexity:首先访问 Perplexity AI 工具。此工具的功能类似于一个外壳,可以使用各种 AI 模型。

  2. 开始新线程:在 Perplexity 中,单击“new thread”开始一个新线程,您可以在其中输入指令。

  3. 选择焦点模式:Perplexity 的“焦点模式”允许您优化搜索。它位于输入框的右下方。您可以选择在网络、学术资源、写作、视频或社交媒体上进行搜索。对于一般的 SEO,您可以使用网络选项.

  4. 输入提示以查找热门话题:使用详细的提示来指定您的业务或产品、所需的输出和排名标准。例如,您可以指示该工具“查找有关 AI 和数字营销的最新热门话题,并按相关性对它们进行排名”。您也可以要求提供一定数量的主题.

查找热门话题提示词例子

我是做免费人工智能知识分享博客的,我需要做一些SEO文章和YouTube视频文案,需要你帮我搜索近期火爆的话题,给我10个跟我服务内容相关的话题,给他们打分,供我参考

  1. 分析结果:然后,Perplexity 将搜索网络并提供相关主题的排名列表以及分数。该工具将为您节省使用 Google Trends 等其他工具来分析流行内容的时间.

查找关键词提示词例子

according to the topic, please find more ranking keyword for my business and my youtube channel, please check trending keywords and rank them for reference.

  1. 查找相关关键词:在同一个线程中,继续指示 Perplexity 查找所选主题的相关关键词,以及有关搜索量和竞争的数据。例如,您可以使用指令“根据您刚刚给我的主题,识别相关关键词,并按搜索量和竞争对它们进行评分”.

  2. 查看关键词报告:Perplexity 的报告将显示关键词、其搜索量和竞争情况,使您可以优先考虑最有可能获得良好排名的关键词.

  3. 利用 SPACE 功能:Perplexity 的 “SPACE” 功能类似于其他基于云的 AI 工具中的项目功能。它允许您创建知识库并给出指令。此功能允许您将自己的数据与在线信息进行比较.

  4. 创建一个新的 SPACE:要使用此功能,请启动一个新的 SPACE,并为其指定一个标题,例如“SEO 关键词优化”。您还可以为此 SPACE 选择 AI 模型,例如 Cloud 3.5。重要的是要给它一个指令,例如“始终以中文输出”,以保持一致性。您始终可以在未来的线程中切换到其他语言。

  5. 上传您的数据:将您现有的内容(例如,您 YouTube 频道中排名靠前的关键词)上传到 SPACE。Perplexity 接受各种数据格式.

  6. 分析您的数据:在 SPACE 中的一个新线程中,指示 Perplexity 分析您的数据并将其与在线数据进行比较。例如,您可以要求它“分析我现有的关键词,并找到我尚未使用的与我的主题相关的新关键词,并提供这些关键词的搜索量和竞争情况”.

  7. 优化内容:然后,Perplexity 将识别您内容中的差距并提出要定位的新关键词。这使您可以使用数据驱动的见解来改进您的内容.

  8. 与 ChatGPT 比较:虽然 ChatGPT 也具有搜索功能,但 Perplexity 提供了更全面的结果。在一项测试中,Perplexity 在使用相同的提示时,为 SEO 相关任务提供了明显更详尽的输出.

AI 在商业中的力量

使用像 Perplexity 这样的 AI 工具可以显著简化 SEO,通过自动化话题研究、关键词识别和内容创建等任务,从而节省您的时间和资源。AI 驱动的工具可以提高效率、降低成本并促进销售。通过使用完整的系统,您可以让您的业务自动运行,而您专注于战略和客户互动。事实上,这种方法非常强大,以至于一些专家认为,到 2026 年,大多数企业将完成 AI 自动化转型.

结论

通过遵循这些步骤,您可以利用 Perplexity AI 的强大功能来优化您的 SEO 工作,并在谷歌和 YouTube 上获得更高的排名。您可以使用一个一体化系统开始创建 AI 驱动的“单人公司”,其中包含通过单一界面管理营销、销售和运营的工具。通过利用 AI 的强大功能,您可以保持竞争力并在不断发展的数字环境中蓬勃发展.

LayoutLM:深入解析文档图像理解的强大模型

LayoutLM

1. 简要介绍

在数字化时代,我们每天都会接触到大量的文档,包括扫描件、表格、收据等。如何让计算机理解这些 包含文本和布局信息的文档,一直是人工智能领域的研究重点。传统的自然语言处理(NLP)模型主要关注文本内容,而忽略了文档的布局和视觉信息,这在处理文档图像时会遇到瓶颈. 为了解决这个问题,微软在2020年6月推出了 LayoutLM 模型.

  • 背景历史:
    • 在LayoutLM之前,NLP模型主要关注文本输入,而计算机视觉模型主要关注图像输入.
    • LayoutLM的出现,首次将 图像、文本和2D位置 信息作为输入,实现了 多模态 信息处理.
  • 开发团队: LayoutLM由 Yiheng Xu, Minghao Li, Lei Cui, Shaohan Huang, Furu Wei, 和 Ming Zhou 共同开发.
  • 功能:
    • LayoutLM旨在 理解文档图像,从而实现 信息提取、表单理解、收据理解和文档分类 等任务.
    • 它通过同时建模文本和布局信息之间的交互,从而 显著提高 了文档图像理解的性能.
    • LayoutLM 可以从 扫描文档或图像 中提取特定的、重点信息.

2. 架构设计

LayoutLM 的架构基于 BERT (Bidirectional Encoder Representations from Transformers). 它在 BERT 的基础上增加了 两种新的输入嵌入

  • 2D 位置嵌入 (2D Position Embeddings): 用于表示文档中 文本的空间位置. 与传统的只考虑单词顺序的位置嵌入不同,2D 位置嵌入使用每个单词的 边界框坐标 (x0, y0, x1, y1) 来定义其在页面上的位置. 文档的左上角被视为坐标系统的原点 (0, 0). 这些坐标被归一化到 0-1000 的范围内,然后嵌入到模型可以理解的数值表示中.
  • 图像嵌入 (Image Embeddings): 用于 整合视觉信息. LayoutLM 将图像分割成与 OCR 文本对应的区域,并利用这些区域的视觉特征生成图像嵌入. 图像嵌入有助于模型理解文档的视觉风格,从而增强文档理解能力.

预训练 (Pre-training):

  • LayoutLM 使用 Masked Visual-Language Model (MVLM) 进行预训练. MVLM 是受掩码语言模型启发的技术,但它同时考虑文本和2D位置嵌入作为输入. 模型学习预测被掩码的单词,通过上下文的文本和空间位置信息进行预测.
  • LayoutLM 还使用 Multi-label Document Classification (MDC) 进行预训练. 该任务训练 LayoutLM 处理带有多个标签的扫描文档,使其能够从多个领域聚合知识并生成更好的文档级别表示,尽管它不是大型模型预训练的必要条件.
  • LayoutLM的预训练使用了 IIT-CDIP Test Collection 1.0 数据集,该数据集包含超过600万份文档和1100万份扫描文档图像.

3. 能处理的文档类型

LayoutLM 擅长处理那些 布局和视觉信息对于理解内容至关重要 的文档. 包括以下类型:

  • 表单 (Forms): LayoutLM 在表单理解任务上取得了非常好的效果,能够准确地处理具有特定字段和布局的结构化文档. FUNSD 数据集 通常用于训练和评估 LayoutLM 的表单理解能力.
  • 收据 (Receipts): LayoutLM 在收据理解任务中也表现出色. 它可以从收据中提取数据,并利用文本和布局信息. SROIE 数据集 用于微调 LayoutLM 的收据数据.
  • 扫描文档 (Scanned documents): LayoutLM 能够有效地处理扫描文档,同时建模文本和布局信息之间的交互.
  • 商务文档 (Business Documents): LayoutLM 可应用于各种商务文档,包括:
    • 采购订单 (Purchase orders)
    • 财务报告 (Financial reports)
    • 商业邮件 (Business emails)
    • 销售协议 (Sales agreements)
    • 供应商合同 (Vendor contracts)
    • 信件 (Letters)
    • 发票 (Invoices)
    • 简历 (Resumes)
  • 其他视觉丰富的文档 (Other Visually Rich Documents): LayoutLM 适用于任何视觉丰富的文档,在这些文档中,布局显著增强了语言表示.

4. 使用技巧

  • OCR 引擎: 使用 OCR (Optical Character Recognition) 引擎 (例如 Tesseract)从文档图像中提取文本及其对应的边界框.
  • 边界框归一化: 在将边界框坐标输入 LayoutLM 之前,将它们归一化到 0-1000 范围. 通过将边界框坐标除以文档图像的原始宽度和高度,然后乘以 1000 进行归一化.
  • 特殊标记: LayoutLM 使用特殊标记来处理文本,包括:
    • [CLS]: 分类标记,用于序列分类,并且是序列的第一个标记.
    • [SEP]: 分隔符标记,用于分隔多个序列.
    • [PAD]: 填充标记,用于填充不同长度的序列.
    • [MASK]: 掩码标记,用于掩码语言建模.
    • [UNK]: 未知标记,用于表示词汇表中未知的单词.
  • 选择合适的 Tokenizer: 使用 LayoutLMTokenizer 或 LayoutLMTokenizerFast 进行分词. LayoutLMTokenizerFast 是一个更快的版本,基于 Hugging Face 的 tokenizers 库.

5. 运行环境要求

LayoutLM的运行环境要求主要包括以下几个方面:

  • 编程语言和框架:LayoutLM可以使用 PyTorchTensorFlow 框架进行实现和训练。
    • PyTorch 是一个开源的机器学习库,常用于实现神经网络和深度学习模型。
    • TensorFlow 是另一个流行的开源机器学习库,也用于实现神经网络和深度学习模型。
  • Hugging Face Transformers 库:这是使用LayoutLM的核心库,提供了预训练模型、tokenizer 以及其他工具。
    • 这个库提供了LayoutLM模型的各种实现,包括用于不同任务的变体,例如LayoutLMModel, LayoutLMForMaskedLM, LayoutLMForSequenceClassification, LayoutLMForTokenClassification 和 LayoutLMForQuestionAnswering。
  • OCR引擎:需要一个 OCR (光学字符识别) 引擎 从文档图像中提取文本及其对应的边界框。
    • 常用的OCR引擎是 Tesseract
    • OCR引擎将图像中的文本转换为机器可读的文本,并提供位置嵌入所需的坐标。
  • 图像处理库:需要图像处理库来处理文档图像,例如 Pillow (PIL)
  • 数据处理库:需要使用数据处理库,例如 NumPyPandas 进行数据处理。
  • 硬件要求: 如果要进行模型的训练,GPU 可以显著加快训练速度。
  • Python 环境: 需要 Python 编程环境,并安装所需的库。
  • Tokenizer:需要使用 LayoutLMTokenizerLayoutLMTokenizerFast 进行分词。 LayoutLMTokenizerFast 是一个更快的版本,基于Hugging Face的tokenizers库。
    • Tokenizer负责将文本分割成模型可以理解的token。
  • 数据集: 不同的任务需要不同的数据集。例如,FUNSD数据集用于表单理解,SROIE数据集用于收据理解,RVL-CDIP数据集用于文档图像分类。

总而言之,使用LayoutLM需要一个配置了适当库(如 Transformers, PyTorch 或 Tensorflow,以及OCR引擎)的Python环境,以及一个能够进行数据预处理和模型训练的平台。

6. 代码示例

以下是一个使用 LayoutLM 进行序列分类的 PyTorch 代码示例:

import os
import numpy as np
import pandas as pd
from tqdm.auto import tqdm
from sklearn.model_selection import train_test_split
import pytesseract
from PIL import Image, ImageDraw, ImageFont
import torch
from datasets import Dataset, Features, Sequence, ClassLabel, Value, Array2D
from transformers import LayoutLMTokenizer, LayoutLMForSequenceClassification, AdamW

# Load the dataset
# Assuming you have a dataframe named 'df' with columns 'image_path', 'words', 'bbox', 'label'
# The bounding box coordinates should be normalized

# Create a dictionary for label to index mapping
labels = df['label'].unique().tolist()
label2idx = {label: idx for idx, label in enumerate(labels)}

# Load the tokenizer and model
tokenizer = LayoutLMTokenizer.from_pretrained("microsoft/layoutlm-base-uncased")

# Define a function to encode training examples
def encode_training_example(example, max_seq_length=512, pad_token_box=):
    words = example['words']
    normalized_word_boxes = example['bbox']
    assert len(words) == len(normalized_word_boxes)
    token_boxes = []
    for word, box in zip(words, normalized_word_boxes):
        word_tokens = tokenizer.tokenize(word)
        token_boxes.extend([box] * len(word_tokens))
    special_tokens_count = 2
    if len(token_boxes) > max_seq_length - special_tokens_count:
       token_boxes = token_boxes[: (max_seq_length - special_tokens_count)]
    token_boxes = [] + token_boxes + []
    encoding = tokenizer(' '.join(words), padding='max_length', truncation=True)
    input_ids = tokenizer(' '.join(words), truncation=True)["input_ids"]
    padding_length = max_seq_length - len(input_ids)
    token_boxes += [pad_token_box] * padding_length
    encoding['bbox'] = token_boxes
    encoding['label'] = label2idx[example['label']]
    assert len(encoding['input_ids']) == max_seq_length
    assert len(encoding['attention_mask']) == max_seq_length
    assert len(encoding['token_type_ids']) == max_seq_length
    assert len(encoding['bbox']) == max_seq_length
    return encoding

# Function to prepare data loaders from dataframe
def training_dataloader_from_df(data_df):
    dataset = Dataset.from_pandas(data_df)
    features = Features({
        'words': Sequence(Value('string')),
        'bbox': Sequence(Sequence(Value('int64'))),
        'label': Value('string'),
        })

    encoded_dataset = dataset.map(encode_training_example, features=features, remove_columns=dataset.column_names)
    encoded_dataset.set_format(type='torch', columns=['input_ids','bbox', 'attention_mask', 'token_type_ids', 'label'])
    dataloader = torch.utils.data.DataLoader(encoded_dataset, batch_size=4, shuffle=True)
    return dataloader


# Split train and validation datasets
train_data, valid_data = train_test_split(df, test_size=0.2, random_state=42)

# Create dataloaders
train_dataloader = training_dataloader_from_df(train_data)
valid_dataloader = training_dataloader_from_df(valid_data)

# Define the device to train on
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

# Load the model
model = LayoutLMForSequenceClassification.from_pretrained(
    "microsoft/layoutlm-base-uncased", num_labels=len(label2idx)
)
model.to(device);

# Define optimizer
optimizer = AdamW(model.parameters(), lr=4e-5)

# Training loop
num_epochs = 3
for epoch in range(num_epochs):
    print("Epoch:", epoch)
    training_loss = 0.0
    training_correct = 0
    model.train()
    for batch in tqdm(train_dataloader):
        labels = batch["label"].to(device)
        outputs = model(
           input_ids=batch["input_ids"].to(device), bbox=batch["bbox"].to(device),
            attention_mask=batch["attention_mask"].to(device),
            token_type_ids=batch["token_type_ids"].to(device), labels=labels
        )
        loss = outputs.loss
        training_loss += loss.item()
        predictions = outputs.logits.argmax(-1)
        training_correct += (predictions == labels).float().sum()
        loss.backward()
        optimizer.step()
        optimizer.zero_grad()
    print("Training Loss:", training_loss / batch["input_ids"].shape)
    training_accuracy = 100 * training_correct / len(train_data)
    print("Training accuracy:", training_accuracy.item())
    validation_loss = 0.0
    validation_correct = 0
    model.eval()
    with torch.no_grad():
        for batch in tqdm(valid_dataloader):
            labels = batch["label"].to(device)
            outputs = model(
                input_ids=batch["input_ids"].to(device), bbox=batch["bbox"].to(device),
                attention_mask=batch["attention_mask"].to(device),
                token_type_ids=batch["token_type_ids"].to(device), labels=labels
            )
            loss = outputs.loss
            validation_loss += loss.item()
            predictions = outputs.logits.argmax(-1)
            validation_correct += (predictions == labels).float().sum()
    print("Validation Loss:", validation_loss / batch["input_ids"].shape)
    validation_accuracy = 100 * validation_correct / len(valid_data)
    print("Validation accuracy:", validation_accuracy.item())

这个示例代码展示了如何使用 LayoutLM 进行文档分类. 其中,需要注意的是,输入数据需要包含文本内容(words),对应的边界框坐标(bbox),以及类别标签(label),且边界框坐标需要归一化到 0-1000 的范围内.

7. 常见问题

  • LayoutLM 和 BERT 的区别是什么?
    • BERT 主要处理文本信息,而 LayoutLM 同时处理文本、布局和视觉信息.
    • LayoutLM 通过 2D位置嵌入图像嵌入 来整合布局和视觉信息,使其能够更好地理解文档图像.
  • 如何处理不同大小的文档图像?
    • 通过 归一化边界框坐标,使 LayoutLM 能够处理各种大小的文档图像.
  • LayoutLM 可以处理中文文档吗?
    • LayoutLM 可以处理多语言文档,包括中文,前提是使用合适的 tokenizer 和预训练模型.
  • 如何选择合适的预训练模型?
    • Hugging Face Transformers 库提供了各种预训练的 LayoutLM 模型。您可以根据自己的任务和数据选择合适的模型.
  • 如何提高 LayoutLM 的性能?
    • 使用高质量的 OCR 结果.
    • 使用与任务相关的 微调数据.
    • 调整模型 参数,例如学习率和训练轮数.

AI生成可玩3D世界:Genie 2 与其他技术的对比分析

Genie2

引言

本文旨在简要介绍谷歌DeepMind的 Genie 2,这是一个能够生成可玩3D环境的AI模型。通过对比Genie 2的特点与其他类似技术,本文旨在帮助读者了解它们之间的差异。Genie 2是目前最先进的AI工具之一,可以根据简单的提示或图像生成可交互的3D游戏世界。

背景

  • 游戏在AI研究中的重要性: 自谷歌DeepMind成立以来,游戏一直是其研究的核心。从早期的Atari游戏到AlphaGo和AlphaStar的突破,再到与游戏开发者的合作,游戏在测试和提升AI能力方面发挥了重要作用。
  • 传统瓶颈: 训练更通用的具身智能体一直受限于缺乏足够丰富和多样化的训练环境。
  • Genie 2的出现: Genie 2的出现有望解决这一瓶颈,它可以生成无限多样化的新世界,为AI智能体的训练和评估提供无限可能。这项研究也为交互体验的原型设计开辟了新的创意工作流程。Genie 2 是一个大型基础世界模型

不同版本或类似产品概述

  • Genie 1: Genie 1是Genie 2的前身,主要用于生成多样的2D世界。
  • Genie 2: Genie 2可以生成各种可操作的3D环境,用户可以通过键盘和鼠标与之互动。它能够模拟虚拟世界,包括采取任何行动的后果。
  • 其他游戏生成工具: 视频中提到了一些其他游戏生成工具,例如谷歌的游戏引擎(模拟Doom)、微软的Diamond(模拟反恐精英)和The Matrix,但这些工具的质量和一致性不如Genie 2。
  • World Labs的AI: World Labs的AI 可以将任何物体转换成可探索的互动3D环境,在质量上与Genie 2相似。
  • MiniMax 的 I2V1 live: MiniMax的I2V1 live 是一个专门用于生成2D动画的AI模型。

详细对比

特性 Genie 1 Genie 2 其他游戏生成工具 World Labs的AI MiniMax I2V1 live
生成环境 2D 3D 多为特定游戏类型 3D 2D 动画
交互性 有限 可交互,响应用户操作(如跳跃、游泳) 部分可交互 可交互 有限
记忆 无明显记忆 长程记忆,能记住不在视野中的物体 较弱 能记住不在视野中的部分内容 -
视频长度 - 最长可生成一分钟的视频 The Matrix 可生成无限长度视频 - -
视角 - 可生成第一人称、等距或第三人称视角 通常为固定视角 可模拟镜头效果 -
对象互动 - 能模拟物体互动,如气球爆炸、开门、爆炸 通常较简单 - -
角色动画 - 能够动画角色进行不同的活动 有限 - 是专用于2D动画
物理效果 - 模拟水、烟、重力、光照和反射效果 通常较简单 - -
输入方式 - 提示或图像,使用Imagen 3生成初始图像 通常有特定输入方式 图片 图像
实时性 - 存在实时版本,但质量降低 部分可实时 实时 -
应用 - 可用于训练和评估具身智能体,快速原型设计交互体验 用于特定游戏模拟 用于游戏、电影和VR 用于生成动画视频
技术架构 - 自回归潜在扩散模型 - - -

优缺点分析

Genie 2:

  • 优点:
    • 能够生成高质量、可交互的3D环境。
    • 具备长程记忆,能够记住不在视野中的物体。
    • 能够模拟物体互动、角色动画和物理效果。
    • 可以从第一人称、等距或第三人称视角生成视频。
    • 能够用于快速原型设计和训练AI智能体。
  • 缺点:
    • 生成的视频最长只能维持一分钟。
    • 实时版本质量较低。
    • 图像质量会随时间降低。
    • 世界一致性存在时间限制。
    • 目前尚未公开可用。

其他游戏生成工具:

  • 优点:
    • 部分工具可以生成无限长度的视频 (The Matrix)。
  • 缺点:
    • 质量和一致性不如Genie 2。
    • 交互性和功能有限。

World Labs的AI:

  • 优点:
    • 可以实现平滑和细节丰富的3D世界生成。
    • 可以模拟镜头效果(景深、变焦)。
    • 有交互式灯光效果。
  • 缺点:
    • 目前还未开放使用,需要加入等待列表。

MiniMax I2V1 live:

  • 优点:
    • 专门用于生成高质量2D动画
  • 缺点:
    • 功能较少,仅限生成动画,无法互动。

用户体验

目前,Genie 2 主要用于研究和开发,没有大量用户评价。但是,从演示视频中可以看出,用户可以通过键盘和鼠标操作角色,与生成的环境进行互动。Genie 2 可以根据用户的操作,智能地移动角色,例如,箭头按键可以移动机器人,而不是树木或云朵。

你的推荐

  • 对于AI研究人员: Genie 2 是一个强大的工具,可以生成无限多样化的环境,用于训练和评估具身智能体。
  • 对于游戏开发者: Genie 2 可以快速原型设计游戏环境,加速游戏开发过程。
  • 对于想要体验3D世界的用户: World Labs的AI可能是一个不错的选择,它提供了高质量的3D世界和多种镜头效果,但目前需要等待发布。
  • 对于需要生成动画视频的用户: MiniMax I2V1 live 是一个专门用于生成2D动画的工具,效果优秀。
  • 对于普通用户: 目前Genie 2和World Labs的AI还处于早期阶段,普通用户可以关注后续的开放版本。

总的来说,Genie 2 代表了AI领域的一个重大突破,它不仅可以生成高质量的3D环境,还可以与用户互动。尽管目前还有一些限制,但随着技术的不断发展,Genie 2 有望在游戏开发、AI研究和虚拟现实等领域发挥更大的作用。

ChatGPT 桌面版安装及使用技巧详解!让AI接管你的电脑,效率提升

ChatGPTDesktop

ChatGPT 桌面版终于来了! 无论你是付费用户还是免费用户,都可以下载使用,支持 Windows 和 MacOS 系统。 告别网页版,一键呼出 ChatGPT,与 AI 进行无缝衔接,大大提高你的工作学习效率! 不仅如此,桌面版还带来了超多实用新功能,快来一起看看吧!

一、安装 ChatGPT 桌面版,简单几步就搞定!

1. Windows 用户
  • 修改电脑的系统时区 将电脑系统地区和时区设置成美国的。
  • 通过应用商店直接安装 打开链接 openai.com/chatgpt/dow… 下载安装包,安装。 稍后会跳转到应用商店,我们点击右侧【在Microsift Store中查看】按钮,随后按照步骤点击“获取”按钮就可以下载安装桌面版ChatGPT了。
  • 设置快捷键 安装完成后,可以使用快捷键快速唤出 ChatGPT, Windows 系统的快捷键是 Alt+空格。 你也可以自定义快捷键。
2. MacOS 用户
  • 系统要求:仅支持 MacOS14 以及 M1 以上的芯片。
  • 下载 ChatGPT 桌面版: 打开链接 openai.com/chatgpt/dow… 点击下载 MacOS 版。
  • 安装 ChatGPT 应用: 下载完成后,找到下载的 .dmg 文件,双击打开。按照提示将 ChatGPT 应用拖动到“应用程序”文件夹中即可完成安装。
  • 解决来自未知开发者提示: 打开“系统偏好设置”,进入“安全性与隐私”选项,然后点击“仍要打开”即可。
  • 设置快捷键 MacOS 系统的快捷键是 Option + Space,你也可以自定义快捷键。

二、ChatGPT 桌面版使用技巧大放送,功能更强大!

桌面版 ChatGPT 不仅使用方便,功能也更加强大,快来看看有哪些使用技巧吧!

1. 截图功能

ChatGPT截图

遇到难题,直接截图提问! 无论是编程难题,还是需要分析的 Excel 报表或数据图表,只需截个图,扔给 ChatGPT 就行了,真正解放大脑!

2. 拍照功能

ChatGPT 现在也有眼睛了! 遇到不会的数学题,直接拍个照,让 ChatGPT 帮你解决!

3. 上传多个文件进行总结

多文件上传 桌面版 ChatGPT 可以一次性上传多个文件,并让 ChatGPT 进行总结回答。

4. 免费用户也能体验高级语音功能!

点击 ChatGPT 输入框右边的黑色图标,就可以开始与 ChatGPT 进行语音对话。 免费用户可以体验一小段时间,ChatGPT Plus 用户则可以使用更长时间。

5. MacOS 独家功能

  • 直接启动第三方应用程序 ChatGPT Plus 和 Teams 订阅用户可以通过下拉菜单直接启动 VS Code、Xcode、Terminal 和 iTerm2 等第三方应用程序。 这对程序员来说非常方便,无需频繁切换应用程序。 Windows 用户也将很快获得相同的功能。
  • 搜索聊天记录 Mac 用户可以在左侧的聊天记录中进行搜索。

三、总结

ChatGPT 桌面版功能强大,使用方便,绝对是提高效率的必备神器!快来下载体验吧!

Dify工作流详细步骤解析,从入门到精通!

Dify工作流详细步骤解析,从入门到精通

我们简要介绍了Dify工作流以及它能带来的效率提升。很多朋友对Dify工作流的搭建步骤非常感兴趣,所以今天就来详细讲解一下,如何从零开始创建一个Dify工作流。

一、 准备工作

在开始搭建工作流之前,我们需要先了解Dify平台的基本概念和操作。

  • 节点: 节点是构成工作流的基本单元,每个节点代表一个特定的操作,例如接收用户输入、调用大语言模型、处理数据等等。
  • 连接线: 连接线用来连接不同的节点,定义工作流的执行顺序。
  • 变量: 变量用来存储数据,可以在不同的节点之间传递。

二、 创建工作流

登录Dify平台,点击 "创建空白应用",然后选择 "工作流"。 为你的工作流取一个名字,例如 "小红书爆款文案创作工作流"。

三、 添加节点

Dify提供了丰富的节点类型,可以满足各种各样的需求。 我们以小红书爆款文案创作工作流为例,添加以下节点:

  1. 开始节点: 每个工作流都必须有一个开始节点,用来接收用户输入的参数。 在开始节点的设置页面,我们可以添加四个输入字段:来源、风格、标题数量以及内容长度。

    • 来源:可以是一个主题,或者一个新闻链接。
    • 风格:例如可爱风、专业风等等。
    • 标题数量:例如 3 个标题。
    • 内容长度:例如 100 字左右。
  2. 问题分类器节点: 用来判断来源字段是URL链接还是主题/关键词。

    • 输入变量:来源
    • 模型:可以选择GPT-3.5
    • 问题分类:判断是URL链接还是主题/关键词
  3. 自定义工具节点: 如果是URL链接,就用这个节点来获取网页内容。 你可以通过工具菜单创建自定义工具。

  4. 内容大纲生成器节点: 如果是主题,就用这个节点来生成内容大纲。

    • 模型:可以选择GPT-3.5
    • 任务需求:
      • 系统提示词:你是一个小红书爆款写作专家,根据用户给的主题撰写小红书文案,内容字数要求是100个字左右。
      • 角色提示词:主题如下:\ 开始/{x}content
  5. 变量赋值节点: 将前面两个流程得到的结果变成一个统一的变量,供后面的流程调用。

    • 变量类型:选择合适的变量类型
    • 变量值:对应上个步骤的两个节点的输出值
  6. 标题创建节点: 用来根据前面节点的输出,创建小红书的爆款标题。

    • 模型:可以选择GPT-3.5
    • 任务需求:
      • 系统提示词:你是一名小红书爆款写作专家,撰写 {x} 个爆款标题(含适当的emjo)表情。\ 一、在小红书标题方面,你会以下的技能\ 1、采用二级标题法进行创作。\ 2、你善于使用标题吸引人的特点\ 3、你使用爆款关键词,写 标题 时,从这个列表中随机选 1-2 个\ 4、你了解小红书平台的标题特性\ 5、你懂得创作的规则\ 二、 结合我给你输入的信息,以及你掌握的标题技巧, 撰写标题; 输出 格式:\ 1、 标题 一;
      • 角色提示词:\ 这是内容:\ 开始/{x}output
  7. 撰写文案节点: 用来撰写小红书的文案。

    • 模型:建议选择GPT-4
    • 任务需求:
      • 系统提示词:你是小红书爆款写作专家,根据用户给的内容,撰写小红书爆款文案(每一个段落含有适当的emoji表情,文末有合适的tag标签)\ 一、在小红书文案方面,你会以下技能:\ 1、写作风格\ 2、写作开篇方法\ 3、文本结构\ 4、互动引导方法\ 5、一些小技巧\ 6、爆炸词\ 7、从你生成的稿子中,抽取3-6个seo关键词,生成#标签并放在文章最后\ 8、文章的每句话都尽量口语化、简短\ 9、在每段话的开头使用表情符号,在每段话的结束使用表情符号,在每段话的中间插入表情符号\ 二、结合我给你输入的参考标题和内容,以及你掌握的文案技巧,按照{x}style的文案风格,撰写小红书文案(文案长度:{X}length个字左右);
      • 角色提示词:\ 参考标题:\ {x}text\ 内容:\ {x}output
  8. 文案格式化节点: 用来处理一些格式问题,例如添加换行符等等。 你可以使用代码执行节点来编写简单的Python或JavaScript代码。

  9. 上传文案节点: 用来将生成的标题和文案上传到你的目标平台,例如Notion笔记。 你可以使用HTTP类型的节点来发送请求。

  10. 模板转换节点: 将前面生成的小红书的标题和文案合并在一起,并进行最终的输出。

四、 连接节点

按照逻辑顺序,用连接线将所有节点连接起来。

五、 测试和发布

点击右上角的 "运行" 按钮,测试你的工作流是否能正常运行。 如果一切正常,就可以点击 "发布" 按钮,让其他人也可以使用你的工作流了。

Dify工作流使用小技巧

  • 合理拆分任务: 将复杂的任务拆分成多个小的任务,可以提高AI模型的处理效率,并使工作流更容易理解和维护。
  • 巧用变量: 使用变量来存储和传递数据,可以使工作流更加灵活。
  • 充分利用系统变量: Dify提供了很多系统变量,例如用户ID、应用ID等等,可以用来记录和分析工作流的运行情况。
  • 善用外部工具和API: Dify可以接入各种外部工具和API,例如搜索引擎、图像生成工具等等,可以大大扩展工作流的功能。

总结

Dify工作流是一个非常强大的自动化工具,它可以帮助我们把很多重复性的工作交给AI,让我们有更多时间去做更有创造性的事情。希望这篇博客能够帮助你快速上手Dify工作流,打造属于你自己的自动化流程!

在不同硬件上运行大型语言模型 (LLM) -- 性能比较与分析

在不同硬件上运行大型语言模型

这篇文章深入探讨了在各种硬件上运行大型语言模型 (LLM) 的性能差异,涵盖从低成本的树莓派到高端 AI 工作站。通过分析实际测试数据,我们将了解硬件选择对 LLM 推理速度和整体可用性的影响。

低端硬件: 树莓派

  • 在树莓派 4(8GB 内存)上运行 LLaMA 3.1 模型是可行的,但其实用性非常有限。
  • 由于树莓派没有 GPU,模型完全依赖 CPU 进行计算,导致模型加载时间和推理速度极其缓慢,大约每秒只能生成一个单词。
  • 运行 LLaMA 3.1 时,树莓派 4 的 CPU 使用率会达到 100%,温度升高,内存占用约为 6GB。
  • 这样的性能表现显然无法满足实时交互的需求,用户体验极差。

中端硬件: 迷你电脑

  • Orion herk 迷你电脑(Ryzen 9 7940HS,Radeon 780M GPU)提供了更流畅的体验。
  • 在 herk 上,LLaMA 3.1 的推理速度可与 ChatGPT 相媲美,表明其具备一定的实用价值。
  • 然而,尽管 herk 配备了 Radeon 780M GPU,但由于其 6GB 显存的限制,LLaMA 3.1 无法加载到 GPU 中,只能依靠 CPU 进行推理。
  • 即使测试了较小的 LLaMA 3.2 模型 (2GB),也无法使用 GPU 进行推理。
  • 这表明,即使是集成 GPU,也需要足够的显存来容纳 LLM 才能实现高效推理。

高端硬件: 游戏 PC 和工作站

  • 配备 Nvidia 4080 GPU 的台式电脑(Threadripper 3970X)在运行 LLaMA 3.1 时表现出色。
  • 4080 的 GPU 利用率可以达到 75% 至 100%,推理速度明显快于 ChatGPT,用户体验流畅。
  • 这表明独立显卡在运行大型 LLM 时具有显著优势。
  • 配备 M2 Ultra 芯片的 Mac Pro 也表现出强大的性能,其 GPU 利用率达到 50%,推理速度很快。
  • 这表明 Apple Silicon 在运行 LLM 方面也具有竞争力。

超高端硬件: AI 工作站

  • 配备 Nvidia 6000 Ada 显卡和 512GB 内存的 96 核 Threadripper 工作站可以运行更大的 LLaMA 3.1 模型(4050 亿参数)。
  • 然而,即使在这台强大的硬件上,运行如此庞大的模型仍然会导致推理速度极其缓慢,与树莓派上的体验相差无几。
  • 这说明模型大小对性能的影响可能与硬件一样重要。
  • 当在这台工作站上运行较小且更有效的 LLaMA 3.2 模型 (约 2GB) 时,推理速度变得非常快。

结论

  • 为 LLM 选择合适的硬件至关重要,因为它直接影响模型的性能和可用性。
  • 虽然低端硬件可以运行小型 LLM,但对于大型 LLM 来说,强大的 GPU 和充足的内存至关重要。
  • 即使拥有高端硬件,模型大小也会显著影响推理速度,因此选择适合需求的模型也至关重要。

硬件性能对比

为了更直观地展示不同硬件平台的性能差异,我们可以制作一个简单的表格:

硬件平台 CPU GPU 内存 LLaMA 3.1 推理速度 LLaMA 3.2 推理速度
树莓派 4 4 核 8GB 非常慢 (约 1 词/秒) 未测试
Orion herk Ryzen 9 7940HS Radeon 780M (6GB) 32GB 与 ChatGPT 相当 较快
Threadripper 3970X 32 核 Nvidia 4080 128GB 快于 ChatGPT 非常快
Mac Pro M2 Ultra 集成 GPU 128GB 很快 未测试
Threadripper (96 核) 96 核 Nvidia 6000 Ada 512GB 非常慢 (4050 亿参数模型) 极其快

请注意: 表格中的推理速度描述是相对的,实际性能会受到多种因素的影响,包括模型版本、软件配置和测试环境等。

对未来硬件选择的建议

  • 如果预算有限,并且只需要运行小型 LLM,那么配备集成 GPU 的迷你电脑是一个不错的选择。
  • 如果需要运行大型 LLM 或追求更高的性能,则需要投资独立显卡和充足的内存。
  • 对于专业用途,AI 工作站提供了最高的性能和灵活性,但成本也更高。
  • 随着 LLM 技术的不断发展,未来可能会出现更多针对 LLM 优化的硬件平台。

希望这篇文章能够帮助您更好地了解在不同硬件上运行 LLM 的性能差异,并为您的硬件选择提供一些参考。

使用 Cursor 的最佳实践

Cursor

AI 编码助手 Cursor 的出现彻底改变了软件开发,为提高效率和生产力提供了前所未有的机会。 然而,要有效地利用这些工具的强大功能,需要清楚地了解它们的功能和局限性。 本博客文章探讨了与 AI 编码助手进行通信和使用它们的关键策略,使您能够实现预期的结果。

上下文为王:

与 AI 编码助手成功协作的最关键方面之一是提供丰富而详细的上下文。 这些工具依赖于信息,他们对您的项目了解得越多,就越能生成准确和相关的代码。 以下是一些丰富上下文信息的实用技巧:

  • 文件标记: 在提示中使用“@”符号标记相关文件。 这有助于 AI 助手集中注意力并掌握项目不同组件之间的关系。
  • 文档链接: 引用外部库、API 或框架时,请包含指向相应文档的直接链接。 这使 AI 助手能够访问有关这些资源的全面信息。
  • Cursor 规则文件: “Cursor 规则”文件提供了一个集中式空间来定义项目特定的约定和准则。 利用此文件来指导 AI 助手的行为并确保代码库的一致性。
  • 明确的功能提醒: 如果 AI 助手似乎停滞不前或忘记了它的功能,请明确提醒它可以做什么。 例如,像“清除缓存,你是 Cursor AI,你可以查看和编辑 IDE 中的所有文件”这样简单的语句通常可以重置它的理解并提高性能。

构建成功的工作流程:

与 AI 编码助手的有效沟通超出了单个提示。 采用结构化的工作流程对于最大限度地发挥其潜力至关重要。 以下是一些关键策略:

  • 模块化: 将复杂的项目分解成更小、更易于管理的模块或函数。 这不仅简化了 AI 助手的任务,而且还使管理更改和隔离问题变得更加容易。
  • 使用 Composer: Cursor 中的“composer”功能提供了一种强大的机制,用于隔离任务并提供检查点,以便在必要时恢复到以前的状态。 为每个不同的功能或修改启动一个新的 composer,以保持上下文集中并避免干扰。
  • 集成 Notepad: Cursor 中的 Notepad 可作为集中上下文信息的重要存储库。 例如,您可以创建一个“数据库/API”Notepad 来记录您的数据库配置、API 端点和模式。 在这些 Notepad 中标记相关文件可以进一步帮助 AI 助手理解项目结构。

迭代开发和版本控制:

使用 AI 编码助手通常需要采用迭代方法。 通过改进您的提示和尝试不同的方法来实现预期结果,从而拥抱这一过程。 同样重要的是:

  • 拥抱版本控制: 利用 Git 等版本控制系统来仔细跟踪更改。 如果 AI 助手引入错误或需要探索替代解决方案,这可以轻松回滚到以前的状态。

管理期望:

虽然 AI 编码助手具有巨大的潜力,但必须以现实的期望来对待它们。 这些工具是强大的合作者,但不是神奇的解决方案。 他们需要明确的指示、全面的上下文和持续的人工指导。

  • 没有一键式奇迹: 不要期望通过单个提示就能创建复杂的应用程序。从小处着手,专注于构建单个组件并逐步扩展项目的范围。
  • 持续学习: AI 编码助手领域正在迅速发展。 及时了解新功能、最佳实践和局限性,以最大限度地提高效率。

通过采用这些策略,您可以释放 AI 编码助手的真正潜力,并改变您的软件开发过程。 拥抱这些工具的协作性,为它们提供成功所需的信息,并观察您的生产力飙升。

一个强大的GPT4免费聊天平台Coze.com

免费聊天平台Coze.com

Coze.com简介

人工智能(AI)的世界正在快速发展,其无数的应用颠覆了各个行业。其中一个主要推动这项技术前沿的玩家就是 coze.com - 一个为开发下一代AI聊天机器人而设计的平台。

Coze.com 是一个具有开创性的AI聊天机器人编辑平台。它独特的设计非常欢迎经验丰富的程序员和初学者。这个平台旨在淡化开发AI聊天机器人中涉及的复杂性,从而使更广泛的用户群体可以更容易地使用。