azion
Version:
Azion Packages for Edge Computing.
3 lines (2 loc) • 1.85 kB
JavaScript
var l="https://ai.azion.com/copilot/chat/completions",u=async(e,t)=>{let n=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Token ${e}`},body:JSON.stringify(t)});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return n.json()},z=async function*(e,t){let n=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Token ${e}`},body:JSON.stringify(t)});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);let o=n.body?.getReader();if(!o)throw new Error("Response body is not readable");let r=new TextDecoder,a="";for(;;){let{done:m,value:h}=await o.read();if(m)break;a+=r.decode(h,{stream:!0});let A=a.split(`
`);a=A.pop()||"";for(let c of A)if(c.startsWith("data: ")){let p=c.slice(6);if(p==="[DONE]")return;yield JSON.parse(p)}}};var R=process.env.AZION_DEBUG&&process.env.AZION_DEBUG==="true",s=e=>e??process.env.AZION_TOKEN??"",i=e=>e??!!R;var d=async(e,t,n)=>{try{let o=await u(e,{...t,stream:!1});return n?.debug&&console.log("AI Chat Response:",o),{data:o,error:null}}catch(o){return n?.debug&&console.error("Error in AI chat:",o),{data:null,error:o instanceof Error?o:new Error("Unknown error occurred")}}},I=async function*(e,t,n){try{let o=z(e,{...t,stream:!0});for await(let r of o)n?.debug&&console.log("AI Stream Chunk:",r),yield{data:r,error:null}}catch(o){n?.debug&&console.error("Error in AI stream chat:",o),yield{data:null,error:o instanceof Error?o:new Error("Unknown error occurred")}}},O=(e,t)=>d(s(),e,{...t,debug:i(t?.debug)}),w=(e,t)=>I(s(),e,{...t,debug:i(t?.debug)}),f=e=>{let t=s(e?.token),n=i(e?.options?.debug);return{chat:(o,r)=>d(t,o,{...e?.options,...r,debug:n}),streamChat:(o,r)=>I(t,o,{...e?.options,...r,debug:n})}};var k=f;export{O as chat,d as chatMethod,f as createClient,k as default,w as streamChat,I as streamChatMethod};