UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

182 lines (181 loc) 5.96 kB
import { serializeAiExtractResponse } from './aiExtractResponse'; import { deserializeAiExtractResponse } from './aiExtractResponse'; import { serializeAiAgentInfo } from './aiAgentInfo'; import { deserializeAiAgentInfo } from './aiAgentInfo'; import { serializeDateTime } from '../internal/utils'; import { deserializeDateTime } from '../internal/utils'; import { AiExtractResponse } from './aiExtractResponse'; import { AiAgentInfo } from './aiAgentInfo'; import { BoxSdkError } from '../box/errors'; import { DateTime } from '../internal/utils'; import { SerializedData } from '../serialization/json'; import { sdIsEmpty } from '../serialization/json'; import { sdIsBoolean } from '../serialization/json'; import { sdIsNumber } from '../serialization/json'; import { sdIsString } from '../serialization/json'; import { sdIsList } from '../serialization/json'; import { sdIsMap } from '../serialization/json'; export interface AiExtractStructuredResponse { readonly answer: AiExtractResponse; /** * The ISO date formatted timestamp of when the answer to the prompt was created. */ readonly createdAt: DateTime; /** * The reason the response finishes. */ readonly completionReason?: string; /** * The confidence score levels and numeric values for each extracted field as a JSON dictionary. This can be empty if no field could be extracted. */ readonly confidenceScore?: { readonly [key: string]: any; }; /** * The reference for each extracted field as a JSON dictionary. This can be empty if no field could be extracted. */ readonly reference?: { readonly [key: string]: any; }; readonly aiAgentInfo?: AiAgentInfo; readonly rawData?: SerializedData; } export function serializeAiExtractStructuredResponse( val: AiExtractStructuredResponse, ): SerializedData { return { ['answer']: serializeAiExtractResponse(val.answer), ['created_at']: serializeDateTime(val.createdAt), ['completion_reason']: val.completionReason, ['confidence_score']: val.confidenceScore == void 0 ? val.confidenceScore : (Object.fromEntries( Object.entries(val.confidenceScore).map(([k, v]: [string, any]) => [ k, (function (v: any): any { return v; })(v), ]), ) as { readonly [key: string]: any; }), ['reference']: val.reference == void 0 ? val.reference : (Object.fromEntries( Object.entries(val.reference).map(([k, v]: [string, any]) => [ k, (function (v: any): any { return v; })(v), ]), ) as { readonly [key: string]: any; }), ['ai_agent_info']: val.aiAgentInfo == void 0 ? val.aiAgentInfo : serializeAiAgentInfo(val.aiAgentInfo), }; } export function deserializeAiExtractStructuredResponse( val: SerializedData, ): AiExtractStructuredResponse { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "AiExtractStructuredResponse"', }); } if (val.answer == void 0) { throw new BoxSdkError({ message: 'Expecting "answer" of type "AiExtractStructuredResponse" to be defined', }); } const answer: AiExtractResponse = deserializeAiExtractResponse(val.answer); if (val.created_at == void 0) { throw new BoxSdkError({ message: 'Expecting "created_at" of type "AiExtractStructuredResponse" to be defined', }); } if (!sdIsString(val.created_at)) { throw new BoxSdkError({ message: 'Expecting string for "created_at" of type "AiExtractStructuredResponse"', }); } const createdAt: DateTime = deserializeDateTime(val.created_at); if ( !(val.completion_reason == void 0) && !sdIsString(val.completion_reason) ) { throw new BoxSdkError({ message: 'Expecting string for "completion_reason" of type "AiExtractStructuredResponse"', }); } const completionReason: undefined | string = val.completion_reason == void 0 ? void 0 : val.completion_reason; if (!(val.confidence_score == void 0) && !sdIsMap(val.confidence_score)) { throw new BoxSdkError({ message: 'Expecting object for "confidence_score" of type "AiExtractStructuredResponse"', }); } const confidenceScore: | undefined | { readonly [key: string]: any; } = val.confidence_score == void 0 ? void 0 : sdIsMap(val.confidence_score) ? (Object.fromEntries( Object.entries(val.confidence_score).map( ([k, v]: [string, any]) => [ k, (function (v: any): any { return v; })(v), ], ), ) as { readonly [key: string]: any; }) : {}; if (!(val.reference == void 0) && !sdIsMap(val.reference)) { throw new BoxSdkError({ message: 'Expecting object for "reference" of type "AiExtractStructuredResponse"', }); } const reference: | undefined | { readonly [key: string]: any; } = val.reference == void 0 ? void 0 : sdIsMap(val.reference) ? (Object.fromEntries( Object.entries(val.reference).map(([k, v]: [string, any]) => [ k, (function (v: any): any { return v; })(v), ]), ) as { readonly [key: string]: any; }) : {}; const aiAgentInfo: undefined | AiAgentInfo = val.ai_agent_info == void 0 ? void 0 : deserializeAiAgentInfo(val.ai_agent_info); return { answer: answer, createdAt: createdAt, completionReason: completionReason, confidenceScore: confidenceScore, reference: reference, aiAgentInfo: aiAgentInfo, } satisfies AiExtractStructuredResponse; }