promptlayer 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var X=Object.defineProperty,oe=Object.defineProperties;var ae=Object.getOwnPropertyDescriptors;var B=Object.getOwnPropertySymbols;var ne=Object.prototype.hasOwnProperty,se=Object.prototype.propertyIsEnumerable;var D=(e,t)=>{if(t=Symbol[e])return t;throw Error("Symbol."+e+" is not defined")};var H=(e,t,r)=>t in e?X(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,h=(e,t)=>{for(var r in t||(t={}))ne.call(t,r)&&H(e,r,t[r]);if(B)for(var r of B(t))se.call(t,r)&&H(e,r,t[r]);return e},f=(e,t)=>oe(e,ae(t));var z=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,r)=>(typeof require!="undefined"?require:t)[r]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var P=(e,t)=>{for(var r in t)X(e,r,{get:t[r],enumerable:!0})};var l=(e,t,r)=>new Promise((o,a)=>{var i=s=>{try{n(r.next(s))}catch(p){a(p)}},c=s=>{try{n(r.throw(s))}catch(p){a(p)}},n=s=>s.done?o(s.value):Promise.resolve(s.value).then(i,c);n((r=r.apply(e,t)).next())}),w=function(e,t){this[0]=e,this[1]=t},F=(e,t,r)=>{var o=(c,n,s,p)=>{try{var g=r[c](n),T=(n=g.value)instanceof w,_=g.done;Promise.resolve(T?n[0]:n).then(u=>T?o(c==="return"?c:"next",n[1]?{done:u.done,value:u.value}:u,s,p):s({value:u,done:_})).catch(u=>o("throw",u,s,p))}catch(u){p(u)}},a=c=>i[c]=n=>new Promise((s,p)=>o(c,n,s,p)),i={};return r=r.apply(e,t),i[Symbol.asyncIterator]=()=>i,a("next"),a("throw"),a("return"),i};var Q=(e,t,r)=>(t=e[D("asyncIterator")])?t.call(e):(e=e[D("iterator")](),t={},r=(o,a)=>(a=e[o])&&(t[o]=i=>new Promise((c,n,s)=>(i=a.call(e,i),s=i.done,Promise.resolve(i.value).then(p=>c({value:p,done:s}),n)))),r("next"),r("return"),t);var E={};P(E,{create:()=>ce});var q={};P(q,{getApiKey:()=>m,getPromptTemplate:()=>x,promptLayerAllPromptTemplates:()=>A,promptLayerApiRequest:()=>R,promptLayerCreateGroup:()=>j,promptLayerGetPrompt:()=>S,promptLayerPublishPrompt:()=>G,promptLayerTrackGroup:()=>W,promptLayerTrackMetadata:()=>$,promptLayerTrackPrompt:()=>O,promptLayerTrackScore:()=>I,promptlayerApiHandler:()=>N});var y="https://api.promptlayer.com",m=()=>{if(b.api_key===void 0)throw new Error("Please set your PROMPTLAYER_API_KEY environment variable or set API KEY in code using 'promptlayer.api_key = <your_api_key>' ");return b.api_key},N=e=>l(void 0,null,function*(){return e.request_response[Symbol.asyncIterator]!==void 0?ie(e.request_response,e):yield R(e)}),R=e=>l(void 0,null,function*(){try{let t=yield fetch(`${y}/track-request`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),r=yield t.json();if(t.status!==200&&d(r,"WARNING: While logging your request, PromptLayer experienced the following error:"),r&&e.return_pl_id)return[e.request_response,r.request_id]}catch(t){console.warn(`WARNING: While logging your request PromptLayer had the following error: ${t}`)}return e.request_response}),A=e=>l(void 0,null,function*(){let t=new URL(`${y}/rest/prompts`);Object.entries(e||{}).forEach(([r,o])=>t.searchParams.append(r,o));try{let r=yield fetch(t,{method:"GET",headers:{"Content-Type":"application/json","X-API-KEY":m()}}),o=yield r.json();return r.status!==200&&console.warn(`WARNING: While fetching all prompt templates, PromptLayer had the following error: ${JSON.stringify(o)}`),o}catch(r){console.warn(`WARNING: While fetching all prompt templates, PromptLayer had the following error: ${r}`)}}),S=e=>l(void 0,null,function*(){var i,c,n;let t={prompt_name:e.prompt_name,version:(c=(i=e.version)==null?void 0:i.toString())!=null?c:"",label:(n=e.label)!=null?n:""},r=new URL(`${y}/library-get-prompt-template`);r.search=new URLSearchParams(t).toString();let o;try{o=yield fetch(r.toString(),{method:"GET",headers:{"X-API-KEY":m()}})}catch(s){throw new Error(`PromptLayer had the following error while getting your prompt: ${s}`)}let a=yield o.json();return o.status!==200&&V(a,"PromptLayer had the following error while retrieving your prompt template"),a}),G=e=>l(void 0,null,function*(){let t;try{t=yield fetch(`${y}/library-publish-prompt-template`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(h({},e),{api_key:m()}))})}catch(o){throw new Error(`PromptLayer had the following error while publishing your prompt template: ${o}`)}let r=yield t.json();return t.status!==200&&V(r,"PromptLayer had the following error while publishing your prompt"),!0}),$=e=>l(void 0,null,function*(){try{let t=yield fetch(`${y}/library-track-metadata`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(h({},e),{api_key:m()}))}),r=yield t.json();if(t.status!==200)return d(r,"WARNING: While logging metadata to your request, PromptLayer experienced the following error"),!1}catch(t){return console.warn(`WARNING: While logging metadata to your request, PromptLayer experienced the following error: ${t}`),!1}return!0}),I=e=>l(void 0,null,function*(){try{let t=yield fetch(`${y}/library-track-score`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(h({},e),{api_key:m()}))}),r=yield t.json();if(t.status!==200)return d(r,"WARNING: While scoring your request, PromptLayer experienced the following error"),!1}catch(t){return console.warn(`WARNING: While scoring your request, PromptLayer experienced the following error: ${t}`),!1}return!0}),O=e=>l(void 0,null,function*(){try{let t=yield fetch(`${y}/library-track-prompt`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(h({},e),{api_key:m()}))}),r=yield t.json();if(t.status!==200)return d(r,"WARNING: While associating your request with a prompt template, PromptLayer experienced the following error"),!1}catch(t){return console.warn(`WARNING: While associating your request with a prompt template, PromptLayer experienced the following error: ${t}`),!1}return!0}),W=e=>l(void 0,null,function*(){try{let t=yield fetch(`${y}/track-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(h({},e),{api_key:m()}))}),r=yield t.json();if(t.status!==200)return d(r,"WARNING: While associating your request with a group, PromptLayer experienced the following error"),!1}catch(t){return console.warn(`WARNING: While associating your request with a group, PromptLayer experienced the following error: ${t}`),!1}return!0}),j=()=>l(void 0,null,function*(){try{let e=yield fetch(`${y}/create-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({api_key:m()})}),t=yield e.json();return e.status!==200?(d(t,"WARNING: While creating a group PromptLayer had the following error"),!1):t.id}catch(e){return console.warn(`WARNING: While creating a group PromptLayer had the following error: ${e}`),!1}}),x=(e,t)=>l(void 0,null,function*(){try{let r=new URL(`${y}/prompt-templates/${e}`),o=yield fetch(r,{method:"POST",headers:{"Content-Type":"application/json","X-API-KEY":m()},body:JSON.stringify(f(h({},t),{api_key:m()}))}),a=yield o.json();return o.status!==200?(d(a,"WARNING: While fetching a prompt template PromptLayer had the following error"),null):a}catch(r){return console.warn(`WARNING: While fetching a prompt template PromptLayer had the following error: ${r}`),null}}),pe=e=>{if("completion"in e[0])return e.reduce((t,r)=>f(h({},r),{completion:`${t.completion}${r.completion}`}),{});if("text"in e[0].choices[0]){let t="";for(let o of e)t=`${t}${o.choices[0].text}`;let r=structuredClone(e.at(-1));return r.choices[0].text=t,r}else if("delta"in e[0].choices[0]){let t={role:"",content:""};for(let o of e)"role"in o.choices[0].delta&&(t.role=o.choices[0].delta.role),"content"in o.choices[0].delta&&(t.content=`${t.content}${o.choices[0].delta.content}`);let r=structuredClone(e.at(-1));return r.choices[0]=t,r}return""};function ie(e,t){return F(this,null,function*(){let r=[];try{for(var i=Q(e),c,n,s;c=!(n=yield new w(i.next())).done;c=!1){let p=n.value;yield p,r.push(p)}}catch(n){s=[n]}finally{try{c&&(n=i.return)&&(yield new w(n.call(i)))}finally{if(s)throw s[0]}}let o=pe(r);yield yield new w(R(f(h({},t),{request_response:o,request_end_time:new Date().toISOString()})))})}var d=(e,t)=>{try{console.warn(`${t}: ${e.message}`)}catch(r){console.warn(`${t}: ${e}`)}},V=(e,t)=>{throw"message"in e?new Error(`${t}: ${e.message}`):new Error(`${t}: ${e.message}`)};var ce=()=>l(void 0,null,function*(){return yield j()});var Z=(e,t="",r="openai")=>{let o={construct:(a,i)=>{let c=Reflect.construct(a,i);return Object.defineProperties(c,{function_name:{value:t,writable:!0},provider:{value:r}}),new Proxy(c,o)},get:(a,i,c)=>{let n=a[i],s=`${Reflect.get(a,"function_name")}.${i.toString()}`;return typeof n=="object"?(Object.defineProperties(n,{function_name:{value:s,writable:!0},provider:{value:r}}),new Proxy(n,o)):typeof n=="function"?(...p)=>{var M,Y,K,U;let g=new Date().toISOString(),T=Reflect.get(a,"provider"),_=(M=p[0])==null?void 0:M.return_pl_id,u=(Y=p[0])==null?void 0:Y.pl_tags;(K=p[0])==null||delete K.return_pl_id,(U=p[0])==null||delete U.pl_tags;let k=Reflect.apply(n,a,p);return k instanceof Promise?new Promise((ee,te)=>{k.then(L=>l(void 0,null,function*(){let re=yield N({api_key:m(),provider_type:T,function_name:s,request_start_time:g,request_end_time:new Date().toISOString(),request_response:L,kwargs:p[0],return_pl_id:_,tags:u});ee(re)})).catch(L=>{te(L)})}):k}:Reflect.get(a,i,c)}};return new Proxy(e,o)};var v={};P(v,{all:()=>le,get:()=>me,publish:()=>ue});var le=e=>A(e),me=e=>l(void 0,null,function*(){let t=yield S(e),r=t.prompt_template,o=t.metadata;return{prompt_template:r,metadata:o}}),ue=e=>{let{prompt_template:t,commit_message:r}=e;if(r&&r.length>72)throw new Error("Commit message must be less than 72 characters.");if(!(t instanceof Object))throw new Error("Please provide a JSON prompt template.");return G(e)};var C={};P(C,{get:()=>ye});var ye=(e,t)=>x(e,t);var J={};P(J,{group:()=>Pe,metadata:()=>he,prompt:()=>de,score:()=>fe});var he=e=>{if(!(e.metadata instanceof Object))throw new Error("Please provide a dictionary of metadata.");for(let[t,r]of Object.entries(e.metadata))if(typeof t!="string"||typeof r!="string")throw new Error("Please provide a dictionary of metadata with key value pair of strings.");return $(e)},fe=e=>{if(typeof e.score!="number")throw new Error("Score must be a number");if(e.score<0||e.score>100)throw new Error("Score must be a number between 0 and 100.");return I(e)},de=e=>{if(!(e.prompt_input_variables instanceof Object))throw new Error("Prompt template input variable dictionary not provided.");return O(e)},Pe=e=>W(e);var b=new Proxy({OpenAI:{},Anthropic:{},api_key:process.env.PROMPTLAYER_API_KEY,utils:q,track:J,groups:E,prompts:v,templates:C},{get:(e,t,r)=>{if(["OpenAI","Anthropic"].includes(t.toString())){let a=z(t==="OpenAI"?"openai":"@anthropic-ai/sdk").default;return Z(a,t.toString().toLowerCase(),t.toString().toLowerCase())}return Reflect.get(e,t,r)}});export{b as promptlayer};
1
+ var z=Object.defineProperty,ae=Object.defineProperties;var ne=Object.getOwnPropertyDescriptors;var X=Object.getOwnPropertySymbols;var se=Object.prototype.hasOwnProperty,pe=Object.prototype.propertyIsEnumerable;var D=(e,t)=>{if(t=Symbol[e])return t;throw Error("Symbol."+e+" is not defined")};var H=(e,t,r)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,y=(e,t)=>{for(var r in t||(t={}))se.call(t,r)&&H(e,r,t[r]);if(X)for(var r of X(t))pe.call(t,r)&&H(e,r,t[r]);return e},f=(e,t)=>ae(e,ne(t));var F=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,r)=>(typeof require!="undefined"?require:t)[r]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var d=(e,t)=>{for(var r in t)z(e,r,{get:t[r],enumerable:!0})};var c=(e,t,r)=>new Promise((o,a)=>{var i=s=>{try{n(r.next(s))}catch(p){a(p)}},l=s=>{try{n(r.throw(s))}catch(p){a(p)}},n=s=>s.done?o(s.value):Promise.resolve(s.value).then(i,l);n((r=r.apply(e,t)).next())}),g=function(e,t){this[0]=e,this[1]=t},Q=(e,t,r)=>{var o=(l,n,s,p)=>{try{var w=r[l](n),T=(n=w.value)instanceof g,b=w.done;Promise.resolve(T?n[0]:n).then(h=>T?o(l==="return"?l:"next",n[1]?{done:h.done,value:h.value}:h,s,p):s({value:h,done:b})).catch(h=>o("throw",h,s,p))}catch(h){p(h)}},a=l=>i[l]=n=>new Promise((s,p)=>o(l,n,s,p)),i={};return r=r.apply(e,t),i[Symbol.asyncIterator]=()=>i,a("next"),a("throw"),a("return"),i};var V=(e,t,r)=>(t=e[D("asyncIterator")])?t.call(e):(e=e[D("iterator")](),t={},r=(o,a)=>(a=e[o])&&(t[o]=i=>new Promise((l,n,s)=>(i=a.call(e,i),s=i.done,Promise.resolve(i.value).then(p=>l({value:p,done:s}),n)))),r("next"),r("return"),t);var v={};d(v,{create:()=>le});var q={};d(q,{getApiKey:()=>m,getPromptTemplate:()=>x,promptLayerAllPromptTemplates:()=>A,promptLayerApiRequest:()=>R,promptLayerCreateGroup:()=>j,promptLayerGetPrompt:()=>S,promptLayerPublishPrompt:()=>G,promptLayerTrackGroup:()=>W,promptLayerTrackMetadata:()=>I,promptLayerTrackPrompt:()=>O,promptLayerTrackScore:()=>$,promptlayerApiHandler:()=>N,publishPromptTemplate:()=>E});var u="https://api.promptlayer.com",m=()=>{if(k.api_key===void 0)throw new Error("Please set your PROMPTLAYER_API_KEY environment variable or set API KEY in code using 'promptlayer.api_key = <your_api_key>' ");return k.api_key},N=e=>c(void 0,null,function*(){return e.request_response[Symbol.asyncIterator]!==void 0?ce(e.request_response,e):yield R(e)}),R=e=>c(void 0,null,function*(){try{let t=yield fetch(`${u}/track-request`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),r=yield t.json();if(t.status!==200&&P(r,"WARNING: While logging your request, PromptLayer experienced the following error:"),r&&e.return_pl_id)return[e.request_response,r.request_id]}catch(t){console.warn(`WARNING: While logging your request PromptLayer had the following error: ${t}`)}return e.request_response}),A=e=>c(void 0,null,function*(){let t=new URL(`${u}/rest/prompts`);Object.entries(e||{}).forEach(([r,o])=>t.searchParams.append(r,o));try{let r=yield fetch(t,{method:"GET",headers:{"Content-Type":"application/json","X-API-KEY":m()}}),o=yield r.json();return r.status!==200&&console.warn(`WARNING: While fetching all prompt templates, PromptLayer had the following error: ${JSON.stringify(o)}`),o}catch(r){console.warn(`WARNING: While fetching all prompt templates, PromptLayer had the following error: ${r}`)}}),S=e=>c(void 0,null,function*(){var i,l,n;let t={prompt_name:e.prompt_name,version:(l=(i=e.version)==null?void 0:i.toString())!=null?l:"",label:(n=e.label)!=null?n:""},r=new URL(`${u}/library-get-prompt-template`);r.search=new URLSearchParams(t).toString();let o;try{o=yield fetch(r.toString(),{method:"GET",headers:{"X-API-KEY":m()}})}catch(s){throw new Error(`PromptLayer had the following error while getting your prompt: ${s}`)}let a=yield o.json();return o.status!==200&&Z(a,"PromptLayer had the following error while retrieving your prompt template"),a}),G=e=>c(void 0,null,function*(){let t;try{t=yield fetch(`${u}/library-publish-prompt-template`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},e),{api_key:m()}))})}catch(o){throw new Error(`PromptLayer had the following error while publishing your prompt template: ${o}`)}let r=yield t.json();return t.status!==200&&Z(r,"PromptLayer had the following error while publishing your prompt"),!0}),I=e=>c(void 0,null,function*(){try{let t=yield fetch(`${u}/library-track-metadata`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},e),{api_key:m()}))}),r=yield t.json();if(t.status!==200)return P(r,"WARNING: While logging metadata to your request, PromptLayer experienced the following error"),!1}catch(t){return console.warn(`WARNING: While logging metadata to your request, PromptLayer experienced the following error: ${t}`),!1}return!0}),$=e=>c(void 0,null,function*(){try{let t=yield fetch(`${u}/library-track-score`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},e),{api_key:m()}))}),r=yield t.json();if(t.status!==200)return P(r,"WARNING: While scoring your request, PromptLayer experienced the following error"),!1}catch(t){return console.warn(`WARNING: While scoring your request, PromptLayer experienced the following error: ${t}`),!1}return!0}),O=e=>c(void 0,null,function*(){try{let t=yield fetch(`${u}/library-track-prompt`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},e),{api_key:m()}))}),r=yield t.json();if(t.status!==200)return P(r,"WARNING: While associating your request with a prompt template, PromptLayer experienced the following error"),!1}catch(t){return console.warn(`WARNING: While associating your request with a prompt template, PromptLayer experienced the following error: ${t}`),!1}return!0}),W=e=>c(void 0,null,function*(){try{let t=yield fetch(`${u}/track-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},e),{api_key:m()}))}),r=yield t.json();if(t.status!==200)return P(r,"WARNING: While associating your request with a group, PromptLayer experienced the following error"),!1}catch(t){return console.warn(`WARNING: While associating your request with a group, PromptLayer experienced the following error: ${t}`),!1}return!0}),j=()=>c(void 0,null,function*(){try{let e=yield fetch(`${u}/create-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({api_key:m()})}),t=yield e.json();return e.status!==200?(P(t,"WARNING: While creating a group PromptLayer had the following error"),!1):t.id}catch(e){return console.warn(`WARNING: While creating a group PromptLayer had the following error: ${e}`),!1}}),x=(e,t)=>c(void 0,null,function*(){try{let r=new URL(`${u}/prompt-templates/${e}`),o=yield fetch(r,{method:"POST",headers:{"Content-Type":"application/json","X-API-KEY":m()},body:JSON.stringify(f(y({},t),{api_key:m()}))}),a=yield o.json();return o.status!==200?(P(a,"WARNING: While fetching a prompt template PromptLayer had the following error"),null):a}catch(r){return console.warn(`WARNING: While fetching a prompt template PromptLayer had the following error: ${r}`),null}}),E=e=>c(void 0,null,function*(){try{let t=yield fetch(`${u}/rest/prompt-templates`,{method:"POST",headers:{"Content-Type":"application/json","X-API-KEY":m()},body:JSON.stringify(e)}),r=yield t.json();return t.status===400&&P(r,"WARNING: While publishing a prompt template PromptLayer had the following error"),r}catch(t){console.warn(`WARNING: While publishing a prompt template PromptLayer had the following error: ${t}`)}}),ie=e=>{if("completion"in e[0])return e.reduce((t,r)=>f(y({},r),{completion:`${t.completion}${r.completion}`}),{});if("text"in e[0].choices[0]){let t="";for(let o of e)t=`${t}${o.choices[0].text}`;let r=structuredClone(e.at(-1));return r.choices[0].text=t,r}else if("delta"in e[0].choices[0]){let t={role:"",content:""};for(let o of e)"role"in o.choices[0].delta&&(t.role=o.choices[0].delta.role),"content"in o.choices[0].delta&&(t.content=`${t.content}${o.choices[0].delta.content}`);let r=structuredClone(e.at(-1));return r.choices[0]=t,r}return""};function ce(e,t){return Q(this,null,function*(){let r=[];try{for(var i=V(e),l,n,s;l=!(n=yield new g(i.next())).done;l=!1){let p=n.value;yield p,r.push(p)}}catch(n){s=[n]}finally{try{l&&(n=i.return)&&(yield new g(n.call(i)))}finally{if(s)throw s[0]}}let o=ie(r);yield yield new g(R(f(y({},t),{request_response:o,request_end_time:new Date().toISOString()})))})}var P=(e,t)=>{try{console.warn(`${t}: ${e.message}`)}catch(r){console.warn(`${t}: ${e}`)}},Z=(e,t)=>{throw"message"in e?new Error(`${t}: ${e.message}`):new Error(`${t}: ${e.message}`)};var le=()=>c(void 0,null,function*(){return yield j()});var ee=(e,t="",r="openai")=>{let o={construct:(a,i)=>{let l=Reflect.construct(a,i);return Object.defineProperties(l,{function_name:{value:t,writable:!0},provider:{value:r}}),new Proxy(l,o)},get:(a,i,l)=>{let n=a[i],s=`${Reflect.get(a,"function_name")}.${i.toString()}`;return typeof n=="object"?(Object.defineProperties(n,{function_name:{value:s,writable:!0},provider:{value:r}}),new Proxy(n,o)):typeof n=="function"?(...p)=>{var K,M,U,B;let w=new Date().toISOString(),T=Reflect.get(a,"provider"),b=(K=p[0])==null?void 0:K.return_pl_id,h=(M=p[0])==null?void 0:M.pl_tags;(U=p[0])==null||delete U.return_pl_id,(B=p[0])==null||delete B.pl_tags;let L=Reflect.apply(n,a,p);return L instanceof Promise?new Promise((te,re)=>{L.then(_=>c(void 0,null,function*(){let oe=yield N({api_key:m(),provider_type:T,function_name:s,request_start_time:w,request_end_time:new Date().toISOString(),request_response:_,kwargs:p[0],return_pl_id:b,tags:h});te(oe)})).catch(_=>{re(_)})}):L}:Reflect.get(a,i,l)}};return new Proxy(e,o)};var C={};d(C,{all:()=>me,get:()=>ue,publish:()=>he});var me=e=>A(e),ue=e=>c(void 0,null,function*(){let t=yield S(e),r=t.prompt_template,o=t.metadata;return{prompt_template:r,metadata:o}}),he=e=>{let{prompt_template:t,commit_message:r}=e;if(r&&r.length>72)throw new Error("Commit message must be less than 72 characters.");if(!(t instanceof Object))throw new Error("Please provide a JSON prompt template.");return G(e)};var J={};d(J,{get:()=>ye,publish:()=>fe});var ye=(e,t)=>x(e,t),fe=e=>E(e);var Y={};d(Y,{group:()=>we,metadata:()=>Pe,prompt:()=>ge,score:()=>de});var Pe=e=>{if(!(e.metadata instanceof Object))throw new Error("Please provide a dictionary of metadata.");for(let[t,r]of Object.entries(e.metadata))if(typeof t!="string"||typeof r!="string")throw new Error("Please provide a dictionary of metadata with key value pair of strings.");return I(e)},de=e=>{if(typeof e.score!="number")throw new Error("Score must be a number");if(e.score<0||e.score>100)throw new Error("Score must be a number between 0 and 100.");return $(e)},ge=e=>{if(!(e.prompt_input_variables instanceof Object))throw new Error("Prompt template input variable dictionary not provided.");return O(e)},we=e=>W(e);var k=new Proxy({OpenAI:{},Anthropic:{},api_key:process.env.PROMPTLAYER_API_KEY,utils:q,track:Y,groups:v,prompts:C,templates:J},{get:(e,t,r)=>{if(["OpenAI","Anthropic"].includes(t.toString())){let a=F(t==="OpenAI"?"openai":"@anthropic-ai/sdk").default;return ee(a,t.toString().toLowerCase(),t.toString().toLowerCase())}return Reflect.get(e,t,r)}});export{k as promptlayer};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/groups.ts","../../src/utils.ts","../../src/promptlayer.ts","../../src/prompts.ts","../../src/templates.ts","../../src/track.ts","../../src/index.ts"],"sourcesContent":["import { promptLayerCreateGroup } from \"@/utils\";\n\nconst create = async (): Promise<number | boolean> =>\n await promptLayerCreateGroup();\n\nexport { create };\n","import { promptlayer } from \"@/index\";\nimport {\n GetPromptTemplate,\n GetPromptTemplateParams,\n Pagination,\n PublishPromptTemplate,\n TrackGroup,\n TrackMetadata,\n TrackPrompt,\n TrackRequest,\n TrackScore,\n} from \"@/types\";\n\nconst URL_API_PROMPTLAYER = \"https://api.promptlayer.com\";\n\nconst getApiKey = () => {\n if (promptlayer.api_key === undefined) {\n throw new Error(\n \"Please set your PROMPTLAYER_API_KEY environment variable or set API KEY in code using 'promptlayer.api_key = <your_api_key>' \"\n );\n } else {\n return promptlayer.api_key;\n }\n};\n\nconst promptlayerApiHandler = async <Item>(\n body: TrackRequest & {\n request_response: AsyncIterable<Item> | any;\n }\n) => {\n const isGenerator = body.request_response[Symbol.asyncIterator] !== undefined;\n if (isGenerator) {\n return proxyGenerator(body.request_response, body);\n }\n return await promptLayerApiRequest(body);\n};\n\nconst promptLayerApiRequest = async (body: TrackRequest) => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/track-request`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(body),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While logging your request, PromptLayer experienced the following error:\"\n );\n }\n if (data && body.return_pl_id) {\n return [body.request_response, data.request_id];\n }\n } catch (e) {\n console.warn(\n `WARNING: While logging your request PromptLayer had the following error: ${e}`\n );\n }\n return body.request_response;\n};\n\nconst promptLayerAllPromptTemplates = async (params?: Pagination) => {\n const url = new URL(`${URL_API_PROMPTLAYER}/rest/prompts`);\n Object.entries(params || {}).forEach(([key, value]) =>\n url.searchParams.append(key, value)\n );\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": getApiKey(),\n },\n });\n const data = await response.json();\n if (response.status !== 200) {\n console.warn(\n `WARNING: While fetching all prompt templates, PromptLayer had the following error: ${JSON.stringify(\n data\n )}`\n );\n }\n return data;\n } catch (e) {\n console.warn(\n `WARNING: While fetching all prompt templates, PromptLayer had the following error: ${e}`\n );\n }\n};\n\n/**\n * Get a prompt from the PromptLayer library\n * @param prompt_name name of the prompt to get\n * @param api_key your api key\n * @param version version of the prompt to get, None for latest\n * @param label The release label of a prompt you want to get. Setting this will supercede version\n */\nconst promptLayerGetPrompt = async (body: GetPromptTemplate) => {\n const params: Record<string, string> = {\n prompt_name: body.prompt_name,\n version: body.version?.toString() ?? \"\",\n label: body.label ?? \"\",\n };\n const url = new URL(`${URL_API_PROMPTLAYER}/library-get-prompt-template`);\n url.search = new URLSearchParams(params).toString();\n let response: Response;\n try {\n response = await fetch(url.toString(), {\n method: \"GET\",\n headers: {\n \"X-API-KEY\": getApiKey(),\n },\n });\n } catch (e) {\n throw new Error(\n `PromptLayer had the following error while getting your prompt: ${e}`\n );\n }\n const data = await response.json();\n if (response.status !== 200) {\n throwOnBadResponse(\n data,\n `PromptLayer had the following error while retrieving your prompt template`\n );\n }\n return data;\n};\n\nconst promptLayerPublishPrompt = async (\n body: PublishPromptTemplate\n): Promise<boolean> => {\n let response: Response;\n try {\n response = await fetch(\n `${URL_API_PROMPTLAYER}/library-publish-prompt-template`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n }\n );\n } catch (e) {\n throw new Error(\n `PromptLayer had the following error while publishing your prompt template: ${e}`\n );\n }\n const data = await response.json();\n if (response.status !== 200) {\n throwOnBadResponse(\n data,\n `PromptLayer had the following error while publishing your prompt`\n );\n }\n return true;\n};\n\nconst promptLayerTrackMetadata = async (\n body: TrackMetadata\n): Promise<boolean> => {\n try {\n const response = await fetch(\n `${URL_API_PROMPTLAYER}/library-track-metadata`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n }\n );\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While logging metadata to your request, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While logging metadata to your request, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerTrackScore = async (body: TrackScore): Promise<boolean> => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/library-track-score`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While scoring your request, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While scoring your request, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerTrackPrompt = async (body: TrackPrompt): Promise<boolean> => {\n try {\n const response = await fetch(\n `${URL_API_PROMPTLAYER}/library-track-prompt`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n }\n );\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While associating your request with a prompt template, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While associating your request with a prompt template, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerTrackGroup = async (body: TrackGroup): Promise<boolean> => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/track-group`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While associating your request with a group, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While associating your request with a group, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerCreateGroup = async (): Promise<number | boolean> => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/create-group`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n api_key: getApiKey(),\n }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While creating a group PromptLayer had the following error\"\n );\n return false;\n }\n return data.id;\n } catch (e) {\n console.warn(\n `WARNING: While creating a group PromptLayer had the following error: ${e}`\n );\n return false;\n }\n};\n\nconst getPromptTemplate = async (\n promptName: string,\n params?: Partial<GetPromptTemplateParams>\n) => {\n try {\n const url = new URL(\n `${URL_API_PROMPTLAYER}/prompt-templates/${promptName}`\n );\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": getApiKey(),\n },\n body: JSON.stringify({ ...params, api_key: getApiKey() }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While fetching a prompt template PromptLayer had the following error\"\n );\n return null;\n }\n return data;\n } catch (e) {\n console.warn(\n `WARNING: While fetching a prompt template PromptLayer had the following error: ${e}`\n );\n return null;\n }\n};\n\nconst cleaned_result = (results: any[]) => {\n if (\"completion\" in results[0])\n return results.reduce(\n (prev, current) => ({\n ...current,\n completion: `${prev.completion}${current.completion}`,\n }),\n {}\n );\n if (\"text\" in results[0].choices[0]) {\n let response = \"\";\n for (const result of results) {\n response = `${response}${result.choices[0].text}`;\n }\n const final_result = structuredClone(results.at(-1));\n final_result.choices[0].text = response;\n return final_result;\n } else if (\"delta\" in results[0].choices[0]) {\n let response = { role: \"\", content: \"\" };\n for (const result of results) {\n if (\"role\" in result.choices[0].delta) {\n response.role = result.choices[0].delta.role;\n }\n if (\"content\" in result.choices[0].delta) {\n response.content = `${response[\"content\"]}${result.choices[0].delta.content}`;\n }\n }\n const final_result = structuredClone(results.at(-1));\n final_result.choices[0] = response;\n return final_result;\n }\n return \"\";\n};\n\nasync function* proxyGenerator<Item>(\n generator: AsyncIterable<Item>,\n body: TrackRequest\n) {\n const results = [];\n for await (const value of generator) {\n yield value;\n results.push(value);\n }\n const request_response = cleaned_result(results);\n const response = await promptLayerApiRequest({\n ...body,\n request_response,\n request_end_time: new Date().toISOString(),\n });\n yield response;\n}\n\nconst warnOnBadResponse = (request_response: any, main_message: string) => {\n try {\n console.warn(`${main_message}: ${request_response.message}`);\n } catch (e) {\n console.warn(`${main_message}: ${request_response}`);\n }\n};\n\nconst throwOnBadResponse = (request_response: any, main_message: string) => {\n if (\"message\" in request_response) {\n throw new Error(`${main_message}: ${request_response.message}`);\n }\n throw new Error(`${main_message}: ${request_response.message}`);\n};\n\nexport {\n getApiKey,\n getPromptTemplate,\n promptLayerAllPromptTemplates,\n promptLayerApiRequest,\n promptLayerCreateGroup,\n promptLayerGetPrompt,\n promptLayerPublishPrompt,\n promptLayerTrackGroup,\n promptLayerTrackMetadata,\n promptLayerTrackPrompt,\n promptLayerTrackScore,\n promptlayerApiHandler,\n};\n","import { getApiKey, promptlayerApiHandler } from \"@/utils\";\n\nexport const promptLayerBase = (\n llm: object,\n function_name = \"\",\n provider = \"openai\"\n) => {\n const handler: ProxyHandler<any> = {\n construct: (target, args) => {\n const newTarget = Reflect.construct(target, args);\n Object.defineProperties(newTarget, {\n function_name: {\n value: function_name,\n writable: true,\n },\n provider: {\n value: provider,\n },\n });\n return new Proxy(newTarget, handler);\n },\n get: (target, prop, receiver) => {\n const value = target[prop];\n const function_name = `${Reflect.get(\n target,\n \"function_name\"\n )}.${prop.toString()}`;\n if (typeof value === \"object\") {\n Object.defineProperties(value, {\n function_name: {\n value: function_name,\n writable: true,\n },\n provider: {\n value: provider,\n },\n });\n return new Proxy(value, handler);\n }\n if (typeof value === \"function\") {\n return (...args: any[]) => {\n const request_start_time = new Date().toISOString();\n const provider_type = Reflect.get(target, \"provider\");\n const return_pl_id = args[0]?.return_pl_id;\n const pl_tags = args[0]?.pl_tags;\n delete args[0]?.return_pl_id;\n delete args[0]?.pl_tags;\n const response = Reflect.apply(value, target, args);\n if (response instanceof Promise) {\n return new Promise((resolve, reject) => {\n response\n .then(async (request_response) => {\n const response = await promptlayerApiHandler({\n api_key: getApiKey(),\n provider_type,\n function_name,\n request_start_time,\n request_end_time: new Date().toISOString(),\n request_response,\n kwargs: args[0],\n return_pl_id,\n tags: pl_tags,\n });\n resolve(response);\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n return response;\n };\n }\n return Reflect.get(target, prop, receiver);\n },\n };\n return new Proxy(llm, handler);\n};\n","import {\n GetPromptTemplate,\n Pagination,\n PromptTemplate,\n PublishPromptTemplate,\n} from \"@/types\";\nimport {\n promptLayerAllPromptTemplates,\n promptLayerGetPrompt,\n promptLayerPublishPrompt,\n} from \"@/utils\";\n\n/**\n * @description List all prompts on PromptLayer.\n * @param params\n */\nexport const all = (params?: Pagination) =>\n promptLayerAllPromptTemplates(params);\n/**\n * Get a prompt template from PromptLayer.\n */\nconst getPrompt = async (\n params: GetPromptTemplate\n): Promise<PromptTemplate> => {\n const prompt = await promptLayerGetPrompt(params);\n const prompt_template = prompt[\"prompt_template\"];\n const metadata = prompt[\"metadata\"];\n return {\n prompt_template,\n metadata,\n };\n};\n\nconst publishPrompt = (body: PublishPromptTemplate): Promise<boolean> => {\n const { prompt_template, commit_message } = body;\n if (commit_message && commit_message.length > 72) {\n throw new Error(\"Commit message must be less than 72 characters.\");\n }\n if (!(prompt_template instanceof Object)) {\n throw new Error(\"Please provide a JSON prompt template.\");\n }\n return promptLayerPublishPrompt(body);\n};\n\nexport { getPrompt as get, publishPrompt as publish };\n","import { GetPromptTemplateParams } from \"@/types\";\nimport { getPromptTemplate } from \"@/utils\";\n\nexport const get = (\n promptName: string,\n params?: Partial<GetPromptTemplateParams>\n) => getPromptTemplate(promptName, params);\n","import { TrackGroup, TrackMetadata, TrackPrompt, TrackScore } from \"@/types\";\nimport {\n promptLayerTrackGroup,\n promptLayerTrackMetadata,\n promptLayerTrackPrompt,\n promptLayerTrackScore,\n} from \"@/utils\";\n\nconst metadata = (body: TrackMetadata): Promise<boolean> => {\n if (!(body.metadata instanceof Object)) {\n throw new Error(\"Please provide a dictionary of metadata.\");\n }\n for (const [key, value] of Object.entries(body.metadata)) {\n if (typeof key !== \"string\" || typeof value !== \"string\") {\n throw new Error(\n \"Please provide a dictionary of metadata with key value pair of strings.\"\n );\n }\n }\n return promptLayerTrackMetadata(body);\n};\n\nconst score = (body: TrackScore): Promise<boolean> => {\n if (typeof body.score !== \"number\") {\n throw new Error(\"Score must be a number\");\n }\n if (body.score < 0 || body.score > 100) {\n throw new Error(\"Score must be a number between 0 and 100.\");\n }\n return promptLayerTrackScore(body);\n};\n\nconst prompt = (body: TrackPrompt): Promise<boolean> => {\n if (!(body.prompt_input_variables instanceof Object)) {\n throw new Error(\"Prompt template input variable dictionary not provided.\");\n }\n return promptLayerTrackPrompt(body);\n};\n\nconst group = (body: TrackGroup) => promptLayerTrackGroup(body);\n\nexport { group, metadata, prompt, score };\n","import * as groups from \"@/groups\";\nimport { promptLayerBase } from \"@/promptlayer\";\nimport * as prompts from \"@/prompts\";\nimport * as templates from \"@/templates\";\nimport * as track from \"@/track\";\nimport * as utils from \"@/utils\";\n\nexport const promptlayer = new Proxy<{\n OpenAI: any;\n Anthropic: any;\n api_key: string | undefined;\n utils: typeof utils;\n track: typeof track;\n groups: typeof groups;\n prompts: typeof prompts;\n templates: typeof templates;\n}>(\n {\n OpenAI: {},\n Anthropic: {},\n api_key: process.env.PROMPTLAYER_API_KEY,\n utils,\n track,\n groups,\n prompts,\n templates,\n },\n {\n get: (target, prop, receiver) => {\n if ([\"OpenAI\", \"Anthropic\"].includes(prop.toString())) {\n const moduleName = prop === \"OpenAI\" ? \"openai\" : \"@anthropic-ai/sdk\";\n const module = require(moduleName).default;\n return promptLayerBase(\n module,\n prop.toString().toLowerCase(),\n prop.toString().toLowerCase()\n );\n }\n return Reflect.get(target, prop, receiver);\n },\n }\n);\n"],"mappings":"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","names":["groups_exports","__export","create","utils_exports","__export","getApiKey","getPromptTemplate","promptLayerAllPromptTemplates","promptLayerApiRequest","promptLayerCreateGroup","promptLayerGetPrompt","promptLayerPublishPrompt","promptLayerTrackGroup","promptLayerTrackMetadata","promptLayerTrackPrompt","promptLayerTrackScore","promptlayerApiHandler","URL_API_PROMPTLAYER","getApiKey","promptlayer","promptlayerApiHandler","body","__async","proxyGenerator","promptLayerApiRequest","response","data","warnOnBadResponse","e","promptLayerAllPromptTemplates","params","url","key","value","promptLayerGetPrompt","_a","_b","_c","throwOnBadResponse","promptLayerPublishPrompt","__spreadProps","__spreadValues","promptLayerTrackMetadata","promptLayerTrackScore","promptLayerTrackPrompt","promptLayerTrackGroup","promptLayerCreateGroup","getPromptTemplate","promptName","cleaned_result","results","prev","current","result","final_result","generator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","request_response","main_message","create","__async","promptLayerCreateGroup","promptLayerBase","llm","function_name","provider","handler","target","args","newTarget","prop","receiver","value","_a","_b","_c","_d","request_start_time","provider_type","return_pl_id","pl_tags","response","resolve","reject","request_response","__async","promptlayerApiHandler","getApiKey","error","prompts_exports","__export","all","getPrompt","publishPrompt","all","params","promptLayerAllPromptTemplates","getPrompt","__async","prompt","promptLayerGetPrompt","prompt_template","metadata","publishPrompt","body","commit_message","promptLayerPublishPrompt","templates_exports","__export","get","get","promptName","params","getPromptTemplate","track_exports","__export","group","metadata","prompt","score","metadata","body","key","value","promptLayerTrackMetadata","score","promptLayerTrackScore","prompt","promptLayerTrackPrompt","group","promptLayerTrackGroup","promptlayer","utils_exports","track_exports","groups_exports","prompts_exports","templates_exports","target","prop","receiver","module","__require","promptLayerBase"]}
1
+ {"version":3,"sources":["../../src/groups.ts","../../src/utils.ts","../../src/promptlayer.ts","../../src/prompts.ts","../../src/templates.ts","../../src/track.ts","../../src/index.ts"],"sourcesContent":["import { promptLayerCreateGroup } from \"@/utils\";\n\nconst create = async (): Promise<number | boolean> =>\n await promptLayerCreateGroup();\n\nexport { create };\n","import { promptlayer } from \"@/index\";\nimport {\n GetPromptTemplate,\n GetPromptTemplateParams,\n LegacyPublishPromptTemplate,\n Pagination,\n PublishPromptTemplate,\n PublishPromptTemplateResponse,\n TrackGroup,\n TrackMetadata,\n TrackPrompt,\n TrackRequest,\n TrackScore,\n} from \"@/types\";\n\nconst URL_API_PROMPTLAYER = \"https://api.promptlayer.com\";\n\nconst getApiKey = () => {\n if (promptlayer.api_key === undefined) {\n throw new Error(\n \"Please set your PROMPTLAYER_API_KEY environment variable or set API KEY in code using 'promptlayer.api_key = <your_api_key>' \"\n );\n } else {\n return promptlayer.api_key;\n }\n};\n\nconst promptlayerApiHandler = async <Item>(\n body: TrackRequest & {\n request_response: AsyncIterable<Item> | any;\n }\n) => {\n const isGenerator = body.request_response[Symbol.asyncIterator] !== undefined;\n if (isGenerator) {\n return proxyGenerator(body.request_response, body);\n }\n return await promptLayerApiRequest(body);\n};\n\nconst promptLayerApiRequest = async (body: TrackRequest) => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/track-request`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(body),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While logging your request, PromptLayer experienced the following error:\"\n );\n }\n if (data && body.return_pl_id) {\n return [body.request_response, data.request_id];\n }\n } catch (e) {\n console.warn(\n `WARNING: While logging your request PromptLayer had the following error: ${e}`\n );\n }\n return body.request_response;\n};\n\nconst promptLayerAllPromptTemplates = async (params?: Pagination) => {\n const url = new URL(`${URL_API_PROMPTLAYER}/rest/prompts`);\n Object.entries(params || {}).forEach(([key, value]) =>\n url.searchParams.append(key, value)\n );\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": getApiKey(),\n },\n });\n const data = await response.json();\n if (response.status !== 200) {\n console.warn(\n `WARNING: While fetching all prompt templates, PromptLayer had the following error: ${JSON.stringify(\n data\n )}`\n );\n }\n return data;\n } catch (e) {\n console.warn(\n `WARNING: While fetching all prompt templates, PromptLayer had the following error: ${e}`\n );\n }\n};\n\n/**\n * Get a prompt from the PromptLayer library\n * @param prompt_name name of the prompt to get\n * @param api_key your api key\n * @param version version of the prompt to get, None for latest\n * @param label The release label of a prompt you want to get. Setting this will supercede version\n */\nconst promptLayerGetPrompt = async (body: GetPromptTemplate) => {\n const params: Record<string, string> = {\n prompt_name: body.prompt_name,\n version: body.version?.toString() ?? \"\",\n label: body.label ?? \"\",\n };\n const url = new URL(`${URL_API_PROMPTLAYER}/library-get-prompt-template`);\n url.search = new URLSearchParams(params).toString();\n let response: Response;\n try {\n response = await fetch(url.toString(), {\n method: \"GET\",\n headers: {\n \"X-API-KEY\": getApiKey(),\n },\n });\n } catch (e) {\n throw new Error(\n `PromptLayer had the following error while getting your prompt: ${e}`\n );\n }\n const data = await response.json();\n if (response.status !== 200) {\n throwOnBadResponse(\n data,\n `PromptLayer had the following error while retrieving your prompt template`\n );\n }\n return data;\n};\n\nconst promptLayerPublishPrompt = async (\n body: LegacyPublishPromptTemplate\n): Promise<boolean> => {\n let response: Response;\n try {\n response = await fetch(\n `${URL_API_PROMPTLAYER}/library-publish-prompt-template`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n }\n );\n } catch (e) {\n throw new Error(\n `PromptLayer had the following error while publishing your prompt template: ${e}`\n );\n }\n const data = await response.json();\n if (response.status !== 200) {\n throwOnBadResponse(\n data,\n `PromptLayer had the following error while publishing your prompt`\n );\n }\n return true;\n};\n\nconst promptLayerTrackMetadata = async (\n body: TrackMetadata\n): Promise<boolean> => {\n try {\n const response = await fetch(\n `${URL_API_PROMPTLAYER}/library-track-metadata`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n }\n );\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While logging metadata to your request, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While logging metadata to your request, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerTrackScore = async (body: TrackScore): Promise<boolean> => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/library-track-score`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While scoring your request, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While scoring your request, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerTrackPrompt = async (body: TrackPrompt): Promise<boolean> => {\n try {\n const response = await fetch(\n `${URL_API_PROMPTLAYER}/library-track-prompt`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n }\n );\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While associating your request with a prompt template, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While associating your request with a prompt template, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerTrackGroup = async (body: TrackGroup): Promise<boolean> => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/track-group`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While associating your request with a group, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While associating your request with a group, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerCreateGroup = async (): Promise<number | boolean> => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/create-group`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n api_key: getApiKey(),\n }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While creating a group PromptLayer had the following error\"\n );\n return false;\n }\n return data.id;\n } catch (e) {\n console.warn(\n `WARNING: While creating a group PromptLayer had the following error: ${e}`\n );\n return false;\n }\n};\n\nconst getPromptTemplate = async (\n promptName: string,\n params?: Partial<GetPromptTemplateParams>\n) => {\n try {\n const url = new URL(\n `${URL_API_PROMPTLAYER}/prompt-templates/${promptName}`\n );\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": getApiKey(),\n },\n body: JSON.stringify({ ...params, api_key: getApiKey() }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While fetching a prompt template PromptLayer had the following error\"\n );\n return null;\n }\n return data;\n } catch (e) {\n console.warn(\n `WARNING: While fetching a prompt template PromptLayer had the following error: ${e}`\n );\n return null;\n }\n};\n\nconst publishPromptTemplate = async (body: PublishPromptTemplate) => {\n try {\n const response = await fetch(\n `${URL_API_PROMPTLAYER}/rest/prompt-templates`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": getApiKey(),\n },\n body: JSON.stringify(body),\n }\n );\n const data = await response.json();\n if (response.status === 400) {\n warnOnBadResponse(\n data,\n \"WARNING: While publishing a prompt template PromptLayer had the following error\"\n );\n }\n return data as Promise<PublishPromptTemplateResponse>;\n } catch (e) {\n console.warn(\n `WARNING: While publishing a prompt template PromptLayer had the following error: ${e}`\n );\n }\n};\n\nconst cleaned_result = (results: any[]) => {\n if (\"completion\" in results[0])\n return results.reduce(\n (prev, current) => ({\n ...current,\n completion: `${prev.completion}${current.completion}`,\n }),\n {}\n );\n if (\"text\" in results[0].choices[0]) {\n let response = \"\";\n for (const result of results) {\n response = `${response}${result.choices[0].text}`;\n }\n const final_result = structuredClone(results.at(-1));\n final_result.choices[0].text = response;\n return final_result;\n } else if (\"delta\" in results[0].choices[0]) {\n let response = { role: \"\", content: \"\" };\n for (const result of results) {\n if (\"role\" in result.choices[0].delta) {\n response.role = result.choices[0].delta.role;\n }\n if (\"content\" in result.choices[0].delta) {\n response.content = `${response[\"content\"]}${result.choices[0].delta.content}`;\n }\n }\n const final_result = structuredClone(results.at(-1));\n final_result.choices[0] = response;\n return final_result;\n }\n return \"\";\n};\n\nasync function* proxyGenerator<Item>(\n generator: AsyncIterable<Item>,\n body: TrackRequest\n) {\n const results = [];\n for await (const value of generator) {\n yield value;\n results.push(value);\n }\n const request_response = cleaned_result(results);\n const response = await promptLayerApiRequest({\n ...body,\n request_response,\n request_end_time: new Date().toISOString(),\n });\n yield response;\n}\n\nconst warnOnBadResponse = (request_response: any, main_message: string) => {\n try {\n console.warn(`${main_message}: ${request_response.message}`);\n } catch (e) {\n console.warn(`${main_message}: ${request_response}`);\n }\n};\n\nconst throwOnBadResponse = (request_response: any, main_message: string) => {\n if (\"message\" in request_response) {\n throw new Error(`${main_message}: ${request_response.message}`);\n }\n throw new Error(`${main_message}: ${request_response.message}`);\n};\n\nexport {\n getApiKey,\n getPromptTemplate,\n promptLayerAllPromptTemplates,\n promptLayerApiRequest,\n promptLayerCreateGroup,\n promptLayerGetPrompt,\n promptLayerPublishPrompt,\n promptLayerTrackGroup,\n promptLayerTrackMetadata,\n promptLayerTrackPrompt,\n promptLayerTrackScore,\n promptlayerApiHandler,\n publishPromptTemplate,\n};\n","import { getApiKey, promptlayerApiHandler } from \"@/utils\";\n\nexport const promptLayerBase = (\n llm: object,\n function_name = \"\",\n provider = \"openai\"\n) => {\n const handler: ProxyHandler<any> = {\n construct: (target, args) => {\n const newTarget = Reflect.construct(target, args);\n Object.defineProperties(newTarget, {\n function_name: {\n value: function_name,\n writable: true,\n },\n provider: {\n value: provider,\n },\n });\n return new Proxy(newTarget, handler);\n },\n get: (target, prop, receiver) => {\n const value = target[prop];\n const function_name = `${Reflect.get(\n target,\n \"function_name\"\n )}.${prop.toString()}`;\n if (typeof value === \"object\") {\n Object.defineProperties(value, {\n function_name: {\n value: function_name,\n writable: true,\n },\n provider: {\n value: provider,\n },\n });\n return new Proxy(value, handler);\n }\n if (typeof value === \"function\") {\n return (...args: any[]) => {\n const request_start_time = new Date().toISOString();\n const provider_type = Reflect.get(target, \"provider\");\n const return_pl_id = args[0]?.return_pl_id;\n const pl_tags = args[0]?.pl_tags;\n delete args[0]?.return_pl_id;\n delete args[0]?.pl_tags;\n const response = Reflect.apply(value, target, args);\n if (response instanceof Promise) {\n return new Promise((resolve, reject) => {\n response\n .then(async (request_response) => {\n const response = await promptlayerApiHandler({\n api_key: getApiKey(),\n provider_type,\n function_name,\n request_start_time,\n request_end_time: new Date().toISOString(),\n request_response,\n kwargs: args[0],\n return_pl_id,\n tags: pl_tags,\n });\n resolve(response);\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n return response;\n };\n }\n return Reflect.get(target, prop, receiver);\n },\n };\n return new Proxy(llm, handler);\n};\n","import {\n GetPromptTemplate,\n LegacyPromptTemplate,\n LegacyPublishPromptTemplate,\n Pagination,\n} from \"@/types\";\nimport {\n promptLayerAllPromptTemplates,\n promptLayerGetPrompt,\n promptLayerPublishPrompt,\n} from \"@/utils\";\n\n/**\n * @description List all prompts on PromptLayer.\n * @param params\n */\nexport const all = (params?: Pagination) =>\n promptLayerAllPromptTemplates(params);\n/**\n * Get a prompt template from PromptLayer.\n */\nconst getPrompt = async (\n params: GetPromptTemplate\n): Promise<LegacyPromptTemplate> => {\n const prompt = await promptLayerGetPrompt(params);\n const prompt_template = prompt[\"prompt_template\"];\n const metadata = prompt[\"metadata\"];\n return {\n prompt_template,\n metadata,\n };\n};\n\nconst publishPrompt = (body: LegacyPublishPromptTemplate): Promise<boolean> => {\n const { prompt_template, commit_message } = body;\n if (commit_message && commit_message.length > 72) {\n throw new Error(\"Commit message must be less than 72 characters.\");\n }\n if (!(prompt_template instanceof Object)) {\n throw new Error(\"Please provide a JSON prompt template.\");\n }\n return promptLayerPublishPrompt(body);\n};\n\nexport { getPrompt as get, publishPrompt as publish };\n","import { GetPromptTemplateParams, PublishPromptTemplate } from \"@/types\";\nimport { getPromptTemplate, publishPromptTemplate } from \"@/utils\";\n\nexport const get = (\n promptName: string,\n params?: Partial<GetPromptTemplateParams>\n) => getPromptTemplate(promptName, params);\n\nexport const publish = (body: PublishPromptTemplate) =>\n publishPromptTemplate(body);\n","import { TrackGroup, TrackMetadata, TrackPrompt, TrackScore } from \"@/types\";\nimport {\n promptLayerTrackGroup,\n promptLayerTrackMetadata,\n promptLayerTrackPrompt,\n promptLayerTrackScore,\n} from \"@/utils\";\n\nconst metadata = (body: TrackMetadata): Promise<boolean> => {\n if (!(body.metadata instanceof Object)) {\n throw new Error(\"Please provide a dictionary of metadata.\");\n }\n for (const [key, value] of Object.entries(body.metadata)) {\n if (typeof key !== \"string\" || typeof value !== \"string\") {\n throw new Error(\n \"Please provide a dictionary of metadata with key value pair of strings.\"\n );\n }\n }\n return promptLayerTrackMetadata(body);\n};\n\nconst score = (body: TrackScore): Promise<boolean> => {\n if (typeof body.score !== \"number\") {\n throw new Error(\"Score must be a number\");\n }\n if (body.score < 0 || body.score > 100) {\n throw new Error(\"Score must be a number between 0 and 100.\");\n }\n return promptLayerTrackScore(body);\n};\n\nconst prompt = (body: TrackPrompt): Promise<boolean> => {\n if (!(body.prompt_input_variables instanceof Object)) {\n throw new Error(\"Prompt template input variable dictionary not provided.\");\n }\n return promptLayerTrackPrompt(body);\n};\n\nconst group = (body: TrackGroup) => promptLayerTrackGroup(body);\n\nexport { group, metadata, prompt, score };\n","import * as groups from \"@/groups\";\nimport { promptLayerBase } from \"@/promptlayer\";\nimport * as prompts from \"@/prompts\";\nimport * as templates from \"@/templates\";\nimport * as track from \"@/track\";\nimport * as utils from \"@/utils\";\n\nexport const promptlayer = new Proxy<{\n OpenAI: any;\n Anthropic: any;\n api_key: string | undefined;\n utils: typeof utils;\n track: typeof track;\n groups: typeof groups;\n prompts: typeof prompts;\n templates: typeof templates;\n}>(\n {\n OpenAI: {},\n Anthropic: {},\n api_key: process.env.PROMPTLAYER_API_KEY,\n utils,\n track,\n groups,\n prompts,\n templates,\n },\n {\n get: (target, prop, receiver) => {\n if ([\"OpenAI\", \"Anthropic\"].includes(prop.toString())) {\n const moduleName = prop === \"OpenAI\" ? \"openai\" : \"@anthropic-ai/sdk\";\n const module = require(moduleName).default;\n return promptLayerBase(\n module,\n prop.toString().toLowerCase(),\n prop.toString().toLowerCase()\n );\n }\n return Reflect.get(target, prop, receiver);\n },\n }\n);\n"],"mappings":"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","names":["groups_exports","__export","create","utils_exports","__export","getApiKey","getPromptTemplate","promptLayerAllPromptTemplates","promptLayerApiRequest","promptLayerCreateGroup","promptLayerGetPrompt","promptLayerPublishPrompt","promptLayerTrackGroup","promptLayerTrackMetadata","promptLayerTrackPrompt","promptLayerTrackScore","promptlayerApiHandler","publishPromptTemplate","URL_API_PROMPTLAYER","getApiKey","promptlayer","promptlayerApiHandler","body","__async","proxyGenerator","promptLayerApiRequest","response","data","warnOnBadResponse","e","promptLayerAllPromptTemplates","params","url","key","value","promptLayerGetPrompt","_a","_b","_c","throwOnBadResponse","promptLayerPublishPrompt","__spreadProps","__spreadValues","promptLayerTrackMetadata","promptLayerTrackScore","promptLayerTrackPrompt","promptLayerTrackGroup","promptLayerCreateGroup","getPromptTemplate","promptName","publishPromptTemplate","cleaned_result","results","prev","current","result","final_result","generator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","request_response","main_message","create","__async","promptLayerCreateGroup","promptLayerBase","llm","function_name","provider","handler","target","args","newTarget","prop","receiver","value","_a","_b","_c","_d","request_start_time","provider_type","return_pl_id","pl_tags","response","resolve","reject","request_response","__async","promptlayerApiHandler","getApiKey","error","prompts_exports","__export","all","getPrompt","publishPrompt","all","params","promptLayerAllPromptTemplates","getPrompt","__async","prompt","promptLayerGetPrompt","prompt_template","metadata","publishPrompt","body","commit_message","promptLayerPublishPrompt","templates_exports","__export","get","publish","get","promptName","params","getPromptTemplate","publish","body","publishPromptTemplate","track_exports","__export","group","metadata","prompt","score","metadata","body","key","value","promptLayerTrackMetadata","score","promptLayerTrackScore","prompt","promptLayerTrackPrompt","group","promptLayerTrackGroup","promptlayer","utils_exports","track_exports","groups_exports","prompts_exports","templates_exports","target","prop","receiver","module","__require","promptLayerBase"]}
package/dist/index.d.mts CHANGED
@@ -12,11 +12,11 @@ interface GetPromptTemplate {
12
12
  version?: number;
13
13
  label?: string;
14
14
  }
15
- interface PromptTemplate {
15
+ interface LegacyPromptTemplate {
16
16
  prompt_template: any;
17
17
  metadata: any;
18
18
  }
19
- interface PublishPromptTemplate {
19
+ interface LegacyPublishPromptTemplate {
20
20
  prompt_name: string;
21
21
  prompt_template: any;
22
22
  commit_message?: string;
@@ -68,6 +68,77 @@ interface GetPromptTemplateParams {
68
68
  provider: string;
69
69
  input_variables: Record<string, string>;
70
70
  }
71
+ declare const templateFormat: readonly ["f-string", "jinja2"];
72
+ type TemplateFormat = (typeof templateFormat)[number];
73
+ type ImageUrl = {
74
+ url: string;
75
+ };
76
+ type TextContent = {
77
+ type: "text";
78
+ text: string;
79
+ };
80
+ type ImageContent = {
81
+ type: "image_url";
82
+ image_url: ImageUrl;
83
+ };
84
+ type Content = TextContent | ImageContent;
85
+ type Function_ = {
86
+ name: string;
87
+ description: string;
88
+ parameters: Record<string, unknown>;
89
+ };
90
+ type FunctionCall = {
91
+ name: string;
92
+ arguments: string;
93
+ };
94
+ type SystemMessage = {
95
+ role: "system";
96
+ template_format?: TemplateFormat;
97
+ content: Content[];
98
+ name?: string;
99
+ };
100
+ type UserMessage = {
101
+ role: "user";
102
+ template_format?: TemplateFormat;
103
+ content: Content[];
104
+ name?: string;
105
+ };
106
+ type AssistantMessage = {
107
+ role: "assistant";
108
+ template_format?: TemplateFormat;
109
+ content?: Content[];
110
+ function_call?: FunctionCall;
111
+ name?: string;
112
+ };
113
+ type FunctionMessage = {
114
+ role: "function";
115
+ template_format?: TemplateFormat;
116
+ content?: Content[];
117
+ name: string;
118
+ };
119
+ type Message = SystemMessage | UserMessage | AssistantMessage | FunctionMessage;
120
+ type ChatFunctionCall = {
121
+ name: string;
122
+ };
123
+ type CompletionPromptTemplate = {
124
+ type: "completion";
125
+ template_format?: TemplateFormat;
126
+ content: Content[];
127
+ };
128
+ type ChatPromptTemplate = {
129
+ type: "chat";
130
+ messages: Message[];
131
+ functions?: Function_[];
132
+ function_call?: "auto" | "none" | ChatFunctionCall;
133
+ };
134
+ type PromptTemplate = CompletionPromptTemplate | ChatPromptTemplate;
135
+ type PublishPromptTemplate = {
136
+ prompt_name: string;
137
+ prompt_template: PromptTemplate;
138
+ };
139
+ type PublishPromptTemplateResponse = PublishPromptTemplate & {
140
+ id: number;
141
+ };
71
142
 
72
143
  /**
73
144
  * @description List all prompts on PromptLayer.
@@ -77,8 +148,8 @@ declare const all: (params?: Pagination) => Promise<any>;
77
148
  /**
78
149
  * Get a prompt template from PromptLayer.
79
150
  */
80
- declare const getPrompt: (params: GetPromptTemplate) => Promise<PromptTemplate>;
81
- declare const publishPrompt: (body: PublishPromptTemplate) => Promise<boolean>;
151
+ declare const getPrompt: (params: GetPromptTemplate) => Promise<LegacyPromptTemplate>;
152
+ declare const publishPrompt: (body: LegacyPublishPromptTemplate) => Promise<boolean>;
82
153
 
83
154
  declare const prompts_all: typeof all;
84
155
  declare namespace prompts {
@@ -90,11 +161,14 @@ declare namespace prompts {
90
161
  }
91
162
 
92
163
  declare const get: (promptName: string, params?: Partial<GetPromptTemplateParams>) => Promise<any>;
164
+ declare const publish: (body: PublishPromptTemplate) => Promise<PublishPromptTemplateResponse | undefined>;
93
165
 
94
166
  declare const templates_get: typeof get;
167
+ declare const templates_publish: typeof publish;
95
168
  declare namespace templates {
96
169
  export {
97
170
  templates_get as get,
171
+ templates_publish as publish,
98
172
  };
99
173
  }
100
174
 
@@ -130,13 +204,14 @@ declare const promptLayerAllPromptTemplates: (params?: Pagination) => Promise<an
130
204
  * @param label The release label of a prompt you want to get. Setting this will supercede version
131
205
  */
132
206
  declare const promptLayerGetPrompt: (body: GetPromptTemplate) => Promise<any>;
133
- declare const promptLayerPublishPrompt: (body: PublishPromptTemplate) => Promise<boolean>;
207
+ declare const promptLayerPublishPrompt: (body: LegacyPublishPromptTemplate) => Promise<boolean>;
134
208
  declare const promptLayerTrackMetadata: (body: TrackMetadata) => Promise<boolean>;
135
209
  declare const promptLayerTrackScore: (body: TrackScore) => Promise<boolean>;
136
210
  declare const promptLayerTrackPrompt: (body: TrackPrompt) => Promise<boolean>;
137
211
  declare const promptLayerTrackGroup: (body: TrackGroup) => Promise<boolean>;
138
212
  declare const promptLayerCreateGroup: () => Promise<number | boolean>;
139
213
  declare const getPromptTemplate: (promptName: string, params?: Partial<GetPromptTemplateParams>) => Promise<any>;
214
+ declare const publishPromptTemplate: (body: PublishPromptTemplate) => Promise<PublishPromptTemplateResponse | undefined>;
140
215
 
141
216
  declare const utils_getApiKey: typeof getApiKey;
142
217
  declare const utils_getPromptTemplate: typeof getPromptTemplate;
@@ -150,6 +225,7 @@ declare const utils_promptLayerTrackMetadata: typeof promptLayerTrackMetadata;
150
225
  declare const utils_promptLayerTrackPrompt: typeof promptLayerTrackPrompt;
151
226
  declare const utils_promptLayerTrackScore: typeof promptLayerTrackScore;
152
227
  declare const utils_promptlayerApiHandler: typeof promptlayerApiHandler;
228
+ declare const utils_publishPromptTemplate: typeof publishPromptTemplate;
153
229
  declare namespace utils {
154
230
  export {
155
231
  utils_getApiKey as getApiKey,
@@ -164,6 +240,7 @@ declare namespace utils {
164
240
  utils_promptLayerTrackPrompt as promptLayerTrackPrompt,
165
241
  utils_promptLayerTrackScore as promptLayerTrackScore,
166
242
  utils_promptlayerApiHandler as promptlayerApiHandler,
243
+ utils_publishPromptTemplate as publishPromptTemplate,
167
244
  };
168
245
  }
169
246
 
package/dist/index.d.ts CHANGED
@@ -12,11 +12,11 @@ interface GetPromptTemplate {
12
12
  version?: number;
13
13
  label?: string;
14
14
  }
15
- interface PromptTemplate {
15
+ interface LegacyPromptTemplate {
16
16
  prompt_template: any;
17
17
  metadata: any;
18
18
  }
19
- interface PublishPromptTemplate {
19
+ interface LegacyPublishPromptTemplate {
20
20
  prompt_name: string;
21
21
  prompt_template: any;
22
22
  commit_message?: string;
@@ -68,6 +68,77 @@ interface GetPromptTemplateParams {
68
68
  provider: string;
69
69
  input_variables: Record<string, string>;
70
70
  }
71
+ declare const templateFormat: readonly ["f-string", "jinja2"];
72
+ type TemplateFormat = (typeof templateFormat)[number];
73
+ type ImageUrl = {
74
+ url: string;
75
+ };
76
+ type TextContent = {
77
+ type: "text";
78
+ text: string;
79
+ };
80
+ type ImageContent = {
81
+ type: "image_url";
82
+ image_url: ImageUrl;
83
+ };
84
+ type Content = TextContent | ImageContent;
85
+ type Function_ = {
86
+ name: string;
87
+ description: string;
88
+ parameters: Record<string, unknown>;
89
+ };
90
+ type FunctionCall = {
91
+ name: string;
92
+ arguments: string;
93
+ };
94
+ type SystemMessage = {
95
+ role: "system";
96
+ template_format?: TemplateFormat;
97
+ content: Content[];
98
+ name?: string;
99
+ };
100
+ type UserMessage = {
101
+ role: "user";
102
+ template_format?: TemplateFormat;
103
+ content: Content[];
104
+ name?: string;
105
+ };
106
+ type AssistantMessage = {
107
+ role: "assistant";
108
+ template_format?: TemplateFormat;
109
+ content?: Content[];
110
+ function_call?: FunctionCall;
111
+ name?: string;
112
+ };
113
+ type FunctionMessage = {
114
+ role: "function";
115
+ template_format?: TemplateFormat;
116
+ content?: Content[];
117
+ name: string;
118
+ };
119
+ type Message = SystemMessage | UserMessage | AssistantMessage | FunctionMessage;
120
+ type ChatFunctionCall = {
121
+ name: string;
122
+ };
123
+ type CompletionPromptTemplate = {
124
+ type: "completion";
125
+ template_format?: TemplateFormat;
126
+ content: Content[];
127
+ };
128
+ type ChatPromptTemplate = {
129
+ type: "chat";
130
+ messages: Message[];
131
+ functions?: Function_[];
132
+ function_call?: "auto" | "none" | ChatFunctionCall;
133
+ };
134
+ type PromptTemplate = CompletionPromptTemplate | ChatPromptTemplate;
135
+ type PublishPromptTemplate = {
136
+ prompt_name: string;
137
+ prompt_template: PromptTemplate;
138
+ };
139
+ type PublishPromptTemplateResponse = PublishPromptTemplate & {
140
+ id: number;
141
+ };
71
142
 
72
143
  /**
73
144
  * @description List all prompts on PromptLayer.
@@ -77,8 +148,8 @@ declare const all: (params?: Pagination) => Promise<any>;
77
148
  /**
78
149
  * Get a prompt template from PromptLayer.
79
150
  */
80
- declare const getPrompt: (params: GetPromptTemplate) => Promise<PromptTemplate>;
81
- declare const publishPrompt: (body: PublishPromptTemplate) => Promise<boolean>;
151
+ declare const getPrompt: (params: GetPromptTemplate) => Promise<LegacyPromptTemplate>;
152
+ declare const publishPrompt: (body: LegacyPublishPromptTemplate) => Promise<boolean>;
82
153
 
83
154
  declare const prompts_all: typeof all;
84
155
  declare namespace prompts {
@@ -90,11 +161,14 @@ declare namespace prompts {
90
161
  }
91
162
 
92
163
  declare const get: (promptName: string, params?: Partial<GetPromptTemplateParams>) => Promise<any>;
164
+ declare const publish: (body: PublishPromptTemplate) => Promise<PublishPromptTemplateResponse | undefined>;
93
165
 
94
166
  declare const templates_get: typeof get;
167
+ declare const templates_publish: typeof publish;
95
168
  declare namespace templates {
96
169
  export {
97
170
  templates_get as get,
171
+ templates_publish as publish,
98
172
  };
99
173
  }
100
174
 
@@ -130,13 +204,14 @@ declare const promptLayerAllPromptTemplates: (params?: Pagination) => Promise<an
130
204
  * @param label The release label of a prompt you want to get. Setting this will supercede version
131
205
  */
132
206
  declare const promptLayerGetPrompt: (body: GetPromptTemplate) => Promise<any>;
133
- declare const promptLayerPublishPrompt: (body: PublishPromptTemplate) => Promise<boolean>;
207
+ declare const promptLayerPublishPrompt: (body: LegacyPublishPromptTemplate) => Promise<boolean>;
134
208
  declare const promptLayerTrackMetadata: (body: TrackMetadata) => Promise<boolean>;
135
209
  declare const promptLayerTrackScore: (body: TrackScore) => Promise<boolean>;
136
210
  declare const promptLayerTrackPrompt: (body: TrackPrompt) => Promise<boolean>;
137
211
  declare const promptLayerTrackGroup: (body: TrackGroup) => Promise<boolean>;
138
212
  declare const promptLayerCreateGroup: () => Promise<number | boolean>;
139
213
  declare const getPromptTemplate: (promptName: string, params?: Partial<GetPromptTemplateParams>) => Promise<any>;
214
+ declare const publishPromptTemplate: (body: PublishPromptTemplate) => Promise<PublishPromptTemplateResponse | undefined>;
140
215
 
141
216
  declare const utils_getApiKey: typeof getApiKey;
142
217
  declare const utils_getPromptTemplate: typeof getPromptTemplate;
@@ -150,6 +225,7 @@ declare const utils_promptLayerTrackMetadata: typeof promptLayerTrackMetadata;
150
225
  declare const utils_promptLayerTrackPrompt: typeof promptLayerTrackPrompt;
151
226
  declare const utils_promptLayerTrackScore: typeof promptLayerTrackScore;
152
227
  declare const utils_promptlayerApiHandler: typeof promptlayerApiHandler;
228
+ declare const utils_publishPromptTemplate: typeof publishPromptTemplate;
153
229
  declare namespace utils {
154
230
  export {
155
231
  utils_getApiKey as getApiKey,
@@ -164,6 +240,7 @@ declare namespace utils {
164
240
  utils_promptLayerTrackPrompt as promptLayerTrackPrompt,
165
241
  utils_promptLayerTrackScore as promptLayerTrackScore,
166
242
  utils_promptlayerApiHandler as promptlayerApiHandler,
243
+ utils_publishPromptTemplate as publishPromptTemplate,
167
244
  };
168
245
  }
169
246
 
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var _=Object.defineProperty,oe=Object.defineProperties,ae=Object.getOwnPropertyDescriptor,ne=Object.getOwnPropertyDescriptors,se=Object.getOwnPropertyNames,D=Object.getOwnPropertySymbols;var z=Object.prototype.hasOwnProperty,pe=Object.prototype.propertyIsEnumerable;var H=(t,e)=>{if(e=Symbol[t])return e;throw Error("Symbol."+t+" is not defined")};var X=(t,e,r)=>e in t?_(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,h=(t,e)=>{for(var r in e||(e={}))z.call(e,r)&&X(t,r,e[r]);if(D)for(var r of D(e))pe.call(e,r)&&X(t,r,e[r]);return t},f=(t,e)=>oe(t,ne(e));var d=(t,e)=>{for(var r in e)_(t,r,{get:e[r],enumerable:!0})},ie=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of se(e))!z.call(t,a)&&a!==r&&_(t,a,{get:()=>e[a],enumerable:!(o=ae(e,a))||o.enumerable});return t};var ce=t=>ie(_({},"__esModule",{value:!0}),t);var l=(t,e,r)=>new Promise((o,a)=>{var i=s=>{try{n(r.next(s))}catch(p){a(p)}},c=s=>{try{n(r.throw(s))}catch(p){a(p)}},n=s=>s.done?o(s.value):Promise.resolve(s.value).then(i,c);n((r=r.apply(t,e)).next())}),w=function(t,e){this[0]=t,this[1]=e},F=(t,e,r)=>{var o=(c,n,s,p)=>{try{var g=r[c](n),T=(n=g.value)instanceof w,L=g.done;Promise.resolve(T?n[0]:n).then(u=>T?o(c==="return"?c:"next",n[1]?{done:u.done,value:u.value}:u,s,p):s({value:u,done:L})).catch(u=>o("throw",u,s,p))}catch(u){p(u)}},a=c=>i[c]=n=>new Promise((s,p)=>o(c,n,s,p)),i={};return r=r.apply(t,e),i[Symbol.asyncIterator]=()=>i,a("next"),a("throw"),a("return"),i};var Q=(t,e,r)=>(e=t[H("asyncIterator")])?e.call(t):(t=t[H("iterator")](),e={},r=(o,a)=>(a=t[o])&&(e[o]=i=>new Promise((c,n,s)=>(i=a.call(t,i),s=i.done,Promise.resolve(i.value).then(p=>c({value:p,done:s}),n)))),r("next"),r("return"),e);var _e={};d(_e,{promptlayer:()=>k});module.exports=ce(_e);var v={};d(v,{create:()=>ue});var E={};d(E,{getApiKey:()=>m,getPromptTemplate:()=>q,promptLayerAllPromptTemplates:()=>S,promptLayerApiRequest:()=>A,promptLayerCreateGroup:()=>x,promptLayerGetPrompt:()=>G,promptLayerPublishPrompt:()=>$,promptLayerTrackGroup:()=>j,promptLayerTrackMetadata:()=>I,promptLayerTrackPrompt:()=>W,promptLayerTrackScore:()=>O,promptlayerApiHandler:()=>R});var y="https://api.promptlayer.com",m=()=>{if(k.api_key===void 0)throw new Error("Please set your PROMPTLAYER_API_KEY environment variable or set API KEY in code using 'promptlayer.api_key = <your_api_key>' ");return k.api_key},R=t=>l(void 0,null,function*(){return t.request_response[Symbol.asyncIterator]!==void 0?me(t.request_response,t):yield A(t)}),A=t=>l(void 0,null,function*(){try{let e=yield fetch(`${y}/track-request`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=yield e.json();if(e.status!==200&&P(r,"WARNING: While logging your request, PromptLayer experienced the following error:"),r&&t.return_pl_id)return[t.request_response,r.request_id]}catch(e){console.warn(`WARNING: While logging your request PromptLayer had the following error: ${e}`)}return t.request_response}),S=t=>l(void 0,null,function*(){let e=new URL(`${y}/rest/prompts`);Object.entries(t||{}).forEach(([r,o])=>e.searchParams.append(r,o));try{let r=yield fetch(e,{method:"GET",headers:{"Content-Type":"application/json","X-API-KEY":m()}}),o=yield r.json();return r.status!==200&&console.warn(`WARNING: While fetching all prompt templates, PromptLayer had the following error: ${JSON.stringify(o)}`),o}catch(r){console.warn(`WARNING: While fetching all prompt templates, PromptLayer had the following error: ${r}`)}}),G=t=>l(void 0,null,function*(){var i,c,n;let e={prompt_name:t.prompt_name,version:(c=(i=t.version)==null?void 0:i.toString())!=null?c:"",label:(n=t.label)!=null?n:""},r=new URL(`${y}/library-get-prompt-template`);r.search=new URLSearchParams(e).toString();let o;try{o=yield fetch(r.toString(),{method:"GET",headers:{"X-API-KEY":m()}})}catch(s){throw new Error(`PromptLayer had the following error while getting your prompt: ${s}`)}let a=yield o.json();return o.status!==200&&V(a,"PromptLayer had the following error while retrieving your prompt template"),a}),$=t=>l(void 0,null,function*(){let e;try{e=yield fetch(`${y}/library-publish-prompt-template`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(h({},t),{api_key:m()}))})}catch(o){throw new Error(`PromptLayer had the following error while publishing your prompt template: ${o}`)}let r=yield e.json();return e.status!==200&&V(r,"PromptLayer had the following error while publishing your prompt"),!0}),I=t=>l(void 0,null,function*(){try{let e=yield fetch(`${y}/library-track-metadata`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(h({},t),{api_key:m()}))}),r=yield e.json();if(e.status!==200)return P(r,"WARNING: While logging metadata to your request, PromptLayer experienced the following error"),!1}catch(e){return console.warn(`WARNING: While logging metadata to your request, PromptLayer experienced the following error: ${e}`),!1}return!0}),O=t=>l(void 0,null,function*(){try{let e=yield fetch(`${y}/library-track-score`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(h({},t),{api_key:m()}))}),r=yield e.json();if(e.status!==200)return P(r,"WARNING: While scoring your request, PromptLayer experienced the following error"),!1}catch(e){return console.warn(`WARNING: While scoring your request, PromptLayer experienced the following error: ${e}`),!1}return!0}),W=t=>l(void 0,null,function*(){try{let e=yield fetch(`${y}/library-track-prompt`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(h({},t),{api_key:m()}))}),r=yield e.json();if(e.status!==200)return P(r,"WARNING: While associating your request with a prompt template, PromptLayer experienced the following error"),!1}catch(e){return console.warn(`WARNING: While associating your request with a prompt template, PromptLayer experienced the following error: ${e}`),!1}return!0}),j=t=>l(void 0,null,function*(){try{let e=yield fetch(`${y}/track-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(h({},t),{api_key:m()}))}),r=yield e.json();if(e.status!==200)return P(r,"WARNING: While associating your request with a group, PromptLayer experienced the following error"),!1}catch(e){return console.warn(`WARNING: While associating your request with a group, PromptLayer experienced the following error: ${e}`),!1}return!0}),x=()=>l(void 0,null,function*(){try{let t=yield fetch(`${y}/create-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({api_key:m()})}),e=yield t.json();return t.status!==200?(P(e,"WARNING: While creating a group PromptLayer had the following error"),!1):e.id}catch(t){return console.warn(`WARNING: While creating a group PromptLayer had the following error: ${t}`),!1}}),q=(t,e)=>l(void 0,null,function*(){try{let r=new URL(`${y}/prompt-templates/${t}`),o=yield fetch(r,{method:"POST",headers:{"Content-Type":"application/json","X-API-KEY":m()},body:JSON.stringify(f(h({},e),{api_key:m()}))}),a=yield o.json();return o.status!==200?(P(a,"WARNING: While fetching a prompt template PromptLayer had the following error"),null):a}catch(r){return console.warn(`WARNING: While fetching a prompt template PromptLayer had the following error: ${r}`),null}}),le=t=>{if("completion"in t[0])return t.reduce((e,r)=>f(h({},r),{completion:`${e.completion}${r.completion}`}),{});if("text"in t[0].choices[0]){let e="";for(let o of t)e=`${e}${o.choices[0].text}`;let r=structuredClone(t.at(-1));return r.choices[0].text=e,r}else if("delta"in t[0].choices[0]){let e={role:"",content:""};for(let o of t)"role"in o.choices[0].delta&&(e.role=o.choices[0].delta.role),"content"in o.choices[0].delta&&(e.content=`${e.content}${o.choices[0].delta.content}`);let r=structuredClone(t.at(-1));return r.choices[0]=e,r}return""};function me(t,e){return F(this,null,function*(){let r=[];try{for(var i=Q(t),c,n,s;c=!(n=yield new w(i.next())).done;c=!1){let p=n.value;yield p,r.push(p)}}catch(n){s=[n]}finally{try{c&&(n=i.return)&&(yield new w(n.call(i)))}finally{if(s)throw s[0]}}let o=le(r);yield yield new w(A(f(h({},e),{request_response:o,request_end_time:new Date().toISOString()})))})}var P=(t,e)=>{try{console.warn(`${e}: ${t.message}`)}catch(r){console.warn(`${e}: ${t}`)}},V=(t,e)=>{throw"message"in t?new Error(`${e}: ${t.message}`):new Error(`${e}: ${t.message}`)};var ue=()=>l(void 0,null,function*(){return yield x()});var Z=(t,e="",r="openai")=>{let o={construct:(a,i)=>{let c=Reflect.construct(a,i);return Object.defineProperties(c,{function_name:{value:e,writable:!0},provider:{value:r}}),new Proxy(c,o)},get:(a,i,c)=>{let n=a[i],s=`${Reflect.get(a,"function_name")}.${i.toString()}`;return typeof n=="object"?(Object.defineProperties(n,{function_name:{value:s,writable:!0},provider:{value:r}}),new Proxy(n,o)):typeof n=="function"?(...p)=>{var Y,K,U,B;let g=new Date().toISOString(),T=Reflect.get(a,"provider"),L=(Y=p[0])==null?void 0:Y.return_pl_id,u=(K=p[0])==null?void 0:K.pl_tags;(U=p[0])==null||delete U.return_pl_id,(B=p[0])==null||delete B.pl_tags;let b=Reflect.apply(n,a,p);return b instanceof Promise?new Promise((ee,te)=>{b.then(N=>l(void 0,null,function*(){let re=yield R({api_key:m(),provider_type:T,function_name:s,request_start_time:g,request_end_time:new Date().toISOString(),request_response:N,kwargs:p[0],return_pl_id:L,tags:u});ee(re)})).catch(N=>{te(N)})}):b}:Reflect.get(a,i,c)}};return new Proxy(t,o)};var C={};d(C,{all:()=>ye,get:()=>he,publish:()=>fe});var ye=t=>S(t),he=t=>l(void 0,null,function*(){let e=yield G(t),r=e.prompt_template,o=e.metadata;return{prompt_template:r,metadata:o}}),fe=t=>{let{prompt_template:e,commit_message:r}=t;if(r&&r.length>72)throw new Error("Commit message must be less than 72 characters.");if(!(e instanceof Object))throw new Error("Please provide a JSON prompt template.");return $(t)};var J={};d(J,{get:()=>Pe});var Pe=(t,e)=>q(t,e);var M={};d(M,{group:()=>Te,metadata:()=>de,prompt:()=>ge,score:()=>we});var de=t=>{if(!(t.metadata instanceof Object))throw new Error("Please provide a dictionary of metadata.");for(let[e,r]of Object.entries(t.metadata))if(typeof e!="string"||typeof r!="string")throw new Error("Please provide a dictionary of metadata with key value pair of strings.");return I(t)},we=t=>{if(typeof t.score!="number")throw new Error("Score must be a number");if(t.score<0||t.score>100)throw new Error("Score must be a number between 0 and 100.");return O(t)},ge=t=>{if(!(t.prompt_input_variables instanceof Object))throw new Error("Prompt template input variable dictionary not provided.");return W(t)},Te=t=>j(t);var k=new Proxy({OpenAI:{},Anthropic:{},api_key:process.env.PROMPTLAYER_API_KEY,utils:E,track:M,groups:v,prompts:C,templates:J},{get:(t,e,r)=>{if(["OpenAI","Anthropic"].includes(e.toString())){let o=e==="OpenAI"?"openai":"@anthropic-ai/sdk",a=require(o).default;return Z(a,e.toString().toLowerCase(),e.toString().toLowerCase())}return Reflect.get(t,e,r)}});0&&(module.exports={promptlayer});
1
+ "use strict";var b=Object.defineProperty,ae=Object.defineProperties,ne=Object.getOwnPropertyDescriptor,se=Object.getOwnPropertyDescriptors,pe=Object.getOwnPropertyNames,D=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable;var H=(t,e)=>{if(e=Symbol[t])return e;throw Error("Symbol."+t+" is not defined")};var z=(t,e,r)=>e in t?b(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,y=(t,e)=>{for(var r in e||(e={}))F.call(e,r)&&z(t,r,e[r]);if(D)for(var r of D(e))ie.call(e,r)&&z(t,r,e[r]);return t},f=(t,e)=>ae(t,se(e));var d=(t,e)=>{for(var r in e)b(t,r,{get:e[r],enumerable:!0})},ce=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of pe(e))!F.call(t,a)&&a!==r&&b(t,a,{get:()=>e[a],enumerable:!(o=ne(e,a))||o.enumerable});return t};var le=t=>ce(b({},"__esModule",{value:!0}),t);var c=(t,e,r)=>new Promise((o,a)=>{var i=s=>{try{n(r.next(s))}catch(p){a(p)}},l=s=>{try{n(r.throw(s))}catch(p){a(p)}},n=s=>s.done?o(s.value):Promise.resolve(s.value).then(i,l);n((r=r.apply(t,e)).next())}),g=function(t,e){this[0]=t,this[1]=e},Q=(t,e,r)=>{var o=(l,n,s,p)=>{try{var w=r[l](n),T=(n=w.value)instanceof g,_=w.done;Promise.resolve(T?n[0]:n).then(h=>T?o(l==="return"?l:"next",n[1]?{done:h.done,value:h.value}:h,s,p):s({value:h,done:_})).catch(h=>o("throw",h,s,p))}catch(h){p(h)}},a=l=>i[l]=n=>new Promise((s,p)=>o(l,n,s,p)),i={};return r=r.apply(t,e),i[Symbol.asyncIterator]=()=>i,a("next"),a("throw"),a("return"),i};var V=(t,e,r)=>(e=t[H("asyncIterator")])?e.call(t):(t=t[H("iterator")](),e={},r=(o,a)=>(a=t[o])&&(e[o]=i=>new Promise((l,n,s)=>(i=a.call(t,i),s=i.done,Promise.resolve(i.value).then(p=>l({value:p,done:s}),n)))),r("next"),r("return"),e);var _e={};d(_e,{promptlayer:()=>L});module.exports=le(_e);var C={};d(C,{create:()=>he});var v={};d(v,{getApiKey:()=>m,getPromptTemplate:()=>E,promptLayerAllPromptTemplates:()=>S,promptLayerApiRequest:()=>A,promptLayerCreateGroup:()=>x,promptLayerGetPrompt:()=>G,promptLayerPublishPrompt:()=>I,promptLayerTrackGroup:()=>j,promptLayerTrackMetadata:()=>$,promptLayerTrackPrompt:()=>W,promptLayerTrackScore:()=>O,promptlayerApiHandler:()=>R,publishPromptTemplate:()=>q});var u="https://api.promptlayer.com",m=()=>{if(L.api_key===void 0)throw new Error("Please set your PROMPTLAYER_API_KEY environment variable or set API KEY in code using 'promptlayer.api_key = <your_api_key>' ");return L.api_key},R=t=>c(void 0,null,function*(){return t.request_response[Symbol.asyncIterator]!==void 0?ue(t.request_response,t):yield A(t)}),A=t=>c(void 0,null,function*(){try{let e=yield fetch(`${u}/track-request`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=yield e.json();if(e.status!==200&&P(r,"WARNING: While logging your request, PromptLayer experienced the following error:"),r&&t.return_pl_id)return[t.request_response,r.request_id]}catch(e){console.warn(`WARNING: While logging your request PromptLayer had the following error: ${e}`)}return t.request_response}),S=t=>c(void 0,null,function*(){let e=new URL(`${u}/rest/prompts`);Object.entries(t||{}).forEach(([r,o])=>e.searchParams.append(r,o));try{let r=yield fetch(e,{method:"GET",headers:{"Content-Type":"application/json","X-API-KEY":m()}}),o=yield r.json();return r.status!==200&&console.warn(`WARNING: While fetching all prompt templates, PromptLayer had the following error: ${JSON.stringify(o)}`),o}catch(r){console.warn(`WARNING: While fetching all prompt templates, PromptLayer had the following error: ${r}`)}}),G=t=>c(void 0,null,function*(){var i,l,n;let e={prompt_name:t.prompt_name,version:(l=(i=t.version)==null?void 0:i.toString())!=null?l:"",label:(n=t.label)!=null?n:""},r=new URL(`${u}/library-get-prompt-template`);r.search=new URLSearchParams(e).toString();let o;try{o=yield fetch(r.toString(),{method:"GET",headers:{"X-API-KEY":m()}})}catch(s){throw new Error(`PromptLayer had the following error while getting your prompt: ${s}`)}let a=yield o.json();return o.status!==200&&Z(a,"PromptLayer had the following error while retrieving your prompt template"),a}),I=t=>c(void 0,null,function*(){let e;try{e=yield fetch(`${u}/library-publish-prompt-template`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},t),{api_key:m()}))})}catch(o){throw new Error(`PromptLayer had the following error while publishing your prompt template: ${o}`)}let r=yield e.json();return e.status!==200&&Z(r,"PromptLayer had the following error while publishing your prompt"),!0}),$=t=>c(void 0,null,function*(){try{let e=yield fetch(`${u}/library-track-metadata`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},t),{api_key:m()}))}),r=yield e.json();if(e.status!==200)return P(r,"WARNING: While logging metadata to your request, PromptLayer experienced the following error"),!1}catch(e){return console.warn(`WARNING: While logging metadata to your request, PromptLayer experienced the following error: ${e}`),!1}return!0}),O=t=>c(void 0,null,function*(){try{let e=yield fetch(`${u}/library-track-score`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},t),{api_key:m()}))}),r=yield e.json();if(e.status!==200)return P(r,"WARNING: While scoring your request, PromptLayer experienced the following error"),!1}catch(e){return console.warn(`WARNING: While scoring your request, PromptLayer experienced the following error: ${e}`),!1}return!0}),W=t=>c(void 0,null,function*(){try{let e=yield fetch(`${u}/library-track-prompt`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},t),{api_key:m()}))}),r=yield e.json();if(e.status!==200)return P(r,"WARNING: While associating your request with a prompt template, PromptLayer experienced the following error"),!1}catch(e){return console.warn(`WARNING: While associating your request with a prompt template, PromptLayer experienced the following error: ${e}`),!1}return!0}),j=t=>c(void 0,null,function*(){try{let e=yield fetch(`${u}/track-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},t),{api_key:m()}))}),r=yield e.json();if(e.status!==200)return P(r,"WARNING: While associating your request with a group, PromptLayer experienced the following error"),!1}catch(e){return console.warn(`WARNING: While associating your request with a group, PromptLayer experienced the following error: ${e}`),!1}return!0}),x=()=>c(void 0,null,function*(){try{let t=yield fetch(`${u}/create-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({api_key:m()})}),e=yield t.json();return t.status!==200?(P(e,"WARNING: While creating a group PromptLayer had the following error"),!1):e.id}catch(t){return console.warn(`WARNING: While creating a group PromptLayer had the following error: ${t}`),!1}}),E=(t,e)=>c(void 0,null,function*(){try{let r=new URL(`${u}/prompt-templates/${t}`),o=yield fetch(r,{method:"POST",headers:{"Content-Type":"application/json","X-API-KEY":m()},body:JSON.stringify(f(y({},e),{api_key:m()}))}),a=yield o.json();return o.status!==200?(P(a,"WARNING: While fetching a prompt template PromptLayer had the following error"),null):a}catch(r){return console.warn(`WARNING: While fetching a prompt template PromptLayer had the following error: ${r}`),null}}),q=t=>c(void 0,null,function*(){try{let e=yield fetch(`${u}/rest/prompt-templates`,{method:"POST",headers:{"Content-Type":"application/json","X-API-KEY":m()},body:JSON.stringify(t)}),r=yield e.json();return e.status===400&&P(r,"WARNING: While publishing a prompt template PromptLayer had the following error"),r}catch(e){console.warn(`WARNING: While publishing a prompt template PromptLayer had the following error: ${e}`)}}),me=t=>{if("completion"in t[0])return t.reduce((e,r)=>f(y({},r),{completion:`${e.completion}${r.completion}`}),{});if("text"in t[0].choices[0]){let e="";for(let o of t)e=`${e}${o.choices[0].text}`;let r=structuredClone(t.at(-1));return r.choices[0].text=e,r}else if("delta"in t[0].choices[0]){let e={role:"",content:""};for(let o of t)"role"in o.choices[0].delta&&(e.role=o.choices[0].delta.role),"content"in o.choices[0].delta&&(e.content=`${e.content}${o.choices[0].delta.content}`);let r=structuredClone(t.at(-1));return r.choices[0]=e,r}return""};function ue(t,e){return Q(this,null,function*(){let r=[];try{for(var i=V(t),l,n,s;l=!(n=yield new g(i.next())).done;l=!1){let p=n.value;yield p,r.push(p)}}catch(n){s=[n]}finally{try{l&&(n=i.return)&&(yield new g(n.call(i)))}finally{if(s)throw s[0]}}let o=me(r);yield yield new g(A(f(y({},e),{request_response:o,request_end_time:new Date().toISOString()})))})}var P=(t,e)=>{try{console.warn(`${e}: ${t.message}`)}catch(r){console.warn(`${e}: ${t}`)}},Z=(t,e)=>{throw"message"in t?new Error(`${e}: ${t.message}`):new Error(`${e}: ${t.message}`)};var he=()=>c(void 0,null,function*(){return yield x()});var ee=(t,e="",r="openai")=>{let o={construct:(a,i)=>{let l=Reflect.construct(a,i);return Object.defineProperties(l,{function_name:{value:e,writable:!0},provider:{value:r}}),new Proxy(l,o)},get:(a,i,l)=>{let n=a[i],s=`${Reflect.get(a,"function_name")}.${i.toString()}`;return typeof n=="object"?(Object.defineProperties(n,{function_name:{value:s,writable:!0},provider:{value:r}}),new Proxy(n,o)):typeof n=="function"?(...p)=>{var M,U,B,X;let w=new Date().toISOString(),T=Reflect.get(a,"provider"),_=(M=p[0])==null?void 0:M.return_pl_id,h=(U=p[0])==null?void 0:U.pl_tags;(B=p[0])==null||delete B.return_pl_id,(X=p[0])==null||delete X.pl_tags;let k=Reflect.apply(n,a,p);return k instanceof Promise?new Promise((te,re)=>{k.then(N=>c(void 0,null,function*(){let oe=yield R({api_key:m(),provider_type:T,function_name:s,request_start_time:w,request_end_time:new Date().toISOString(),request_response:N,kwargs:p[0],return_pl_id:_,tags:h});te(oe)})).catch(N=>{re(N)})}):k}:Reflect.get(a,i,l)}};return new Proxy(t,o)};var J={};d(J,{all:()=>ye,get:()=>fe,publish:()=>Pe});var ye=t=>S(t),fe=t=>c(void 0,null,function*(){let e=yield G(t),r=e.prompt_template,o=e.metadata;return{prompt_template:r,metadata:o}}),Pe=t=>{let{prompt_template:e,commit_message:r}=t;if(r&&r.length>72)throw new Error("Commit message must be less than 72 characters.");if(!(e instanceof Object))throw new Error("Please provide a JSON prompt template.");return I(t)};var Y={};d(Y,{get:()=>de,publish:()=>ge});var de=(t,e)=>E(t,e),ge=t=>q(t);var K={};d(K,{group:()=>Le,metadata:()=>we,prompt:()=>be,score:()=>Te});var we=t=>{if(!(t.metadata instanceof Object))throw new Error("Please provide a dictionary of metadata.");for(let[e,r]of Object.entries(t.metadata))if(typeof e!="string"||typeof r!="string")throw new Error("Please provide a dictionary of metadata with key value pair of strings.");return $(t)},Te=t=>{if(typeof t.score!="number")throw new Error("Score must be a number");if(t.score<0||t.score>100)throw new Error("Score must be a number between 0 and 100.");return O(t)},be=t=>{if(!(t.prompt_input_variables instanceof Object))throw new Error("Prompt template input variable dictionary not provided.");return W(t)},Le=t=>j(t);var L=new Proxy({OpenAI:{},Anthropic:{},api_key:process.env.PROMPTLAYER_API_KEY,utils:v,track:K,groups:C,prompts:J,templates:Y},{get:(t,e,r)=>{if(["OpenAI","Anthropic"].includes(e.toString())){let o=e==="OpenAI"?"openai":"@anthropic-ai/sdk",a=require(o).default;return ee(a,e.toString().toLowerCase(),e.toString().toLowerCase())}return Reflect.get(t,e,r)}});0&&(module.exports={promptlayer});
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/groups.ts","../src/utils.ts","../src/promptlayer.ts","../src/prompts.ts","../src/templates.ts","../src/track.ts"],"sourcesContent":["import * as groups from \"@/groups\";\nimport { promptLayerBase } from \"@/promptlayer\";\nimport * as prompts from \"@/prompts\";\nimport * as templates from \"@/templates\";\nimport * as track from \"@/track\";\nimport * as utils from \"@/utils\";\n\nexport const promptlayer = new Proxy<{\n OpenAI: any;\n Anthropic: any;\n api_key: string | undefined;\n utils: typeof utils;\n track: typeof track;\n groups: typeof groups;\n prompts: typeof prompts;\n templates: typeof templates;\n}>(\n {\n OpenAI: {},\n Anthropic: {},\n api_key: process.env.PROMPTLAYER_API_KEY,\n utils,\n track,\n groups,\n prompts,\n templates,\n },\n {\n get: (target, prop, receiver) => {\n if ([\"OpenAI\", \"Anthropic\"].includes(prop.toString())) {\n const moduleName = prop === \"OpenAI\" ? \"openai\" : \"@anthropic-ai/sdk\";\n const module = require(moduleName).default;\n return promptLayerBase(\n module,\n prop.toString().toLowerCase(),\n prop.toString().toLowerCase()\n );\n }\n return Reflect.get(target, prop, receiver);\n },\n }\n);\n","import { promptLayerCreateGroup } from \"@/utils\";\n\nconst create = async (): Promise<number | boolean> =>\n await promptLayerCreateGroup();\n\nexport { create };\n","import { promptlayer } from \"@/index\";\nimport {\n GetPromptTemplate,\n GetPromptTemplateParams,\n Pagination,\n PublishPromptTemplate,\n TrackGroup,\n TrackMetadata,\n TrackPrompt,\n TrackRequest,\n TrackScore,\n} from \"@/types\";\n\nconst URL_API_PROMPTLAYER = \"https://api.promptlayer.com\";\n\nconst getApiKey = () => {\n if (promptlayer.api_key === undefined) {\n throw new Error(\n \"Please set your PROMPTLAYER_API_KEY environment variable or set API KEY in code using 'promptlayer.api_key = <your_api_key>' \"\n );\n } else {\n return promptlayer.api_key;\n }\n};\n\nconst promptlayerApiHandler = async <Item>(\n body: TrackRequest & {\n request_response: AsyncIterable<Item> | any;\n }\n) => {\n const isGenerator = body.request_response[Symbol.asyncIterator] !== undefined;\n if (isGenerator) {\n return proxyGenerator(body.request_response, body);\n }\n return await promptLayerApiRequest(body);\n};\n\nconst promptLayerApiRequest = async (body: TrackRequest) => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/track-request`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(body),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While logging your request, PromptLayer experienced the following error:\"\n );\n }\n if (data && body.return_pl_id) {\n return [body.request_response, data.request_id];\n }\n } catch (e) {\n console.warn(\n `WARNING: While logging your request PromptLayer had the following error: ${e}`\n );\n }\n return body.request_response;\n};\n\nconst promptLayerAllPromptTemplates = async (params?: Pagination) => {\n const url = new URL(`${URL_API_PROMPTLAYER}/rest/prompts`);\n Object.entries(params || {}).forEach(([key, value]) =>\n url.searchParams.append(key, value)\n );\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": getApiKey(),\n },\n });\n const data = await response.json();\n if (response.status !== 200) {\n console.warn(\n `WARNING: While fetching all prompt templates, PromptLayer had the following error: ${JSON.stringify(\n data\n )}`\n );\n }\n return data;\n } catch (e) {\n console.warn(\n `WARNING: While fetching all prompt templates, PromptLayer had the following error: ${e}`\n );\n }\n};\n\n/**\n * Get a prompt from the PromptLayer library\n * @param prompt_name name of the prompt to get\n * @param api_key your api key\n * @param version version of the prompt to get, None for latest\n * @param label The release label of a prompt you want to get. Setting this will supercede version\n */\nconst promptLayerGetPrompt = async (body: GetPromptTemplate) => {\n const params: Record<string, string> = {\n prompt_name: body.prompt_name,\n version: body.version?.toString() ?? \"\",\n label: body.label ?? \"\",\n };\n const url = new URL(`${URL_API_PROMPTLAYER}/library-get-prompt-template`);\n url.search = new URLSearchParams(params).toString();\n let response: Response;\n try {\n response = await fetch(url.toString(), {\n method: \"GET\",\n headers: {\n \"X-API-KEY\": getApiKey(),\n },\n });\n } catch (e) {\n throw new Error(\n `PromptLayer had the following error while getting your prompt: ${e}`\n );\n }\n const data = await response.json();\n if (response.status !== 200) {\n throwOnBadResponse(\n data,\n `PromptLayer had the following error while retrieving your prompt template`\n );\n }\n return data;\n};\n\nconst promptLayerPublishPrompt = async (\n body: PublishPromptTemplate\n): Promise<boolean> => {\n let response: Response;\n try {\n response = await fetch(\n `${URL_API_PROMPTLAYER}/library-publish-prompt-template`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n }\n );\n } catch (e) {\n throw new Error(\n `PromptLayer had the following error while publishing your prompt template: ${e}`\n );\n }\n const data = await response.json();\n if (response.status !== 200) {\n throwOnBadResponse(\n data,\n `PromptLayer had the following error while publishing your prompt`\n );\n }\n return true;\n};\n\nconst promptLayerTrackMetadata = async (\n body: TrackMetadata\n): Promise<boolean> => {\n try {\n const response = await fetch(\n `${URL_API_PROMPTLAYER}/library-track-metadata`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n }\n );\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While logging metadata to your request, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While logging metadata to your request, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerTrackScore = async (body: TrackScore): Promise<boolean> => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/library-track-score`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While scoring your request, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While scoring your request, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerTrackPrompt = async (body: TrackPrompt): Promise<boolean> => {\n try {\n const response = await fetch(\n `${URL_API_PROMPTLAYER}/library-track-prompt`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n }\n );\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While associating your request with a prompt template, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While associating your request with a prompt template, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerTrackGroup = async (body: TrackGroup): Promise<boolean> => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/track-group`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While associating your request with a group, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While associating your request with a group, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerCreateGroup = async (): Promise<number | boolean> => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/create-group`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n api_key: getApiKey(),\n }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While creating a group PromptLayer had the following error\"\n );\n return false;\n }\n return data.id;\n } catch (e) {\n console.warn(\n `WARNING: While creating a group PromptLayer had the following error: ${e}`\n );\n return false;\n }\n};\n\nconst getPromptTemplate = async (\n promptName: string,\n params?: Partial<GetPromptTemplateParams>\n) => {\n try {\n const url = new URL(\n `${URL_API_PROMPTLAYER}/prompt-templates/${promptName}`\n );\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": getApiKey(),\n },\n body: JSON.stringify({ ...params, api_key: getApiKey() }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While fetching a prompt template PromptLayer had the following error\"\n );\n return null;\n }\n return data;\n } catch (e) {\n console.warn(\n `WARNING: While fetching a prompt template PromptLayer had the following error: ${e}`\n );\n return null;\n }\n};\n\nconst cleaned_result = (results: any[]) => {\n if (\"completion\" in results[0])\n return results.reduce(\n (prev, current) => ({\n ...current,\n completion: `${prev.completion}${current.completion}`,\n }),\n {}\n );\n if (\"text\" in results[0].choices[0]) {\n let response = \"\";\n for (const result of results) {\n response = `${response}${result.choices[0].text}`;\n }\n const final_result = structuredClone(results.at(-1));\n final_result.choices[0].text = response;\n return final_result;\n } else if (\"delta\" in results[0].choices[0]) {\n let response = { role: \"\", content: \"\" };\n for (const result of results) {\n if (\"role\" in result.choices[0].delta) {\n response.role = result.choices[0].delta.role;\n }\n if (\"content\" in result.choices[0].delta) {\n response.content = `${response[\"content\"]}${result.choices[0].delta.content}`;\n }\n }\n const final_result = structuredClone(results.at(-1));\n final_result.choices[0] = response;\n return final_result;\n }\n return \"\";\n};\n\nasync function* proxyGenerator<Item>(\n generator: AsyncIterable<Item>,\n body: TrackRequest\n) {\n const results = [];\n for await (const value of generator) {\n yield value;\n results.push(value);\n }\n const request_response = cleaned_result(results);\n const response = await promptLayerApiRequest({\n ...body,\n request_response,\n request_end_time: new Date().toISOString(),\n });\n yield response;\n}\n\nconst warnOnBadResponse = (request_response: any, main_message: string) => {\n try {\n console.warn(`${main_message}: ${request_response.message}`);\n } catch (e) {\n console.warn(`${main_message}: ${request_response}`);\n }\n};\n\nconst throwOnBadResponse = (request_response: any, main_message: string) => {\n if (\"message\" in request_response) {\n throw new Error(`${main_message}: ${request_response.message}`);\n }\n throw new Error(`${main_message}: ${request_response.message}`);\n};\n\nexport {\n getApiKey,\n getPromptTemplate,\n promptLayerAllPromptTemplates,\n promptLayerApiRequest,\n promptLayerCreateGroup,\n promptLayerGetPrompt,\n promptLayerPublishPrompt,\n promptLayerTrackGroup,\n promptLayerTrackMetadata,\n promptLayerTrackPrompt,\n promptLayerTrackScore,\n promptlayerApiHandler,\n};\n","import { getApiKey, promptlayerApiHandler } from \"@/utils\";\n\nexport const promptLayerBase = (\n llm: object,\n function_name = \"\",\n provider = \"openai\"\n) => {\n const handler: ProxyHandler<any> = {\n construct: (target, args) => {\n const newTarget = Reflect.construct(target, args);\n Object.defineProperties(newTarget, {\n function_name: {\n value: function_name,\n writable: true,\n },\n provider: {\n value: provider,\n },\n });\n return new Proxy(newTarget, handler);\n },\n get: (target, prop, receiver) => {\n const value = target[prop];\n const function_name = `${Reflect.get(\n target,\n \"function_name\"\n )}.${prop.toString()}`;\n if (typeof value === \"object\") {\n Object.defineProperties(value, {\n function_name: {\n value: function_name,\n writable: true,\n },\n provider: {\n value: provider,\n },\n });\n return new Proxy(value, handler);\n }\n if (typeof value === \"function\") {\n return (...args: any[]) => {\n const request_start_time = new Date().toISOString();\n const provider_type = Reflect.get(target, \"provider\");\n const return_pl_id = args[0]?.return_pl_id;\n const pl_tags = args[0]?.pl_tags;\n delete args[0]?.return_pl_id;\n delete args[0]?.pl_tags;\n const response = Reflect.apply(value, target, args);\n if (response instanceof Promise) {\n return new Promise((resolve, reject) => {\n response\n .then(async (request_response) => {\n const response = await promptlayerApiHandler({\n api_key: getApiKey(),\n provider_type,\n function_name,\n request_start_time,\n request_end_time: new Date().toISOString(),\n request_response,\n kwargs: args[0],\n return_pl_id,\n tags: pl_tags,\n });\n resolve(response);\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n return response;\n };\n }\n return Reflect.get(target, prop, receiver);\n },\n };\n return new Proxy(llm, handler);\n};\n","import {\n GetPromptTemplate,\n Pagination,\n PromptTemplate,\n PublishPromptTemplate,\n} from \"@/types\";\nimport {\n promptLayerAllPromptTemplates,\n promptLayerGetPrompt,\n promptLayerPublishPrompt,\n} from \"@/utils\";\n\n/**\n * @description List all prompts on PromptLayer.\n * @param params\n */\nexport const all = (params?: Pagination) =>\n promptLayerAllPromptTemplates(params);\n/**\n * Get a prompt template from PromptLayer.\n */\nconst getPrompt = async (\n params: GetPromptTemplate\n): Promise<PromptTemplate> => {\n const prompt = await promptLayerGetPrompt(params);\n const prompt_template = prompt[\"prompt_template\"];\n const metadata = prompt[\"metadata\"];\n return {\n prompt_template,\n metadata,\n };\n};\n\nconst publishPrompt = (body: PublishPromptTemplate): Promise<boolean> => {\n const { prompt_template, commit_message } = body;\n if (commit_message && commit_message.length > 72) {\n throw new Error(\"Commit message must be less than 72 characters.\");\n }\n if (!(prompt_template instanceof Object)) {\n throw new Error(\"Please provide a JSON prompt template.\");\n }\n return promptLayerPublishPrompt(body);\n};\n\nexport { getPrompt as get, publishPrompt as publish };\n","import { GetPromptTemplateParams } from \"@/types\";\nimport { getPromptTemplate } from \"@/utils\";\n\nexport const get = (\n promptName: string,\n params?: Partial<GetPromptTemplateParams>\n) => getPromptTemplate(promptName, params);\n","import { TrackGroup, TrackMetadata, TrackPrompt, TrackScore } from \"@/types\";\nimport {\n promptLayerTrackGroup,\n promptLayerTrackMetadata,\n promptLayerTrackPrompt,\n promptLayerTrackScore,\n} from \"@/utils\";\n\nconst metadata = (body: TrackMetadata): Promise<boolean> => {\n if (!(body.metadata instanceof Object)) {\n throw new Error(\"Please provide a dictionary of metadata.\");\n }\n for (const [key, value] of Object.entries(body.metadata)) {\n if (typeof key !== \"string\" || typeof value !== \"string\") {\n throw new Error(\n \"Please provide a dictionary of metadata with key value pair of strings.\"\n );\n }\n }\n return promptLayerTrackMetadata(body);\n};\n\nconst score = (body: TrackScore): Promise<boolean> => {\n if (typeof body.score !== \"number\") {\n throw new Error(\"Score must be a number\");\n }\n if (body.score < 0 || body.score > 100) {\n throw new Error(\"Score must be a number between 0 and 100.\");\n }\n return promptLayerTrackScore(body);\n};\n\nconst prompt = (body: TrackPrompt): Promise<boolean> => {\n if (!(body.prompt_input_variables instanceof Object)) {\n throw new Error(\"Prompt template input variable dictionary not provided.\");\n }\n return promptLayerTrackPrompt(body);\n};\n\nconst group = (body: TrackGroup) => promptLayerTrackGroup(body);\n\nexport { group, metadata, prompt, score };\n"],"mappings":"gsDAAA,IAAAA,GAAA,GAAAC,EAAAD,GAAA,iBAAAE,IAAA,eAAAC,GAAAH,ICAA,IAAAI,EAAA,GAAAC,EAAAD,EAAA,YAAAE,KCAA,IAAAC,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,sBAAAC,EAAA,kCAAAC,EAAA,0BAAAC,EAAA,2BAAAC,EAAA,yBAAAC,EAAA,6BAAAC,EAAA,0BAAAC,EAAA,6BAAAC,EAAA,2BAAAC,EAAA,0BAAAC,EAAA,0BAAAC,IAaA,IAAMC,EAAsB,8BAEtBC,EAAY,IAAM,CACtB,GAAIC,EAAY,UAAY,OAC1B,MAAM,IAAI,MACR,+HACF,EAEA,OAAOA,EAAY,OAEvB,EAEMC,EACJC,GAGGC,EAAA,wBAEH,OADoBD,EAAK,iBAAiB,OAAO,aAAa,IAAM,OAE3DE,GAAeF,EAAK,iBAAkBA,CAAI,EAE5C,MAAMG,EAAsBH,CAAI,CACzC,GAEMG,EAA+BH,GAAuBC,EAAA,wBAC1D,GAAI,CACF,IAAMG,EAAW,MAAM,MAAM,GAAGR,CAAmB,iBAAkB,CACnE,OAAQ,OACR,QAAS,CACP,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAUI,CAAI,CAC3B,CAAC,EACKK,EAAO,MAAMD,EAAS,KAAK,EAOjC,GANIA,EAAS,SAAW,KACtBE,EACED,EACA,mFACF,EAEEA,GAAQL,EAAK,aACf,MAAO,CAACA,EAAK,iBAAkBK,EAAK,UAAU,CAElD,OAAS,EAAG,CACV,QAAQ,KACN,4EAA4E,CAAC,EAC/E,CACF,CACA,OAAOL,EAAK,gBACd,GAEMO,EAAuCC,GAAwBP,EAAA,wBACnE,IAAMQ,EAAM,IAAI,IAAI,GAAGb,CAAmB,eAAe,EACzD,OAAO,QAAQY,GAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAACE,EAAKC,CAAK,IAC/CF,EAAI,aAAa,OAAOC,EAAKC,CAAK,CACpC,EACA,GAAI,CACF,IAAMP,EAAW,MAAM,MAAMK,EAAK,CAChC,OAAQ,MACR,QAAS,CACP,eAAgB,mBAChB,YAAaZ,EAAU,CACzB,CACF,CAAC,EACKQ,EAAO,MAAMD,EAAS,KAAK,EACjC,OAAIA,EAAS,SAAW,KACtB,QAAQ,KACN,sFAAsF,KAAK,UACzFC,CACF,CAAC,EACH,EAEKA,CACT,OAASO,EAAG,CACV,QAAQ,KACN,sFAAsFA,CAAC,EACzF,CACF,CACF,GASMC,EAA8Bb,GAA4BC,EAAA,wBApGhE,IAAAa,EAAAC,EAAAC,EAqGE,IAAMR,EAAiC,CACrC,YAAaR,EAAK,YAClB,SAASe,GAAAD,EAAAd,EAAK,UAAL,YAAAc,EAAc,aAAd,KAAAC,EAA4B,GACrC,OAAOC,EAAAhB,EAAK,QAAL,KAAAgB,EAAc,EACvB,EACMP,EAAM,IAAI,IAAI,GAAGb,CAAmB,8BAA8B,EACxEa,EAAI,OAAS,IAAI,gBAAgBD,CAAM,EAAE,SAAS,EAClD,IAAIJ,EACJ,GAAI,CACFA,EAAW,MAAM,MAAMK,EAAI,SAAS,EAAG,CACrC,OAAQ,MACR,QAAS,CACP,YAAaZ,EAAU,CACzB,CACF,CAAC,CACH,OAASe,EAAG,CACV,MAAM,IAAI,MACR,kEAAkEA,CAAC,EACrE,CACF,CACA,IAAMP,EAAO,MAAMD,EAAS,KAAK,EACjC,OAAIA,EAAS,SAAW,KACtBa,EACEZ,EACA,2EACF,EAEKA,CACT,GAEMa,EACJlB,GACqBC,EAAA,wBACrB,IAAIG,EACJ,GAAI,CACFA,EAAW,MAAM,MACf,GAAGR,CAAmB,mCACtB,CACE,OAAQ,OACR,QAAS,CACP,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAUuB,EAAAC,EAAA,GAChBpB,GADgB,CAEnB,QAASH,EAAU,CACrB,EAAC,CACH,CACF,CACF,OAASe,EAAG,CACV,MAAM,IAAI,MACR,8EAA8EA,CAAC,EACjF,CACF,CACA,IAAMP,EAAO,MAAMD,EAAS,KAAK,EACjC,OAAIA,EAAS,SAAW,KACtBa,EACEZ,EACA,kEACF,EAEK,EACT,GAEMgB,EACJrB,GACqBC,EAAA,wBACrB,GAAI,CACF,IAAMG,EAAW,MAAM,MACrB,GAAGR,CAAmB,0BACtB,CACE,OAAQ,OACR,QAAS,CACP,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAUuB,EAAAC,EAAA,GAChBpB,GADgB,CAEnB,QAASH,EAAU,CACrB,EAAC,CACH,CACF,EACMQ,EAAO,MAAMD,EAAS,KAAK,EACjC,GAAIA,EAAS,SAAW,IACtB,OAAAE,EACED,EACA,8FACF,EACO,EAEX,OAAS,EAAG,CACV,eAAQ,KACN,iGAAiG,CAAC,EACpG,EACO,EACT,CACA,MAAO,EACT,GAEMiB,EAA+BtB,GAAuCC,EAAA,wBAC1E,GAAI,CACF,IAAMG,EAAW,MAAM,MAAM,GAAGR,CAAmB,uBAAwB,CACzE,OAAQ,OACR,QAAS,CACP,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAUuB,EAAAC,EAAA,GAChBpB,GADgB,CAEnB,QAASH,EAAU,CACrB,EAAC,CACH,CAAC,EACKQ,EAAO,MAAMD,EAAS,KAAK,EACjC,GAAIA,EAAS,SAAW,IACtB,OAAAE,EACED,EACA,kFACF,EACO,EAEX,OAAS,EAAG,CACV,eAAQ,KACN,qFAAqF,CAAC,EACxF,EACO,EACT,CACA,MAAO,EACT,GAEMkB,EAAgCvB,GAAwCC,EAAA,wBAC5E,GAAI,CACF,IAAMG,EAAW,MAAM,MACrB,GAAGR,CAAmB,wBACtB,CACE,OAAQ,OACR,QAAS,CACP,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAUuB,EAAAC,EAAA,GAChBpB,GADgB,CAEnB,QAASH,EAAU,CACrB,EAAC,CACH,CACF,EACMQ,EAAO,MAAMD,EAAS,KAAK,EACjC,GAAIA,EAAS,SAAW,IACtB,OAAAE,EACED,EACA,6GACF,EACO,EAEX,OAAS,EAAG,CACV,eAAQ,KACN,gHAAgH,CAAC,EACnH,EACO,EACT,CACA,MAAO,EACT,GAEMmB,EAA+BxB,GAAuCC,EAAA,wBAC1E,GAAI,CACF,IAAMG,EAAW,MAAM,MAAM,GAAGR,CAAmB,eAAgB,CACjE,OAAQ,OACR,QAAS,CACP,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAUuB,EAAAC,EAAA,GAChBpB,GADgB,CAEnB,QAASH,EAAU,CACrB,EAAC,CACH,CAAC,EACKQ,EAAO,MAAMD,EAAS,KAAK,EACjC,GAAIA,EAAS,SAAW,IACtB,OAAAE,EACED,EACA,mGACF,EACO,EAEX,OAAS,EAAG,CACV,eAAQ,KACN,sGAAsG,CAAC,EACzG,EACO,EACT,CACA,MAAO,EACT,GAEMoB,EAAyB,IAAuCxB,EAAA,wBACpE,GAAI,CACF,IAAMG,EAAW,MAAM,MAAM,GAAGR,CAAmB,gBAAiB,CAClE,OAAQ,OACR,QAAS,CACP,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CACnB,QAASC,EAAU,CACrB,CAAC,CACH,CAAC,EACKQ,EAAO,MAAMD,EAAS,KAAK,EACjC,OAAIA,EAAS,SAAW,KACtBE,EACED,EACA,qEACF,EACO,IAEFA,EAAK,EACd,OAASO,EAAG,CACV,eAAQ,KACN,wEAAwEA,CAAC,EAC3E,EACO,EACT,CACF,GAEMc,EAAoB,CACxBC,EACAnB,IACGP,EAAA,wBACH,GAAI,CACF,IAAMQ,EAAM,IAAI,IACd,GAAGb,CAAmB,qBAAqB+B,CAAU,EACvD,EACMvB,EAAW,MAAM,MAAMK,EAAK,CAChC,OAAQ,OACR,QAAS,CACP,eAAgB,mBAChB,YAAaZ,EAAU,CACzB,EACA,KAAM,KAAK,UAAUsB,EAAAC,EAAA,GAAKZ,GAAL,CAAa,QAASX,EAAU,CAAE,EAAC,CAC1D,CAAC,EACKQ,EAAO,MAAMD,EAAS,KAAK,EACjC,OAAIA,EAAS,SAAW,KACtBE,EACED,EACA,+EACF,EACO,MAEFA,CACT,OAASO,EAAG,CACV,eAAQ,KACN,kFAAkFA,CAAC,EACrF,EACO,IACT,CACF,GAEMgB,GAAkBC,GAAmB,CACzC,GAAI,eAAgBA,EAAQ,CAAC,EAC3B,OAAOA,EAAQ,OACb,CAACC,EAAMC,IAAaZ,EAAAC,EAAA,GACfW,GADe,CAElB,WAAY,GAAGD,EAAK,UAAU,GAAGC,EAAQ,UAAU,EACrD,GACA,CAAC,CACH,EACF,GAAI,SAAUF,EAAQ,CAAC,EAAE,QAAQ,CAAC,EAAG,CACnC,IAAIzB,EAAW,GACf,QAAW4B,KAAUH,EACnBzB,EAAW,GAAGA,CAAQ,GAAG4B,EAAO,QAAQ,CAAC,EAAE,IAAI,GAEjD,IAAMC,EAAe,gBAAgBJ,EAAQ,GAAG,EAAE,CAAC,EACnD,OAAAI,EAAa,QAAQ,CAAC,EAAE,KAAO7B,EACxB6B,CACT,SAAW,UAAWJ,EAAQ,CAAC,EAAE,QAAQ,CAAC,EAAG,CAC3C,IAAIzB,EAAW,CAAE,KAAM,GAAI,QAAS,EAAG,EACvC,QAAW4B,KAAUH,EACf,SAAUG,EAAO,QAAQ,CAAC,EAAE,QAC9B5B,EAAS,KAAO4B,EAAO,QAAQ,CAAC,EAAE,MAAM,MAEtC,YAAaA,EAAO,QAAQ,CAAC,EAAE,QACjC5B,EAAS,QAAU,GAAGA,EAAS,OAAU,GAAG4B,EAAO,QAAQ,CAAC,EAAE,MAAM,OAAO,IAG/E,IAAMC,EAAe,gBAAgBJ,EAAQ,GAAG,EAAE,CAAC,EACnD,OAAAI,EAAa,QAAQ,CAAC,EAAI7B,EACnB6B,CACT,CACA,MAAO,EACT,EAEA,SAAgB/B,GACdgC,EACAlC,EACA,QAAAmC,EAAA,sBACA,IAAMN,EAAU,CAAC,EACjB,YAAAO,EAAAC,EAA0BH,GAA1BI,EAAAC,EAAAC,EAAAF,EAAA,EAAAC,EAAA,UAAAE,EAAAL,EAAA,cAAAE,EAAA,GACE,CADS,IAAM3B,EAAjB4B,EAAA,MACE,MAAM5B,EACNkB,EAAQ,KAAKlB,CAAK,SAFpB4B,EApYF,CAoYEC,EAAA,CAAAD,UAAA,KAAAD,IAAAC,EAAAH,EAAA,oBAAAK,EAAAF,EAAA,KAAAH,YAAA,IAAAI,EAAA,MAAAA,EAAA,IAIA,IAAME,EAAmBd,GAAeC,CAAO,EAM/C,MALiB,UAAAY,EAAMtC,EAAsBgB,EAAAC,EAAA,GACxCpB,GADwC,CAE3C,iBAAA0C,EACA,iBAAkB,IAAI,KAAK,EAAE,YAAY,CAC3C,EAAC,EAEH,GAEA,IAAMpC,EAAoB,CAACoC,EAAuBC,IAAyB,CACzE,GAAI,CACF,QAAQ,KAAK,GAAGA,CAAY,KAAKD,EAAiB,OAAO,EAAE,CAC7D,OAAS9B,EAAG,CACV,QAAQ,KAAK,GAAG+B,CAAY,KAAKD,CAAgB,EAAE,CACrD,CACF,EAEMzB,EAAqB,CAACyB,EAAuBC,IAAyB,CAC1E,KAAI,YAAaD,EACT,IAAI,MAAM,GAAGC,CAAY,KAAKD,EAAiB,OAAO,EAAE,EAE1D,IAAI,MAAM,GAAGC,CAAY,KAAKD,EAAiB,OAAO,EAAE,CAChE,ED5ZA,IAAME,GAAS,IAAoCC,EAAA,wBACjD,aAAMC,EAAuB,IEDxB,IAAMC,EAAkB,CAC7BC,EACAC,EAAgB,GAChBC,EAAW,WACR,CACH,IAAMC,EAA6B,CACjC,UAAW,CAACC,EAAQC,IAAS,CAC3B,IAAMC,EAAY,QAAQ,UAAUF,EAAQC,CAAI,EAChD,cAAO,iBAAiBC,EAAW,CACjC,cAAe,CACb,MAAOL,EACP,SAAU,EACZ,EACA,SAAU,CACR,MAAOC,CACT,CACF,CAAC,EACM,IAAI,MAAMI,EAAWH,CAAO,CACrC,EACA,IAAK,CAACC,EAAQG,EAAMC,IAAa,CAC/B,IAAMC,EAAQL,EAAOG,CAAI,EACnBN,EAAgB,GAAG,QAAQ,IAC/BG,EACA,eACF,CAAC,IAAIG,EAAK,SAAS,CAAC,GACpB,OAAI,OAAOE,GAAU,UACnB,OAAO,iBAAiBA,EAAO,CAC7B,cAAe,CACb,MAAOR,EACP,SAAU,EACZ,EACA,SAAU,CACR,MAAOC,CACT,CACF,CAAC,EACM,IAAI,MAAMO,EAAON,CAAO,GAE7B,OAAOM,GAAU,WACZ,IAAIJ,IAAgB,CAxCnC,IAAAK,EAAAC,EAAAC,EAAAC,EAyCU,IAAMC,EAAqB,IAAI,KAAK,EAAE,YAAY,EAC5CC,EAAgB,QAAQ,IAAIX,EAAQ,UAAU,EAC9CY,GAAeN,EAAAL,EAAK,CAAC,IAAN,YAAAK,EAAS,aACxBO,GAAUN,EAAAN,EAAK,CAAC,IAAN,YAAAM,EAAS,SACzBC,EAAOP,EAAK,CAAC,IAAb,aAAAO,EAAgB,cAChBC,EAAOR,EAAK,CAAC,IAAb,aAAAQ,EAAgB,QAChB,IAAMK,EAAW,QAAQ,MAAMT,EAAOL,EAAQC,CAAI,EAClD,OAAIa,aAAoB,QACf,IAAI,QAAQ,CAACC,GAASC,KAAW,CACtCF,EACG,KAAYG,GAAqBC,EAAA,wBAChC,IAAMJ,GAAW,MAAMK,EAAsB,CAC3C,QAASC,EAAU,EACnB,cAAAT,EACA,cAAAd,EACA,mBAAAa,EACA,iBAAkB,IAAI,KAAK,EAAE,YAAY,EACzC,iBAAAO,EACA,OAAQhB,EAAK,CAAC,EACd,aAAAW,EACA,KAAMC,CACR,CAAC,EACDE,GAAQD,EAAQ,CAClB,EAAC,EACA,MAAOO,GAAU,CAChBL,GAAOK,CAAK,CACd,CAAC,CACL,CAAC,EAEIP,CACT,EAEK,QAAQ,IAAId,EAAQG,EAAMC,CAAQ,CAC3C,CACF,EACA,OAAO,IAAI,MAAMR,EAAKG,CAAO,CAC/B,EC7EA,IAAAuB,EAAA,GAAAC,EAAAD,EAAA,SAAAE,GAAA,QAAAC,GAAA,YAAAC,KAgBO,IAAMC,GAAOC,GAClBC,EAA8BD,CAAM,EAIhCE,GACJF,GAC4BG,EAAA,wBAC5B,IAAMC,EAAS,MAAMC,EAAqBL,CAAM,EAC1CM,EAAkBF,EAAO,gBACzBG,EAAWH,EAAO,SACxB,MAAO,CACL,gBAAAE,EACA,SAAAC,CACF,CACF,GAEMC,GAAiBC,GAAkD,CACvE,GAAM,CAAE,gBAAAH,EAAiB,eAAAI,CAAe,EAAID,EAC5C,GAAIC,GAAkBA,EAAe,OAAS,GAC5C,MAAM,IAAI,MAAM,iDAAiD,EAEnE,GAAI,EAAEJ,aAA2B,QAC/B,MAAM,IAAI,MAAM,wCAAwC,EAE1D,OAAOK,EAAyBF,CAAI,CACtC,EC1CA,IAAAG,EAAA,GAAAC,EAAAD,EAAA,SAAAE,KAGO,IAAMC,GAAM,CACjBC,EACAC,IACGC,EAAkBF,EAAYC,CAAM,ECNzC,IAAAE,EAAA,GAAAC,EAAAD,EAAA,WAAAE,GAAA,aAAAC,GAAA,WAAAC,GAAA,UAAAC,KAQA,IAAMC,GAAYC,GAA0C,CAC1D,GAAI,EAAEA,EAAK,oBAAoB,QAC7B,MAAM,IAAI,MAAM,0CAA0C,EAE5D,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQF,EAAK,QAAQ,EACrD,GAAI,OAAOC,GAAQ,UAAY,OAAOC,GAAU,SAC9C,MAAM,IAAI,MACR,yEACF,EAGJ,OAAOC,EAAyBH,CAAI,CACtC,EAEMI,GAASJ,GAAuC,CACpD,GAAI,OAAOA,EAAK,OAAU,SACxB,MAAM,IAAI,MAAM,wBAAwB,EAE1C,GAAIA,EAAK,MAAQ,GAAKA,EAAK,MAAQ,IACjC,MAAM,IAAI,MAAM,2CAA2C,EAE7D,OAAOK,EAAsBL,CAAI,CACnC,EAEMM,GAAUN,GAAwC,CACtD,GAAI,EAAEA,EAAK,kCAAkC,QAC3C,MAAM,IAAI,MAAM,yDAAyD,EAE3E,OAAOO,EAAuBP,CAAI,CACpC,EAEMQ,GAASR,GAAqBS,EAAsBT,CAAI,ENhCvD,IAAMU,EAAc,IAAI,MAU7B,CACE,OAAQ,CAAC,EACT,UAAW,CAAC,EACZ,QAAS,QAAQ,IAAI,oBACrB,MAAAC,EACA,MAAAC,EACA,OAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EACA,CACE,IAAK,CAACC,EAAQC,EAAMC,IAAa,CAC/B,GAAI,CAAC,SAAU,WAAW,EAAE,SAASD,EAAK,SAAS,CAAC,EAAG,CACrD,IAAME,EAAaF,IAAS,SAAW,SAAW,oBAC5CG,EAAS,QAAQD,CAAU,EAAE,QACnC,OAAOE,EACLD,EACAH,EAAK,SAAS,EAAE,YAAY,EAC5BA,EAAK,SAAS,EAAE,YAAY,CAC9B,CACF,CACA,OAAO,QAAQ,IAAID,EAAQC,EAAMC,CAAQ,CAC3C,CACF,CACF","names":["src_exports","__export","promptlayer","__toCommonJS","groups_exports","__export","create","utils_exports","__export","getApiKey","getPromptTemplate","promptLayerAllPromptTemplates","promptLayerApiRequest","promptLayerCreateGroup","promptLayerGetPrompt","promptLayerPublishPrompt","promptLayerTrackGroup","promptLayerTrackMetadata","promptLayerTrackPrompt","promptLayerTrackScore","promptlayerApiHandler","URL_API_PROMPTLAYER","getApiKey","promptlayer","promptlayerApiHandler","body","__async","proxyGenerator","promptLayerApiRequest","response","data","warnOnBadResponse","promptLayerAllPromptTemplates","params","url","key","value","e","promptLayerGetPrompt","_a","_b","_c","throwOnBadResponse","promptLayerPublishPrompt","__spreadProps","__spreadValues","promptLayerTrackMetadata","promptLayerTrackScore","promptLayerTrackPrompt","promptLayerTrackGroup","promptLayerCreateGroup","getPromptTemplate","promptName","cleaned_result","results","prev","current","result","final_result","generator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","request_response","main_message","create","__async","promptLayerCreateGroup","promptLayerBase","llm","function_name","provider","handler","target","args","newTarget","prop","receiver","value","_a","_b","_c","_d","request_start_time","provider_type","return_pl_id","pl_tags","response","resolve","reject","request_response","__async","promptlayerApiHandler","getApiKey","error","prompts_exports","__export","all","getPrompt","publishPrompt","all","params","promptLayerAllPromptTemplates","getPrompt","__async","prompt","promptLayerGetPrompt","prompt_template","metadata","publishPrompt","body","commit_message","promptLayerPublishPrompt","templates_exports","__export","get","get","promptName","params","getPromptTemplate","track_exports","__export","group","metadata","prompt","score","metadata","body","key","value","promptLayerTrackMetadata","score","promptLayerTrackScore","prompt","promptLayerTrackPrompt","group","promptLayerTrackGroup","promptlayer","utils_exports","track_exports","groups_exports","prompts_exports","templates_exports","target","prop","receiver","moduleName","module","promptLayerBase"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/groups.ts","../src/utils.ts","../src/promptlayer.ts","../src/prompts.ts","../src/templates.ts","../src/track.ts"],"sourcesContent":["import * as groups from \"@/groups\";\nimport { promptLayerBase } from \"@/promptlayer\";\nimport * as prompts from \"@/prompts\";\nimport * as templates from \"@/templates\";\nimport * as track from \"@/track\";\nimport * as utils from \"@/utils\";\n\nexport const promptlayer = new Proxy<{\n OpenAI: any;\n Anthropic: any;\n api_key: string | undefined;\n utils: typeof utils;\n track: typeof track;\n groups: typeof groups;\n prompts: typeof prompts;\n templates: typeof templates;\n}>(\n {\n OpenAI: {},\n Anthropic: {},\n api_key: process.env.PROMPTLAYER_API_KEY,\n utils,\n track,\n groups,\n prompts,\n templates,\n },\n {\n get: (target, prop, receiver) => {\n if ([\"OpenAI\", \"Anthropic\"].includes(prop.toString())) {\n const moduleName = prop === \"OpenAI\" ? \"openai\" : \"@anthropic-ai/sdk\";\n const module = require(moduleName).default;\n return promptLayerBase(\n module,\n prop.toString().toLowerCase(),\n prop.toString().toLowerCase()\n );\n }\n return Reflect.get(target, prop, receiver);\n },\n }\n);\n","import { promptLayerCreateGroup } from \"@/utils\";\n\nconst create = async (): Promise<number | boolean> =>\n await promptLayerCreateGroup();\n\nexport { create };\n","import { promptlayer } from \"@/index\";\nimport {\n GetPromptTemplate,\n GetPromptTemplateParams,\n LegacyPublishPromptTemplate,\n Pagination,\n PublishPromptTemplate,\n PublishPromptTemplateResponse,\n TrackGroup,\n TrackMetadata,\n TrackPrompt,\n TrackRequest,\n TrackScore,\n} from \"@/types\";\n\nconst URL_API_PROMPTLAYER = \"https://api.promptlayer.com\";\n\nconst getApiKey = () => {\n if (promptlayer.api_key === undefined) {\n throw new Error(\n \"Please set your PROMPTLAYER_API_KEY environment variable or set API KEY in code using 'promptlayer.api_key = <your_api_key>' \"\n );\n } else {\n return promptlayer.api_key;\n }\n};\n\nconst promptlayerApiHandler = async <Item>(\n body: TrackRequest & {\n request_response: AsyncIterable<Item> | any;\n }\n) => {\n const isGenerator = body.request_response[Symbol.asyncIterator] !== undefined;\n if (isGenerator) {\n return proxyGenerator(body.request_response, body);\n }\n return await promptLayerApiRequest(body);\n};\n\nconst promptLayerApiRequest = async (body: TrackRequest) => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/track-request`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(body),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While logging your request, PromptLayer experienced the following error:\"\n );\n }\n if (data && body.return_pl_id) {\n return [body.request_response, data.request_id];\n }\n } catch (e) {\n console.warn(\n `WARNING: While logging your request PromptLayer had the following error: ${e}`\n );\n }\n return body.request_response;\n};\n\nconst promptLayerAllPromptTemplates = async (params?: Pagination) => {\n const url = new URL(`${URL_API_PROMPTLAYER}/rest/prompts`);\n Object.entries(params || {}).forEach(([key, value]) =>\n url.searchParams.append(key, value)\n );\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": getApiKey(),\n },\n });\n const data = await response.json();\n if (response.status !== 200) {\n console.warn(\n `WARNING: While fetching all prompt templates, PromptLayer had the following error: ${JSON.stringify(\n data\n )}`\n );\n }\n return data;\n } catch (e) {\n console.warn(\n `WARNING: While fetching all prompt templates, PromptLayer had the following error: ${e}`\n );\n }\n};\n\n/**\n * Get a prompt from the PromptLayer library\n * @param prompt_name name of the prompt to get\n * @param api_key your api key\n * @param version version of the prompt to get, None for latest\n * @param label The release label of a prompt you want to get. Setting this will supercede version\n */\nconst promptLayerGetPrompt = async (body: GetPromptTemplate) => {\n const params: Record<string, string> = {\n prompt_name: body.prompt_name,\n version: body.version?.toString() ?? \"\",\n label: body.label ?? \"\",\n };\n const url = new URL(`${URL_API_PROMPTLAYER}/library-get-prompt-template`);\n url.search = new URLSearchParams(params).toString();\n let response: Response;\n try {\n response = await fetch(url.toString(), {\n method: \"GET\",\n headers: {\n \"X-API-KEY\": getApiKey(),\n },\n });\n } catch (e) {\n throw new Error(\n `PromptLayer had the following error while getting your prompt: ${e}`\n );\n }\n const data = await response.json();\n if (response.status !== 200) {\n throwOnBadResponse(\n data,\n `PromptLayer had the following error while retrieving your prompt template`\n );\n }\n return data;\n};\n\nconst promptLayerPublishPrompt = async (\n body: LegacyPublishPromptTemplate\n): Promise<boolean> => {\n let response: Response;\n try {\n response = await fetch(\n `${URL_API_PROMPTLAYER}/library-publish-prompt-template`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n }\n );\n } catch (e) {\n throw new Error(\n `PromptLayer had the following error while publishing your prompt template: ${e}`\n );\n }\n const data = await response.json();\n if (response.status !== 200) {\n throwOnBadResponse(\n data,\n `PromptLayer had the following error while publishing your prompt`\n );\n }\n return true;\n};\n\nconst promptLayerTrackMetadata = async (\n body: TrackMetadata\n): Promise<boolean> => {\n try {\n const response = await fetch(\n `${URL_API_PROMPTLAYER}/library-track-metadata`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n }\n );\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While logging metadata to your request, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While logging metadata to your request, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerTrackScore = async (body: TrackScore): Promise<boolean> => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/library-track-score`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While scoring your request, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While scoring your request, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerTrackPrompt = async (body: TrackPrompt): Promise<boolean> => {\n try {\n const response = await fetch(\n `${URL_API_PROMPTLAYER}/library-track-prompt`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n }\n );\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While associating your request with a prompt template, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While associating your request with a prompt template, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerTrackGroup = async (body: TrackGroup): Promise<boolean> => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/track-group`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n ...body,\n api_key: getApiKey(),\n }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While associating your request with a group, PromptLayer experienced the following error\"\n );\n return false;\n }\n } catch (e) {\n console.warn(\n `WARNING: While associating your request with a group, PromptLayer experienced the following error: ${e}`\n );\n return false;\n }\n return true;\n};\n\nconst promptLayerCreateGroup = async (): Promise<number | boolean> => {\n try {\n const response = await fetch(`${URL_API_PROMPTLAYER}/create-group`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n api_key: getApiKey(),\n }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While creating a group PromptLayer had the following error\"\n );\n return false;\n }\n return data.id;\n } catch (e) {\n console.warn(\n `WARNING: While creating a group PromptLayer had the following error: ${e}`\n );\n return false;\n }\n};\n\nconst getPromptTemplate = async (\n promptName: string,\n params?: Partial<GetPromptTemplateParams>\n) => {\n try {\n const url = new URL(\n `${URL_API_PROMPTLAYER}/prompt-templates/${promptName}`\n );\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": getApiKey(),\n },\n body: JSON.stringify({ ...params, api_key: getApiKey() }),\n });\n const data = await response.json();\n if (response.status !== 200) {\n warnOnBadResponse(\n data,\n \"WARNING: While fetching a prompt template PromptLayer had the following error\"\n );\n return null;\n }\n return data;\n } catch (e) {\n console.warn(\n `WARNING: While fetching a prompt template PromptLayer had the following error: ${e}`\n );\n return null;\n }\n};\n\nconst publishPromptTemplate = async (body: PublishPromptTemplate) => {\n try {\n const response = await fetch(\n `${URL_API_PROMPTLAYER}/rest/prompt-templates`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": getApiKey(),\n },\n body: JSON.stringify(body),\n }\n );\n const data = await response.json();\n if (response.status === 400) {\n warnOnBadResponse(\n data,\n \"WARNING: While publishing a prompt template PromptLayer had the following error\"\n );\n }\n return data as Promise<PublishPromptTemplateResponse>;\n } catch (e) {\n console.warn(\n `WARNING: While publishing a prompt template PromptLayer had the following error: ${e}`\n );\n }\n};\n\nconst cleaned_result = (results: any[]) => {\n if (\"completion\" in results[0])\n return results.reduce(\n (prev, current) => ({\n ...current,\n completion: `${prev.completion}${current.completion}`,\n }),\n {}\n );\n if (\"text\" in results[0].choices[0]) {\n let response = \"\";\n for (const result of results) {\n response = `${response}${result.choices[0].text}`;\n }\n const final_result = structuredClone(results.at(-1));\n final_result.choices[0].text = response;\n return final_result;\n } else if (\"delta\" in results[0].choices[0]) {\n let response = { role: \"\", content: \"\" };\n for (const result of results) {\n if (\"role\" in result.choices[0].delta) {\n response.role = result.choices[0].delta.role;\n }\n if (\"content\" in result.choices[0].delta) {\n response.content = `${response[\"content\"]}${result.choices[0].delta.content}`;\n }\n }\n const final_result = structuredClone(results.at(-1));\n final_result.choices[0] = response;\n return final_result;\n }\n return \"\";\n};\n\nasync function* proxyGenerator<Item>(\n generator: AsyncIterable<Item>,\n body: TrackRequest\n) {\n const results = [];\n for await (const value of generator) {\n yield value;\n results.push(value);\n }\n const request_response = cleaned_result(results);\n const response = await promptLayerApiRequest({\n ...body,\n request_response,\n request_end_time: new Date().toISOString(),\n });\n yield response;\n}\n\nconst warnOnBadResponse = (request_response: any, main_message: string) => {\n try {\n console.warn(`${main_message}: ${request_response.message}`);\n } catch (e) {\n console.warn(`${main_message}: ${request_response}`);\n }\n};\n\nconst throwOnBadResponse = (request_response: any, main_message: string) => {\n if (\"message\" in request_response) {\n throw new Error(`${main_message}: ${request_response.message}`);\n }\n throw new Error(`${main_message}: ${request_response.message}`);\n};\n\nexport {\n getApiKey,\n getPromptTemplate,\n promptLayerAllPromptTemplates,\n promptLayerApiRequest,\n promptLayerCreateGroup,\n promptLayerGetPrompt,\n promptLayerPublishPrompt,\n promptLayerTrackGroup,\n promptLayerTrackMetadata,\n promptLayerTrackPrompt,\n promptLayerTrackScore,\n promptlayerApiHandler,\n publishPromptTemplate,\n};\n","import { getApiKey, promptlayerApiHandler } from \"@/utils\";\n\nexport const promptLayerBase = (\n llm: object,\n function_name = \"\",\n provider = \"openai\"\n) => {\n const handler: ProxyHandler<any> = {\n construct: (target, args) => {\n const newTarget = Reflect.construct(target, args);\n Object.defineProperties(newTarget, {\n function_name: {\n value: function_name,\n writable: true,\n },\n provider: {\n value: provider,\n },\n });\n return new Proxy(newTarget, handler);\n },\n get: (target, prop, receiver) => {\n const value = target[prop];\n const function_name = `${Reflect.get(\n target,\n \"function_name\"\n )}.${prop.toString()}`;\n if (typeof value === \"object\") {\n Object.defineProperties(value, {\n function_name: {\n value: function_name,\n writable: true,\n },\n provider: {\n value: provider,\n },\n });\n return new Proxy(value, handler);\n }\n if (typeof value === \"function\") {\n return (...args: any[]) => {\n const request_start_time = new Date().toISOString();\n const provider_type = Reflect.get(target, \"provider\");\n const return_pl_id = args[0]?.return_pl_id;\n const pl_tags = args[0]?.pl_tags;\n delete args[0]?.return_pl_id;\n delete args[0]?.pl_tags;\n const response = Reflect.apply(value, target, args);\n if (response instanceof Promise) {\n return new Promise((resolve, reject) => {\n response\n .then(async (request_response) => {\n const response = await promptlayerApiHandler({\n api_key: getApiKey(),\n provider_type,\n function_name,\n request_start_time,\n request_end_time: new Date().toISOString(),\n request_response,\n kwargs: args[0],\n return_pl_id,\n tags: pl_tags,\n });\n resolve(response);\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n return response;\n };\n }\n return Reflect.get(target, prop, receiver);\n },\n };\n return new Proxy(llm, handler);\n};\n","import {\n GetPromptTemplate,\n LegacyPromptTemplate,\n LegacyPublishPromptTemplate,\n Pagination,\n} from \"@/types\";\nimport {\n promptLayerAllPromptTemplates,\n promptLayerGetPrompt,\n promptLayerPublishPrompt,\n} from \"@/utils\";\n\n/**\n * @description List all prompts on PromptLayer.\n * @param params\n */\nexport const all = (params?: Pagination) =>\n promptLayerAllPromptTemplates(params);\n/**\n * Get a prompt template from PromptLayer.\n */\nconst getPrompt = async (\n params: GetPromptTemplate\n): Promise<LegacyPromptTemplate> => {\n const prompt = await promptLayerGetPrompt(params);\n const prompt_template = prompt[\"prompt_template\"];\n const metadata = prompt[\"metadata\"];\n return {\n prompt_template,\n metadata,\n };\n};\n\nconst publishPrompt = (body: LegacyPublishPromptTemplate): Promise<boolean> => {\n const { prompt_template, commit_message } = body;\n if (commit_message && commit_message.length > 72) {\n throw new Error(\"Commit message must be less than 72 characters.\");\n }\n if (!(prompt_template instanceof Object)) {\n throw new Error(\"Please provide a JSON prompt template.\");\n }\n return promptLayerPublishPrompt(body);\n};\n\nexport { getPrompt as get, publishPrompt as publish };\n","import { GetPromptTemplateParams, PublishPromptTemplate } from \"@/types\";\nimport { getPromptTemplate, publishPromptTemplate } from \"@/utils\";\n\nexport const get = (\n promptName: string,\n params?: Partial<GetPromptTemplateParams>\n) => getPromptTemplate(promptName, params);\n\nexport const publish = (body: PublishPromptTemplate) =>\n publishPromptTemplate(body);\n","import { TrackGroup, TrackMetadata, TrackPrompt, TrackScore } from \"@/types\";\nimport {\n promptLayerTrackGroup,\n promptLayerTrackMetadata,\n promptLayerTrackPrompt,\n promptLayerTrackScore,\n} from \"@/utils\";\n\nconst metadata = (body: TrackMetadata): Promise<boolean> => {\n if (!(body.metadata instanceof Object)) {\n throw new Error(\"Please provide a dictionary of metadata.\");\n }\n for (const [key, value] of Object.entries(body.metadata)) {\n if (typeof key !== \"string\" || typeof value !== \"string\") {\n throw new Error(\n \"Please provide a dictionary of metadata with key value pair of strings.\"\n );\n }\n }\n return promptLayerTrackMetadata(body);\n};\n\nconst score = (body: TrackScore): Promise<boolean> => {\n if (typeof body.score !== \"number\") {\n throw new Error(\"Score must be a number\");\n }\n if (body.score < 0 || body.score > 100) {\n throw new Error(\"Score must be a number between 0 and 100.\");\n }\n return promptLayerTrackScore(body);\n};\n\nconst prompt = (body: TrackPrompt): Promise<boolean> => {\n if (!(body.prompt_input_variables instanceof Object)) {\n throw new Error(\"Prompt template input variable dictionary not provided.\");\n }\n return promptLayerTrackPrompt(body);\n};\n\nconst group = (body: TrackGroup) => promptLayerTrackGroup(body);\n\nexport { group, metadata, prompt, score };\n"],"mappings":"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","names":["src_exports","__export","promptlayer","__toCommonJS","groups_exports","__export","create","utils_exports","__export","getApiKey","getPromptTemplate","promptLayerAllPromptTemplates","promptLayerApiRequest","promptLayerCreateGroup","promptLayerGetPrompt","promptLayerPublishPrompt","promptLayerTrackGroup","promptLayerTrackMetadata","promptLayerTrackPrompt","promptLayerTrackScore","promptlayerApiHandler","publishPromptTemplate","URL_API_PROMPTLAYER","getApiKey","promptlayer","promptlayerApiHandler","body","__async","proxyGenerator","promptLayerApiRequest","response","data","warnOnBadResponse","promptLayerAllPromptTemplates","params","url","key","value","e","promptLayerGetPrompt","_a","_b","_c","throwOnBadResponse","promptLayerPublishPrompt","__spreadProps","__spreadValues","promptLayerTrackMetadata","promptLayerTrackScore","promptLayerTrackPrompt","promptLayerTrackGroup","promptLayerCreateGroup","getPromptTemplate","promptName","publishPromptTemplate","cleaned_result","results","prev","current","result","final_result","generator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","request_response","main_message","create","__async","promptLayerCreateGroup","promptLayerBase","llm","function_name","provider","handler","target","args","newTarget","prop","receiver","value","_a","_b","_c","_d","request_start_time","provider_type","return_pl_id","pl_tags","response","resolve","reject","request_response","__async","promptlayerApiHandler","getApiKey","error","prompts_exports","__export","all","getPrompt","publishPrompt","all","params","promptLayerAllPromptTemplates","getPrompt","__async","prompt","promptLayerGetPrompt","prompt_template","metadata","publishPrompt","body","commit_message","promptLayerPublishPrompt","templates_exports","__export","get","publish","get","promptName","params","getPromptTemplate","publish","body","publishPromptTemplate","track_exports","__export","group","metadata","prompt","score","metadata","body","key","value","promptLayerTrackMetadata","score","promptLayerTrackScore","prompt","promptLayerTrackPrompt","group","promptLayerTrackGroup","promptlayer","utils_exports","track_exports","groups_exports","prompts_exports","templates_exports","target","prop","receiver","moduleName","module","promptLayerBase"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "promptlayer",
3
3
  "license": "MIT",
4
- "version": "0.0.7",
4
+ "version": "0.0.8",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
7
7
  "types": "dist/index.d.ts",
package/src/prompts.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  GetPromptTemplate,
3
+ LegacyPromptTemplate,
4
+ LegacyPublishPromptTemplate,
3
5
  Pagination,
4
- PromptTemplate,
5
- PublishPromptTemplate,
6
6
  } from "@/types";
7
7
  import {
8
8
  promptLayerAllPromptTemplates,
@@ -21,7 +21,7 @@ export const all = (params?: Pagination) =>
21
21
  */
22
22
  const getPrompt = async (
23
23
  params: GetPromptTemplate
24
- ): Promise<PromptTemplate> => {
24
+ ): Promise<LegacyPromptTemplate> => {
25
25
  const prompt = await promptLayerGetPrompt(params);
26
26
  const prompt_template = prompt["prompt_template"];
27
27
  const metadata = prompt["metadata"];
@@ -31,7 +31,7 @@ const getPrompt = async (
31
31
  };
32
32
  };
33
33
 
34
- const publishPrompt = (body: PublishPromptTemplate): Promise<boolean> => {
34
+ const publishPrompt = (body: LegacyPublishPromptTemplate): Promise<boolean> => {
35
35
  const { prompt_template, commit_message } = body;
36
36
  if (commit_message && commit_message.length > 72) {
37
37
  throw new Error("Commit message must be less than 72 characters.");
package/src/templates.ts CHANGED
@@ -1,7 +1,10 @@
1
- import { GetPromptTemplateParams } from "@/types";
2
- import { getPromptTemplate } from "@/utils";
1
+ import { GetPromptTemplateParams, PublishPromptTemplate } from "@/types";
2
+ import { getPromptTemplate, publishPromptTemplate } from "@/utils";
3
3
 
4
4
  export const get = (
5
5
  promptName: string,
6
6
  params?: Partial<GetPromptTemplateParams>
7
7
  ) => getPromptTemplate(promptName, params);
8
+
9
+ export const publish = (body: PublishPromptTemplate) =>
10
+ publishPromptTemplate(body);
package/src/types.ts CHANGED
@@ -4,12 +4,12 @@ export interface GetPromptTemplate {
4
4
  label?: string;
5
5
  }
6
6
 
7
- export interface PromptTemplate {
7
+ export interface LegacyPromptTemplate {
8
8
  prompt_template: any;
9
9
  metadata: any;
10
10
  }
11
11
 
12
- export interface PublishPromptTemplate {
12
+ export interface LegacyPublishPromptTemplate {
13
13
  prompt_name: string;
14
14
  prompt_template: any;
15
15
  commit_message?: string;
@@ -68,3 +68,97 @@ export interface GetPromptTemplateParams {
68
68
  provider: string;
69
69
  input_variables: Record<string, string>;
70
70
  }
71
+
72
+ const templateFormat = ["f-string", "jinja2"] as const;
73
+
74
+ export type TemplateFormat = (typeof templateFormat)[number];
75
+
76
+ export type ImageUrl = {
77
+ url: string;
78
+ };
79
+
80
+ export type TextContent = {
81
+ type: "text";
82
+ text: string;
83
+ };
84
+
85
+ export type ImageContent = {
86
+ type: "image_url";
87
+ image_url: ImageUrl;
88
+ };
89
+
90
+ export type Content = TextContent | ImageContent;
91
+
92
+ export type Function_ = {
93
+ name: string;
94
+ description: string;
95
+ parameters: Record<string, unknown>;
96
+ };
97
+
98
+ export type FunctionCall = {
99
+ name: string;
100
+ arguments: string;
101
+ };
102
+
103
+ export type SystemMessage = {
104
+ role: "system";
105
+ template_format?: TemplateFormat;
106
+ content: Content[];
107
+ name?: string;
108
+ };
109
+
110
+ export type UserMessage = {
111
+ role: "user";
112
+ template_format?: TemplateFormat;
113
+ content: Content[];
114
+ name?: string;
115
+ };
116
+
117
+ export type AssistantMessage = {
118
+ role: "assistant";
119
+ template_format?: TemplateFormat;
120
+ content?: Content[];
121
+ function_call?: FunctionCall;
122
+ name?: string;
123
+ };
124
+
125
+ export type FunctionMessage = {
126
+ role: "function";
127
+ template_format?: TemplateFormat;
128
+ content?: Content[];
129
+ name: string;
130
+ };
131
+
132
+ export type Message =
133
+ | SystemMessage
134
+ | UserMessage
135
+ | AssistantMessage
136
+ | FunctionMessage;
137
+
138
+ export type ChatFunctionCall = {
139
+ name: string;
140
+ };
141
+
142
+ export type CompletionPromptTemplate = {
143
+ type: "completion";
144
+ template_format?: TemplateFormat;
145
+ content: Content[];
146
+ };
147
+
148
+ export type ChatPromptTemplate = {
149
+ type: "chat";
150
+ messages: Message[];
151
+ functions?: Function_[];
152
+ function_call?: "auto" | "none" | ChatFunctionCall;
153
+ };
154
+
155
+ export type PromptTemplate = CompletionPromptTemplate | ChatPromptTemplate;
156
+
157
+ export type PublishPromptTemplate = {
158
+ prompt_name: string;
159
+ prompt_template: PromptTemplate;
160
+ };
161
+
162
+ export type PublishPromptTemplateResponse = PublishPromptTemplate & {
163
+ id: number;
164
+ };
package/src/utils.ts CHANGED
@@ -2,8 +2,10 @@ import { promptlayer } from "@/index";
2
2
  import {
3
3
  GetPromptTemplate,
4
4
  GetPromptTemplateParams,
5
+ LegacyPublishPromptTemplate,
5
6
  Pagination,
6
7
  PublishPromptTemplate,
8
+ PublishPromptTemplateResponse,
7
9
  TrackGroup,
8
10
  TrackMetadata,
9
11
  TrackPrompt,
@@ -130,7 +132,7 @@ const promptLayerGetPrompt = async (body: GetPromptTemplate) => {
130
132
  };
131
133
 
132
134
  const promptLayerPublishPrompt = async (
133
- body: PublishPromptTemplate
135
+ body: LegacyPublishPromptTemplate
134
136
  ): Promise<boolean> => {
135
137
  let response: Response;
136
138
  try {
@@ -347,6 +349,34 @@ const getPromptTemplate = async (
347
349
  }
348
350
  };
349
351
 
352
+ const publishPromptTemplate = async (body: PublishPromptTemplate) => {
353
+ try {
354
+ const response = await fetch(
355
+ `${URL_API_PROMPTLAYER}/rest/prompt-templates`,
356
+ {
357
+ method: "POST",
358
+ headers: {
359
+ "Content-Type": "application/json",
360
+ "X-API-KEY": getApiKey(),
361
+ },
362
+ body: JSON.stringify(body),
363
+ }
364
+ );
365
+ const data = await response.json();
366
+ if (response.status === 400) {
367
+ warnOnBadResponse(
368
+ data,
369
+ "WARNING: While publishing a prompt template PromptLayer had the following error"
370
+ );
371
+ }
372
+ return data as Promise<PublishPromptTemplateResponse>;
373
+ } catch (e) {
374
+ console.warn(
375
+ `WARNING: While publishing a prompt template PromptLayer had the following error: ${e}`
376
+ );
377
+ }
378
+ };
379
+
350
380
  const cleaned_result = (results: any[]) => {
351
381
  if ("completion" in results[0])
352
382
  return results.reduce(
@@ -427,4 +457,5 @@ export {
427
457
  promptLayerTrackPrompt,
428
458
  promptLayerTrackScore,
429
459
  promptlayerApiHandler,
460
+ publishPromptTemplate,
430
461
  };