import BaseService from 'App/services/BaseService'; export default class AiService extends BaseService { /** * @returns stream of text symbols * */ async getSummary( sessionId: string, start?: number, end?: number, ): Promise { const r = await this.client.post( `/sessions/${sessionId}/intelligent/summary`, { frameStartTimestamp: start, frameEndTimestamp: end, }, ); return r.json(); } async getDetailedSummary( sessionId: string, networkEvents: any[], feat: 'errors' | 'issues' | 'journey', start: number, end: number, ): Promise { const r = await this.client.post( `/sessions/${sessionId}/intelligent/detailed-summary`, { event: feat, frameStartTimestamp: start, frameEndTimestamp: end, devtoolsEvents: networkEvents, }, ); return r.json(); } async getSearchFilters(query: string): Promise> { const r = await this.client.post('/intelligent/search', { question: query, }); const { data } = await r.json(); return data; } async getCardFilters( query: string, chartType?: string, ): Promise> { const r = await this.client.post('/intelligent/search-plus', { question: query, chartType, }); const { data } = await r.json(); return data; } async omniSearch( query: string, filters: Record, ): Promise> { const r = await this.client.post('/intelligent/ask-or/charts', { ...filters, question: query, metricType: 'omnisearch', }); const { data } = await r.json(); return data; } async getCardData( query: string, chartData: Record, ): Promise> { const r = await this.client.post('/intelligent/ask-or/charts', { ...chartData, question: query, }); const { data } = await r.json(); return data; } }