Пређи на садржај
BeeuniBeeuni
Српски
Esc
↑↓навигација↵отвори⌘Jпреглед
На овој страници

Генеративни интерфејс

Прикажите структуриране одговоре агента у свом производу.

Када је Generative UI укључен за пројекат, одговори могу да садрже openui блокове уз Markdown: картице, поређења, контролне листе, графиконе, мапе и картице са садржајем. Текст и код остају Markdown.

Инсталација

npm install @beeuni/sdk zod @openuidev/lang-core@0.3.1
# React:
npm install react

Инсталирајте опционе зависности пре увоза парсера или React приказивача. Главни улаз SDK-а и React куке их не учитавају.

Улазне тачке

Import API
@beeuni/sdk/genui/fence Откривање блокова без опционих зависности
@beeuni/sdk/genui Парсер, каталог и претварање у Markdown
@beeuni/sdk/genui/react React приказивач без задатог стила и подразумеване HTML компоненте

Приказ блока

Откријте блок у Markdown приказивачу помоћу genuiVersionFromClassName(className). null означава обичан блок кода. Приказивач учитајте тек када се појави генеративни блок.

import type { ReactNode } from 'react';
import { GenuiBlock, defaultGenuiComponents } from '@beeuni/sdk/genui/react';
import { genuiVersionFromClassName } from '@beeuni/sdk/genui/fence';

type Props = {
  code: string;
  className?: string;
  streaming: boolean;
  renderMarkdown: (markdown: string) => ReactNode;
};

function StructuredReply({ code, className, streaming, renderMarkdown }: Props) {
  const version = genuiVersionFromClassName(className);
  if (version === null) return <pre><code>{code}</code></pre>;
  return (
    <GenuiBlock
      code={code}
      version={version}
      streaming={streaming}
      components={defaultGenuiComponents}
      renderMarkdown={renderMarkdown}
    />
  );
}

Проследите своје компоненте кроз components или почните са defaultGenuiComponents. Држите renderMarkdown стабилним. Поставите streaming на false чим се овај блок затвори, чак и ако одговор још траје.

renderPending може да резервише простор за велике недовршене елементе. enabled={false} приказује Markdown. onSettled једном по блоку пријављује исход и трајање, без садржаја.

Текст и компатибилност

Користите genuiToMarkdown(text) за текстуалне интерфејсе. Графикони постају табеле, мапе листе места, а картице и склопиви панели се отварају. Током стримовања проследите { streaming: true } да не бисте прерано приказали обавештење о прекиду.

import { genuiToMarkdown } from '@beeuni/sdk/genui';

const markdown = genuiToMarkdown(reply, { streaming: true });

Неисправни или неподржани блокови приказују заменски садржај без извршавања. Ажурирајте SDK за нове типове. Означене ставке листе остају у компоненти; Beeuni их не чува и не шаље.

Безбедност

Блокови садрже податке, а не извршни код. Линкови и слике захтевају апсолутне http или https URL-ове. Генерисани интерфејс не покреће алате и не мења стање апликације.

Да ли вам је ова страница помогла?