@nlux/langchain-react
Version:
The LangServe adapters for nlux React, the React JS library for building conversational AI interfaces.
2 lines (1 loc) • 1.01 kB
JavaScript
;var e=require("@nlux/langchain"),r=require("@nlux/react"),t=require("react");const a=r=>{const{url:t,dataTransferMode:a,headers:o,config:s,inputPreProcessor:u,outputPreProcessor:n,useInputSchema:c}=r||{};if(a&&"stream"!==a&&"batch"!==a)throw new Error("Data transfer mode not supported");if(!t)throw new Error("Runnable URL is required");let i=e.createChatAdapter().withUrl(t);return a&&(i=i.withDataTransferMode(a)),o&&(i=i.withHeaders(o)),s&&(i=i.withConfig(s)),u&&(i=i.withInputPreProcessor(u)),n&&(i=i.withOutputPreProcessor(n)),void 0!==c&&(i=i.withInputSchema(c)),i};Object.defineProperty(exports,"createChatAdapter",{enumerable:!0,get:function(){return e.createChatAdapter}}),exports.useChatAdapter=e=>{const[o,s]=t.useState(!1),[u,n]=t.useState(a(e).create()),{url:c,dataTransferMode:i,headers:h,config:p,inputPreProcessor:d,outputPreProcessor:f,useInputSchema:P}=e||{};return r.useDeepCompareEffect((()=>{if(!o)return void s(!0);const r=a(e).create();n(r)}),[o,c,i,h||{},p||{},d,f,P]),u};