3a6ec860创建于 1月28日历史提交
<template>
  <GenuiChat :url="url" :customComponents="customComponents" :messages="messages" />
</template>

<script setup lang="ts">
import { GenuiChat } from '@opentiny/genui-sdk-vue';
import UserProfile from './components/user-profile.vue';

const url = 'https://your-chat-backend/api';

const customComponents = [
  {
    component: 'UserProfile',
    name: '用户资料',
    description: '显示用户基本信息和头像',
    schema: {
      properties: [
        {
          property: 'name',
          type: 'string',
          description: '用户名称',
          required: true,
        },
        {
          property: 'email',
          type: 'string',
          description: '用户邮箱',
        },
        {
          property: 'avatar',
          type: 'string',
          description: '头像URL',
        },
      ],
    },
    ref: UserProfile,
  },
];

// 默认消息,用于展示自定义组件
const messages = [
  {
    role: 'user',
    content: '展示用户资料',
  },
  {
    role: 'assistant',
    content: '',
    messages: [
      {
        type: 'schema-card',
        content: JSON.stringify({
          componentName: 'Page',
          children: [
            {
              componentName: 'UserProfile',
              props: {
                name: 'John Doe',
                email: 'john@example.com'
              },
            },
          ],
        }),
      },
    ],
  },
];
</script>