@thoughtspot/visual-embed-sdk
Version:
ThoughtSpot Embed SDK
55 lines • 1.83 kB
JavaScript
import { getEmbedConfig } from '../../../embed/embedConfig';
import { AnswerService } from '../answerService/answerService';
import { graphqlQuery } from '../graphql-request';
import * as queries from './nls-answer-queries';
/**
* Get answer from natural language query
* @param query string
* @param worksheetId string
* @returns AnswerService and the suggestion response.
* @version SDK: 1.33.1 | ThoughtSpot: 10.3.0.cl
* @example
* ```js
* const { answer } = await getAnswerFromQuery('revenue', 'worksheetId');
* ```
*/
export const getAnswerFromQuery = async (query, worksheetId) => {
const embedConfig = getEmbedConfig();
const resp = await graphqlQuery({
query: queries.getAnswerSessionFromQuery,
variables: {
params: {
facetSelections: [],
filterSelections: [
{
facetType: 'WORKSHEETS',
facetValue: [
worksheetId,
],
},
],
query,
worksheetFacetPayload: {
worksheetId,
},
searchOption: 'AI_ANSWER',
},
},
thoughtSpotHost: embedConfig.thoughtSpotHost,
isCompositeQuery: false,
});
const suggestion = resp.sageQuerySuggestions[0];
const answerSession = {
sessionId: suggestion.sessionId,
genNo: suggestion.genNo,
acSession: {
sessionId: suggestion.stateKey.transactionId,
genNo: suggestion.stateKey.generationNumber,
},
};
return {
answer: new AnswerService(answerSession, null, embedConfig.thoughtSpotHost),
suggestion,
};
};
//# sourceMappingURL=nls-answer-service.js.map