Подписка на StartSmartSearch

StartSmartSearch — это команда поиска от сценария. Команда содержит текстовое поле query, по которому выполняется поиск. После завершения поиска возвращается serverAction с результатами, которые выведет ассистент.

Пример подписки на команду StartSmartSearch:

import React, { FC } from 'react';
import { Chat } from '@sberdevices/assistant-web-sdk';
import { createAssistantClient, AppEvent, AssistantStartSmartSearch } from '@sberdevices/assistant-client';

import { doSomething } from '../utils';

const assistant = createAssistantClient({...});

assistant.on('app', (event: AppEvent) => {
    if (event.command?.type === 'start_smart_search') {
        doSomething((event.command as AssistantStartSmartSearch).start_smart_search.query);
    }
});

export const ChatWithAssistant: FC = () => {
    return <Chat {...props} assistant={assistant} />;
};

Пример отправки ответа с результатами поиска:

import React, { FC } from 'react';
import { Chat } from '@sberdevices/assistant-web-sdk';
import { createAssistantClient } from '@sberdevices/assistant-client';

interface StartSmartSearchFeature {
    title: string; // Название карточки
    subtitle?: string; // Не поддерживается в текущей реализации
    icon: string; // Идентификатор иконки из DS (например, 'ic_36_sber_alt1')
    link: string; // Ссылка для перехода (например, '/cards/unlocking/{{cardId}}')
    category: string; // Идентификатор категории продукта
}

interface StartSmartSearchProducts {
    category: string; // Совпадает со значением `category` StartSmartSearchFeature
    id: string; // Идентификатор продукта
    description: string; // Описание продукта
    lastDiget: string; // Последние 4 цифры карты
}

interface StartSmartSearchResults {
    start_smart_search: {
        feature: StartSmartSearchFeature[];
        products: StartSmartSearchProducts[];
    }
}

const assistant = createAssistantClient({...});

const sendSearchResults = (results: StartSmartSearchResults['start_smart_search']) => {
    assistant.sendServerAction({
        start_smart_search: results,
    });
}

export const ChatWithAssistant: FC = () => {
    return <Chat {...props} assistant={assistant} />;
};

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней