UNPKG

@ahmedrowaihi/flowise-vercel-ai-sdk-provider

Version:
10 lines (9 loc) 1.9 kB
/** * @ahmedrowaihi/flowise-vercel-ai-sdk-provider v2.1.1 * Flowise AI SDK Provider * Ahmed Rowaihi * MIT * git+https://github.com/ahmedrowaihi/flowise-ai-sdk-provider.git * https://github.com/ahmedrowaihi/flowise-ai-sdk-provider#readme */ import{DefaultChatTransport as l}from"ai";class m extends l{async sendMessages({abortSignal:p,...e}){const a=this.prepareSendMessagesRequest?await this.prepareSendMessagesRequest({api:this.api,id:e.chatId,messages:e.messages,body:{...this.body,...e.body},headers:{...this.headers,...e.headers},credentials:this.credentials,requestMetadata:e.metadata,trigger:e.trigger,messageId:e.messageId}):void 0,h=a?.api??this.api,c=a?.headers!==void 0?a.headers:{...this.headers,...e.headers},y=a?.credentials??this.credentials,o=e.messages,n=o[o.length-1]?.parts?.filter(g=>g.type==="file")||[];let s,t=c;if(n&&n.length>0){s=new FormData,s.append("id",e.chatId),s.append("messages",JSON.stringify(o)),e.trigger!==void 0&&s.append("trigger",String(e.trigger)),e.messageId!==void 0&&s.append("messageId",String(e.messageId));const g={...this.body,...e.body};for(const[r,i]of Object.entries(g))["id","messages","trigger","messageId","files"].includes(r)||(typeof i=="object"&&i!==null?s.append(r,JSON.stringify(i)):i!==void 0&&s.append(r,String(i)));n.forEach(r=>{s.append("files",r)}),t&&typeof t=="object"&&t["Content-Type"]&&delete t["Content-Type"]}else s=JSON.stringify(a?.body!==void 0?a.body:{...this.body,...e.body,id:e.chatId,messages:e.messages,trigger:e.trigger,messageId:e.messageId}),(!t||typeof t!="object")&&(t={}),t["Content-Type"]="application/json";const d=await(this.fetch||fetch)(h,{method:"POST",body:s,headers:t,signal:p,credentials:y});if(!d.ok)throw new Error(await d.text()??"Failed to fetch the chat response.");if(!d.body)throw new Error("The response body is empty.");return this.processResponseStream(d.body)}}export{m as FormDataChatTransport};