Skip to content
tinAI
Go back

json-render | Giao diện AI với guardrails

Bài gốc: json-render | AI-generated UI with guardrails

Tác giả: Unknown

Ngày đăng: Dịch ngày:

TL;DR

json-render cho phép bạn tạo giao diện từ AI với các thành phần được xác định trước. Điều này giúp đảm bảo tính an toàn và chính xác khi triển khai các thiết kế giao diện tự động.

Giới thiệu

json-render là công cụ giúp tạo giao diện từ AI với các cấu phần được xác định trước, đảm bảo tính an toàn trong quá trình thiết kế tự động.

Tính năng chính

Cách sử dụng

Định nghĩa Catalog

Đặt giới hạn cho AI bằng cách xác định các thành phần, hành động, và liên kết dữ liệu mà AI có thể sử dụng.

import { createCatalog } from '@json-render/core';
import { z } from 'zod';

export const catalog = createCatalog({
  components: {
    Card: {
      props: z.object({
        title: z.string(),
        description: z.string().nullable(),
      }),
      hasChildren: true,
    },
    Metric: {
      props: z.object({
        label: z.string(),
        valuePath: z.string(),
        format: z.enum(['currency', 'percent']),
      }),
    },
  },
  actions: {
    export: { params: z.object({ format: z.string() }) },
  },
});

AI Tạo JSON

AI tạo ra JSON được ràng buộc để các thành phần của bạn có thể render nguyên bản.

{
  "key": "dashboard",
  "type": "Card",
  "props": {
    "title": "Revenue Dashboard",
    "description": null
  },
  "children": [
    {
      "key": "revenue",
      "type": "Metric",
      "props": {
        "label": "Total Revenue",
        "valuePath": "/metrics/revenue",
        "format": "currency"
      }
    }
  ]
}

Xuất là Mã

Xuất UI được tạo thành các thành phần React độc lập.

"use client";

import { Card, Metric, Chart } from "@/components/ui";

const data = {
  analytics: {
    revenue: 125000,
    salesByRegion: [
      { label: "US", value: 45000 },
      { label: "EU", value: 35000 },
    ],
  },
};

export default function Page() {
  return (
    <Card data={data} title="Revenue">
      <Metric
        data={data}
        label="Total Revenue"
        valuePath="analytics/revenue"
        format="currency"
      />
      <Chart data={data} dataPath="analytics/salesByRegion" />
    </Card>
  );
}

Cùng với mã xuất, package.json và các tệp cần thiết khác cũng được bao gồm để chạy độc lập.

Bắt đầu sử dụng

Sử dụng lệnh sau để cài đặt:

npm install @json-render/core @json-render/react

Documentation


Read Original (EN) Quay lại Newsletter