🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx skills add https://github.com/vercel/ai-elements --skill ai-elements

💡 提示:需要 Node.js 和 NPM

AI Elements

AI Elements 是一个基于 shadcn/ui 构建的组件库和自定义注册表,可帮助您更快地构建 AI 原生应用。它提供了预构建的组件,如对话、消息等。

安装 AI Elements 非常简单,可以通过几种方式完成。您可以使用专用的 CLI 命令以获得最快的设置,或者,如果您已经采用了 shadcn 的工作流程,也可以通过标准的 shadcn/ui CLI 进行集成。

重要提示: 请使用项目的包管理器运行所有 CLI 命令:npx ai-elements@latestpnpm dlx ai-elements@latestbunx --bun ai-elements@latest — 具体取决于项目的 packageManager。以下示例使用 npx ai-elements@latest,但请为项目替换为正确的运行器。

前提条件

在安装 AI Elements 之前,请确保您的环境满足以下要求:

  • Node.js,版本 18 或更高
  • 一个已安装 AI SDKNext.js 项目。
  • 您的项目中已安装 shadcn/ui。如果您尚未安装,运行任何安装命令都会自动为您安装。
  • 我们还强烈建议使用 AI Gateway,并将 AI_GATEWAY_API_KEY 添加到您的 env.local 文件中,这样您就不必使用每个提供商的 API 密钥。AI Gateway 每月还提供 5 美元的用量,方便您试验各种模型。您可以在此处获取 API 密钥

安装组件

您可以使用 AI Elements CLI 或 shadcn/ui CLI 来安装 AI Elements 组件。两者都能达到相同的结果:将所选组件的代码及其任何必要的依赖项添加到您的项目中。

CLI 会下载组件的代码并将其集成到您的项目目录中(通常是在您的 components 文件夹下)。默认情况下,AI Elements 组件会被添加到 @/components/ai-elements/ 目录中(或您在 shadcn 组件设置中配置的任何文件夹)。

运行命令后,您应该在终端中看到文件已添加的确认信息。然后,您就可以开始在代码中使用该组件了。

使用方法

一旦安装了 AI Elements 组件,您就可以像使用任何其他 React 组件一样在应用中导入和使用它。这些组件作为代码库的一部分被添加(而不是隐藏在库中),因此使用起来非常自然。

示例

安装 AI Elements 组件后,您可以像使用任何其他 React 组件一样在应用中使用它们。例如:

"use client";

import {
  Message,
  MessageContent,
  MessageResponse,
} from "@/components/ai-elements/message";
import { useChat } from "@ai-sdk/react";

const Example = () => {
  const { messages } = useChat();

  return (
    <>
      {messages.map(({ role, parts }, index) => (
        <Message from={role} key={index}>
          <MessageContent>
            {parts.map((part, i) => {
              switch (part.type) {
                case "text":
                  return (
                    <MessageResponse key={`${role}-${i}`}>
                      {part.text}
                    </MessageResponse>
                  );
              }
            })}
          </MessageContent>
        </Message>
      ))}
    </>
  );
};

export default Example;

在上面的示例中,我们从 AI Elements 目录导入了 Message 组件,并将其包含在 JSX 中。然后,我们使用 MessageContentMessageResponse 子组件来组合该组件。您可以像自己编写的组件一样对其进行样式设置或配置——由于代码位于您的项目中,您甚至可以打开组件文件查看其工作原理或进行自定义修改。

可扩展性

所有 AI Elements 组件都尽可能多地接受原始属性。例如,Message 组件扩展了 HTMLAttributes<HTMLDivElement>,因此您可以传递任何 div 支持的属性。这使得用您自己的样式或功能扩展组件变得非常容易。

自定义

安装后,无需额外设置。组件的样式(Tailwind CSS 类)和脚本已经集成。您可以立即在应用中开始与组件交互。

例如,如果您想移除 Message 的圆角,可以转到 components/ai-elements/message.tsx 并移除 rounded-lg,如下所示:

export const MessageContent = ({
  children,
  className,
  ...props
}: MessageContentProps) => (
  <div
    className={cn(
      "flex flex-col gap-2 text-sm text-foreground",
      "group-[.is-user]:bg-primary group-[.is-user]:text-primary-foreground group-[.is-user]:px-4 group-[.is-user]:py-3",
      className
    )}
    {...props}
  >
    <div className="is-user:dark">{children}</div>
  </div>
);

故障排除

为什么我的组件没有样式?

确保您的项目在 Tailwind 4 中为 shadcn/ui 正确配置——这意味着有一个 globals.css 文件,它导入了 Tailwind 并包含了 shadcn/ui 的基础样式。

我运行了 AI Elements CLI,但没有任何东西添加到我的项目中

请仔细检查:

  • 您当前的工作目录是项目的根目录(package.json 所在的位置)。
  • 您的 components.json 文件(如果使用 shadcn 风格的配置)已正确设置。
  • 您使用的是最新版本的 AI Elements CLI:
npx ai-elements@latest

如果以上都不行,请随时在 GitHub 上提出问题

主题切换不起作用——我的应用一直处于浅色模式

确保您的应用使用的是 shadcn/ui 和 AI Elements 所期望的相同 data-theme 系统。默认实现是在 <html> 元素上切换一个 data-theme 属性。确保您的 tailwind.config.js 相应地使用了 class 或 data 选择器。

组件导入失败,提示“找不到模块”

检查文件是否存在。如果存在,请确保您的 tsconfig.json 中有正确的 @/ 路径别名,例如:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./*"]
    }
  }
}

我的 AI 编码助手无法访问 AI Elements 组件

  1. 验证您的配置文件语法是否为有效的 JSON。
  2. 检查文件路径对于您的 AI 工具是否正确。
  3. 在进行更改后重新启动您的编码助手。
  4. 确保您有稳定的互联网连接。

仍然卡住了?

如果以上答案均无帮助,请在 GitHub 上提出问题,会有人乐意提供帮助。

可用组件

有关每个组件的详细文档,请参阅 references/ 文件夹。

📄 原始文档

完整文档(英文):

https://skills.sh/vercel/ai-elements/ai-elements

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。