미래의 플러그인 시스템은 라이프사이클 훅, 사용자 정의 렌더러 및 작업 핸들러를 통해 타사 확장을 가능하게 합니다. 감정 분석, CRM 통합, 사용자 정의 조정 등을 구축할 수 있습니다. 모든 것이 핵심 코드를 수정하지 않고 이루어집니다. 보안과 안정성을 위해 샌드박스화됩니다.
모든 비즈니스는 일반 솔루션이 완전히 해결할 수 없는 고유한 요구 사항을 가지고 있습니다. 계획된 플러그인 시스템은 개발자가 위젯 기능을 사용자 정의 기능으로 확장할 수 있도록 하여 코드를 포크하거나 업그레이드 경로를 잃지 않도록 합니다.
표준 위젯은 모든 비즈니스 요구 사항을 예측할 수 없습니다. 필요할 수 있습니다:
플러그인은 위젯 초기화 중에 등록되며 주요 라이프사이클 순간에 콜백을 받습니다:
onBeforeMessageSend — 사용자 메시지를 백엔드로 보내기 전에 전처리onAfterMessageReceive — 렌더링 전에 AI 응답을 후처리onConversationStart — 대화가 시작될 때 플러그인 상태 초기화onConversationEnd — 리소스 정리, 분석 기록onWidgetOpen / onWidgetClose — 참여 추적, 부작용 트리거onError — 사용자 정의 오류 처리 또는 보고전처리기는 사용자 메시지를 전송하기 전에 수정합니다:
- 맞춤법 검사 및 자동 수정
- 비속어 필터 또는 콘텐츠 조정
- 데이터 추출(이메일, 전화번호, 주문 ID 감지)
- 감정 감지
후처리기는 렌더링 전에 AI 응답을 수정합니다:
- 마크다운 향상(테이블을 대화형 구성 요소로 변환)
- 링크 강화(미리보기 URL, 메타데이터 펼치기)
- 준수 필터링(PII, 민감한 재무 데이터 삭제)
플러그인은 위젯 보안이나 안정성을 손상시킬 수 없습니다:
WidgetSDK.registerPlugin({
name: 'sentiment-analyzer',
version: '1.0.0',
hooks: {
onBeforeMessageSend: async (message, context) => {
const sentiment = await analyzeSentiment(message.text);
return { ...message, metadata: { sentiment } };
},
onAfterMessageReceive: (message, context) => {
if (message.metadata?.sentiment < -0.5) {
context.escalateToHuman(message);
}
return message;
}
}
});