SuperAPI AI 工具集

syncfusion-angular-inline-ai-assist

前端与建站

查看项目

更新于 10-15 16:19

技能介绍

Syncfusion Angular Inline AI Assist 组件为 Angular 应用提供智能文本处理能力,可在应用内直接进行 AI 驱动的文本建议、内容生成与编辑。

用途

该组件适用于在 Angular 界面中嵌入 AI 文本处理,例如文本摘要、语法与风格改进、内容翻译、代码片段生成、邮件撰写、文档编辑等场景。它通过自然语言处理增强用户生产力,并可与外部 AI 服务配合使用。

主要能力

  • 响应模式:支持 Popup(浮动)与 Inline(就地)两种响应显示模式,并可配置尺寸。
  • 命令系统:提供带图标、分组和自定义命令项的预定义 AI 操作。
  • 响应操作:可自定义响应工具栏项,用于接受/拒绝等工作流。
  • 模板系统:支持编辑器模板与响应模板,实现自定义布局。
  • 事件与交互:提供生命周期事件(created、open、close)及用户交互事件。
  • 语音转文字:内置麦克风按钮,基于 Web Speech API,可配置语言、临时结果、按钮/工具提示设置,并支持 onStart、onStop、transcriptChanged、onError 四个生命周期事件。
  • 工具栏配置:内联工具栏支持自定义项、定位与对齐。
  • 方法:可通过编程方式添加提示、更新响应、打开/关闭弹窗并控制行为。
  • 全球化:支持多语言、RTL(从右到左)文本方向及基于区域设置的格式化。
  • 可定制 UI:支持 CSS 类、z-index 控制、弹窗尺寸与主题集成。

使用方式

需安装并配置 Angular 环境与相关包,导入 CSS 与主题,并在组件中使用 relateTo 与 target 等属性进行初始配置。核心配置包括提示文本与占位符、提示/响应集合管理、响应显示模式、弹窗尺寸与 z-index、CSS 定制等。

快速开始示例(摘自资料):

import { Component, ViewChild } from '@angular/core';
import { InlineAIAssistModule, InlineAIAssistComponent, InlinePromptRequestEventArgs, ResponseSettingsModel, ResponseItemSelectEventArgs } from '@syncfusion/ej2-angular-interactive-chat';

@Component({
    imports: [InlineAIAssistModule],
    standalone: true,
    selector: 'app-root',
    template: `
        <div id="container" style="height: 350px; width: 650px;">
            <button id="summarizeBtn" class="e-btn e-primary" (click)="onClick()">Content Summarize</button>
            <div id="editableText" contenteditable="true">
                <p>Inline AI Assist component provides intelligent text processing capabilities that enhance user productivity.</p>
            </div>
            <ejs-inlineaiassist id="inlineAssist" #inlineAssistComponent
                [relateTo]="'#summarizeBtn'"
                [responseSettings]="responseSetting"
                popupWidth="500px"
                (promptRequest)="onPromptRequest($event)">
            </ejs-inlineaiassist>
        </div>
    `,
    styles: [`#editableText { width: 100%; min-height: 120px; padding: 12px; border: 1px solid; }`]
})
export class AppComponent {
    @ViewChild('inlineAssistComponent')
    public inlineAssistComponent!: InlineAIAssistComponent;

    public itemSelect = (args: ResponseItemSelectEventArgs) => {
        if (args.command.label === 'Accept') {
            const editable = document.getElementById('editableText') as HTMLElement;
            if (editable && this.inlineAssistComponent.prompts.length > 0) {
                const lastResponse = this.inlineAssistComponent.prompts[this.inlineAssistComponent.prompts.length - 1].response;
                editable.innerHTML = '<p>' + lastResponse + '</p>';
            }
            this.inlineAssistComponent.hidePopup();
        }
    }

    public responseSetting: ResponseSettingsModel = {
        itemSelect: this.itemSelect
    }

    onClick(): void {
        this.inlineAssistComponent.showPopup();
    }

    public onPromptRequest = (args: InlinePromptRequestEventArgs) => {
        setTimeout(() => {
            let response = 'Connect this component to OpenAI or Azure AI services for real-time prompt processing.';
            this.inlineAssistComponent.addResponse(response);
        }, 1000);
    };
}

语音转文字:通过 speechToTextSettings.enable 启用麦克风按钮;用 lang 配置识别语言(BCP-47 代码如 en-US、es-ES、fr-FR);通过 buttonSettings(content、stopContent、iconCss、stopIconCss)自定义按钮;allowInterimResults 显示实时转写;tooltipSettings 自定义工具提示;并使用 onStart、onStop、transcriptChanged、onError 响应识别生命周期。资料提示需注意 Web Speech API 的浏览器兼容性,并处理权限拒绝、无麦克风及不支持浏览器等错误。

适用场景

文本摘要、语法与风格改进、内容翻译、代码生成、邮件撰写、文档增强、无障碍支持、多语言支持、语音驱动提示以及结合 allowInterimResults 与 transcriptChanged 的实时转写界面。

限制

资料中的默认 promptRequest 示例返回占位文本,实际 AI 处理需自行连接 OpenAI 或 Azure AI 等服务;语音转文字依赖 Web Speech API,存在浏览器兼容性限制。其余收费、价格、平台等信息暂未提供。