UNPKG

remix-nlux

Version:

Remix IDE NLUX integration. Remix IDE is the leading IDE for building and deploying smart contracts on Ethereum. NLUX is a JavaScript and React library for building conversational AI experiences.

36 lines (30 loc) 1.62 kB
import {DataTransferMode} from '@nlux/core'; import {warnOnce} from '@shared/utils/warn'; import {LangServeAbstractAdapter} from '../adapter/adapter'; import {ChatAdapterOptions} from '../types/adapterOptions'; import {getDataTransferModeFromEndpointType} from './getDataTransferModeFromEndpointType'; import {getEndpointTypeFromUrl} from './getEndpointTypeFromUrl'; export const getDataTransferModeToUse = <AiMsg>(adapterOptions: ChatAdapterOptions<AiMsg>): DataTransferMode => { const runnableEndpointAction = getEndpointTypeFromUrl( adapterOptions.url, ); const dataTransferModeFromOptions = adapterOptions.dataTransferMode; const dataTransferModeFromAction = runnableEndpointAction ? getDataTransferModeFromEndpointType(runnableEndpointAction) : undefined; const dataTransferMode = dataTransferModeFromAction ?? ( adapterOptions.dataTransferMode ?? LangServeAbstractAdapter.defaultDataTransferMode ); if ( dataTransferModeFromOptions && dataTransferModeFromAction && dataTransferModeFromOptions !== dataTransferModeFromAction ) { warnOnce(`The data transfer mode provided to LangServe adapter does not match the LangServe runnable ` + `URL action. When you provide a runnable URL that ends with '/${runnableEndpointAction}', ` + `the data transfer mode is automatically set to '${dataTransferModeFromAction}' and ` + `the 'dataTransferMode' option should not be provided or should be set ` + `to '${dataTransferModeFromAction}'`); } return dataTransferMode; };