promptlayer 0.0.3 → 0.0.4
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 +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +36 -10
- package/src/promptlayer.ts +1 -29
- package/src/utils.ts +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var U=Object.defineProperty,V=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var M=Object.getOwnPropertySymbols;var ee=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable;var Y=(e,t)=>{if(t=Symbol[e])return t;throw Error("Symbol."+e+" is not defined")};var K=(e,t,r)=>t in e?U(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,y=(e,t)=>{for(var r in t||(t={}))ee.call(t,r)&&K(e,r,t[r]);if(M)for(var r of M(t))te.call(t,r)&&K(e,r,t[r]);return e},f=(e,t)=>V(e,Z(t));var B=(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 k=(e,t)=>{for(var r in t)U(e,r,{get:t[r],enumerable:!0})};var c=(e,t,r)=>new Promise((o,a)=>{var i=p=>{try{s(r.next(p))}catch(l){a(l)}},n=p=>{try{s(r.throw(p))}catch(l){a(l)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,n);s((r=r.apply(e,t)).next())}),g=function(e,t){this[0]=e,this[1]=t},D=(e,t,r)=>{var o=(n,s,p,l)=>{try{var T=r[n](s),_=(s=T.value)instanceof g,P=T.done;Promise.resolve(_?s[0]:s).then(m=>_?o(n==="return"?n:"next",s[1]?{done:m.done,value:m.value}:m,p,l):p({value:m,done:P})).catch(m=>o("throw",m,p,l))}catch(m){l(m)}},a=n=>i[n]=s=>new Promise((p,l)=>o(n,s,p,l)),i={};return r=r.apply(e,t),i[Symbol.asyncIterator]=()=>i,a("next"),a("throw"),a("return"),i};var H=(e,t,r)=>(t=e[Y("asyncIterator")])?t.call(e):(e=e[Y("iterator")](),t={},r=(o,a)=>(a=e[o])&&(t[o]=i=>new Promise((n,s,p)=>(i=a.call(e,i),p=i.done,Promise.resolve(i.value).then(l=>n({value:l,done:p}),s)))),r("next"),r("return"),t);var x={};k(x,{create:()=>se});var j={};k(j,{getApiKey:()=>u,promptLayerAllPromptTemplates:()=>N,promptLayerApiRequest:()=>R,promptLayerCreateGroup:()=>W,promptLayerGetPrompt:()=>S,promptLayerPublishPrompt:()=>A,promptLayerTrackGroup:()=>G,promptLayerTrackMetadata:()=>O,promptLayerTrackPrompt:()=>$,promptLayerTrackScore:()=>I,promptlayerApiHandler:()=>L});var re=(e,t="",r="openai")=>{let o={construct:(a,i)=>{let n=Reflect.construct(a,i);return Object.defineProperties(n,{function_name:{value:t,writable:!0},provider:{value:r}}),new Proxy(n,o)},get:(a,i,n)=>{let s=a[i];if(typeof s!="function"&&typeof s!="object")return Reflect.get(a,i,n);if(i==="post")return s;let p=Reflect.get(a,"function_name");return Object.defineProperties(s,{function_name:{value:`${p}.${i.toString()}`,writable:!0},provider:{value:Reflect.get(a,"provider")}}),new Proxy(s,o)},apply:(a,i,n)=>{var m,E,C,J;let s=new Date().toISOString(),p=Reflect.get(a,"function_name"),l=Reflect.get(a,"provider"),T=(m=n[0])==null?void 0:m.return_pl_id,_=(E=n[0])==null?void 0:E.pl_tags;(C=n[0])==null||delete C.return_pl_id,(J=n[0])==null||delete J.pl_tags;let P=Reflect.apply(a,i,n);return P instanceof Promise?new Promise((z,F)=>{P.then(b=>c(void 0,null,function*(){let Q=yield L({api_key:u(),provider_type:l,function_name:p,request_start_time:s,request_end_time:new Date().toISOString(),request_response:b,kwargs:n[0],return_pl_id:T,tags:_});z(Q)})).catch(b=>{F(b)})}):P}};return new Proxy(e,o)},oe=new Proxy({OpenAI:{},Anthropic:{},api_key:process.env.PROMPTLAYER_API_KEY},{get:(e,t,r)=>{if(["OpenAI","Anthropic"].includes(t.toString())){let a=B(t==="OpenAI"?"openai":"@anthropic-ai/sdk").default;return re(a,t.toString().toLowerCase(),t.toString().toLowerCase())}return Reflect.get(e,t,r)}}),d=oe;var h="https://api.promptlayer.com",u=()=>{if(d.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 d.api_key},L=e=>c(void 0,null,function*(){return e.request_response[Symbol.asyncIterator]!==void 0?ne(e.request_response,e):yield R(e)}),R=e=>c(void 0,null,function*(){try{let t=yield fetch(`${h}/track-request`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),r=yield t.json();return t.status!==200&&w(r,"WARNING: While logging your request, PromptLayer experienced the following error:"),r&&e.return_pl_id?[e.request_response,r.request_id]:e.request_response}catch(t){console.warn(`WARNING: While logging your request PromptLayer had the following error: ${t}`)}}),N=e=>c(void 0,null,function*(){let t=new URL(`${h}/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":u()}}),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,n,s;let t={prompt_name:e.prompt_name,version:(n=(i=e.version)==null?void 0:i.toString())!=null?n:"",label:(s=e.label)!=null?s:""},r=new URL(`${h}/library-get-prompt-template`);r.search=new URLSearchParams(t).toString();let o;try{o=yield fetch(r.toString(),{method:"GET",headers:{"X-API-KEY":u()}})}catch(p){throw new Error(`PromptLayer had the following error while getting your prompt: ${p}`)}let a=yield o.json();return o.status!==200&&X(a,"PromptLayer had the following error while retrieving your prompt template"),a}),A=e=>c(void 0,null,function*(){let t;try{t=yield fetch(`${h}/library-publish-prompt-template`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},e),{api_key:u()}))})}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&&X(r,"PromptLayer had the following error while publishing your prompt"),!0}),O=e=>c(void 0,null,function*(){try{let t=yield fetch(`${h}/library-track-metadata`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},e),{api_key:u()}))}),r=yield t.json();if(t.status!==200)return w(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=>c(void 0,null,function*(){try{let t=yield fetch(`${h}/library-track-score`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},e),{api_key:u()}))}),r=yield t.json();if(t.status!==200)return w(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}),$=e=>c(void 0,null,function*(){try{let t=yield fetch(`${h}/library-track-prompt`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},e),{api_key:u()}))}),r=yield t.json();if(t.status!==200)return w(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}),G=e=>c(void 0,null,function*(){try{let t=yield fetch(`${h}/track-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},e),{api_key:u()}))}),r=yield t.json();if(t.status!==200)return w(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}),W=()=>c(void 0,null,function*(){try{let e=yield fetch(`${h}/create-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({api_key:u()})}),t=yield e.json();return e.status!==200?(w(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}}),ae=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 ne(e,t){return D(this,null,function*(){let r=[];try{for(var i=H(e),n,s,p;n=!(s=yield new g(i.next())).done;n=!1){let l=s.value;yield l,r.push(l)}}catch(s){p=[s]}finally{try{n&&(s=i.return)&&(yield new g(s.call(i)))}finally{if(p)throw p[0]}}let o=ae(r);yield yield new g(R(f(y({},t),{request_response:o,request_end_time:new Date().toISOString()})))})}var w=(e,t)=>{try{console.warn(`${t}: ${e.message}`)}catch(r){console.warn(`${t}: ${e}`)}},X=(e,t)=>{throw"message"in e?new Error(`${t}: ${e.message}`):new Error(`${t}: ${e.message}`)};var se=()=>c(void 0,null,function*(){return yield W()});var v={};k(v,{all:()=>ie,get:()=>pe,publish:()=>ce});var ie=e=>N(e),pe=e=>c(void 0,null,function*(){let t=yield S(e),r=t.prompt_template,o=t.metadata;return{prompt_template:r,metadata:o}}),ce=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 A(e)};var q={};k(q,{group:()=>he,metadata:()=>le,prompt:()=>ue,score:()=>me});var le=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 O(e)},me=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)},ue=e=>{if(!(e.prompt_input_variables instanceof Object))throw new Error("Prompt template input variable dictionary not provided.");return $(e)},he=e=>G(e);var Ne={OpenAI:d.OpenAI,Anthropic:d.Anthropic,api_key:d.api_key,utils:j,track:q,groups:x,prompts:v};export{Ne as default};
|
|
1
|
+
var B=Object.defineProperty,Z=Object.defineProperties;var ee=Object.getOwnPropertyDescriptors;var M=Object.getOwnPropertySymbols;var te=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable;var Y=(e,t)=>{if(t=Symbol[e])return t;throw Error("Symbol."+e+" is not defined")};var K=(e,t,r)=>t in e?B(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,f=(e,t)=>{for(var r in t||(t={}))te.call(t,r)&&K(e,r,t[r]);if(M)for(var r of M(t))re.call(t,r)&&K(e,r,t[r]);return e},h=(e,t)=>Z(e,ee(t));var U=(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 _=(e,t)=>{for(var r in t)B(e,r,{get:t[r],enumerable:!0})};var c=(e,t,r)=>new Promise((o,a)=>{var i=p=>{try{s(r.next(p))}catch(l){a(l)}},n=p=>{try{s(r.throw(p))}catch(l){a(l)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,n);s((r=r.apply(e,t)).next())}),g=function(e,t){this[0]=e,this[1]=t},D=(e,t,r)=>{var o=(n,s,p,l)=>{try{var P=r[n](s),T=(s=P.value)instanceof g,w=P.done;Promise.resolve(T?s[0]:s).then(m=>T?o(n==="return"?n:"next",s[1]?{done:m.done,value:m.value}:m,p,l):p({value:m,done:w})).catch(m=>o("throw",m,p,l))}catch(m){l(m)}},a=n=>i[n]=s=>new Promise((p,l)=>o(n,s,p,l)),i={};return r=r.apply(e,t),i[Symbol.asyncIterator]=()=>i,a("next"),a("throw"),a("return"),i};var H=(e,t,r)=>(t=e[Y("asyncIterator")])?t.call(e):(e=e[Y("iterator")](),t={},r=(o,a)=>(a=e[o])&&(t[o]=i=>new Promise((n,s,p)=>(i=a.call(e,i),p=i.done,Promise.resolve(i.value).then(l=>n({value:l,done:p}),s)))),r("next"),r("return"),t);var x={};_(x,{create:()=>ne});var j={};_(j,{getApiKey:()=>u,promptLayerAllPromptTemplates:()=>N,promptLayerApiRequest:()=>R,promptLayerCreateGroup:()=>W,promptLayerGetPrompt:()=>S,promptLayerPublishPrompt:()=>O,promptLayerTrackGroup:()=>G,promptLayerTrackMetadata:()=>$,promptLayerTrackPrompt:()=>I,promptLayerTrackScore:()=>A,promptlayerApiHandler:()=>L});var y="https://api.promptlayer.com",u=()=>{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},L=e=>c(void 0,null,function*(){return e.request_response[Symbol.asyncIterator]!==void 0?ae(e.request_response,e):yield R(e)}),R=e=>c(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();return t.status!==200&&d(r,"WARNING: While logging your request, PromptLayer experienced the following error:"),r&&e.return_pl_id?[e.request_response,r.request_id]:e.request_response}catch(t){console.warn(`WARNING: While logging your request PromptLayer had the following error: ${t}`)}}),N=e=>c(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":u()}}),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,n,s;let t={prompt_name:e.prompt_name,version:(n=(i=e.version)==null?void 0:i.toString())!=null?n:"",label:(s=e.label)!=null?s:""},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":u()}})}catch(p){throw new Error(`PromptLayer had the following error while getting your prompt: ${p}`)}let a=yield o.json();return o.status!==200&&X(a,"PromptLayer had the following error while retrieving your prompt template"),a}),O=e=>c(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(h(f({},e),{api_key:u()}))})}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&&X(r,"PromptLayer had the following error while publishing your prompt"),!0}),$=e=>c(void 0,null,function*(){try{let t=yield fetch(`${y}/library-track-metadata`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h(f({},e),{api_key:u()}))}),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}),A=e=>c(void 0,null,function*(){try{let t=yield fetch(`${y}/library-track-score`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h(f({},e),{api_key:u()}))}),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}),I=e=>c(void 0,null,function*(){try{let t=yield fetch(`${y}/library-track-prompt`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h(f({},e),{api_key:u()}))}),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}),G=e=>c(void 0,null,function*(){try{let t=yield fetch(`${y}/track-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h(f({},e),{api_key:u()}))}),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}),W=()=>c(void 0,null,function*(){try{let e=yield fetch(`${y}/create-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({api_key:u()})}),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}}),oe=e=>{if("completion"in e[0])return e.reduce((t,r)=>h(f({},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 ae(e,t){return D(this,null,function*(){let r=[];try{for(var i=H(e),n,s,p;n=!(s=yield new g(i.next())).done;n=!1){let l=s.value;yield l,r.push(l)}}catch(s){p=[s]}finally{try{n&&(s=i.return)&&(yield new g(s.call(i)))}finally{if(p)throw p[0]}}let o=oe(r);yield yield new g(R(h(f({},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}`)}},X=(e,t)=>{throw"message"in e?new Error(`${t}: ${e.message}`):new Error(`${t}: ${e.message}`)};var ne=()=>c(void 0,null,function*(){return yield W()});var z=(e,t="",r="openai")=>{let o={construct:(a,i)=>{let n=Reflect.construct(a,i);return Object.defineProperties(n,{function_name:{value:t,writable:!0},provider:{value:r}}),new Proxy(n,o)},get:(a,i,n)=>{let s=a[i];if(typeof s!="function"&&typeof s!="object")return Reflect.get(a,i,n);if(i==="post")return s;let p=Reflect.get(a,"function_name");return Object.defineProperties(s,{function_name:{value:`${p}.${i.toString()}`,writable:!0},provider:{value:Reflect.get(a,"provider")}}),new Proxy(s,o)},apply:(a,i,n)=>{var m,E,C,J;let s=new Date().toISOString(),p=Reflect.get(a,"function_name"),l=Reflect.get(a,"provider"),P=(m=n[0])==null?void 0:m.return_pl_id,T=(E=n[0])==null?void 0:E.pl_tags;(C=n[0])==null||delete C.return_pl_id,(J=n[0])==null||delete J.pl_tags;let w=Reflect.apply(a,i,n);return w instanceof Promise?new Promise((F,Q)=>{w.then(k=>c(void 0,null,function*(){let V=yield L({api_key:u(),provider_type:l,function_name:p,request_start_time:s,request_end_time:new Date().toISOString(),request_response:k,kwargs:n[0],return_pl_id:P,tags:T});F(V)})).catch(k=>{Q(k)})}):w}};return new Proxy(e,o)};var v={};_(v,{all:()=>se,get:()=>ie,publish:()=>pe});var se=e=>N(e),ie=e=>c(void 0,null,function*(){let t=yield S(e),r=t.prompt_template,o=t.metadata;return{prompt_template:r,metadata:o}}),pe=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 O(e)};var q={};_(q,{group:()=>ue,metadata:()=>ce,prompt:()=>me,score:()=>le});var ce=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)},le=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 A(e)},me=e=>{if(!(e.prompt_input_variables instanceof Object))throw new Error("Prompt template input variable dictionary not provided.");return I(e)},ue=e=>G(e);var ye=new Proxy({OpenAI:{},Anthropic:{},api_key:process.env.PROMPTLAYER_API_KEY,utils:j,track:q,groups:x,prompts:v},{get:(e,t,r)=>{if(["OpenAI","Anthropic"].includes(t.toString())){let a=U(t==="OpenAI"?"openai":"@anthropic-ai/sdk").default;return z(a,t.toString().toLowerCase(),t.toString().toLowerCase())}return Reflect.get(e,t,r)}}),b=ye;export{b as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/groups.ts","../../src/utils.ts","../../src/promptlayer.ts","../../src/prompts.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 \"@/promptlayer\";\nimport {\n GetPromptTemplate,\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 return body.request_response;\n } catch (e) {\n console.warn(\n `WARNING: While logging your request PromptLayer had the following error: ${e}`\n );\n }\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 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 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\nconst 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 if (typeof value !== \"function\" && typeof value !== \"object\")\n return Reflect.get(target, prop, receiver);\n if (prop === \"post\") return value;\n const function_name = Reflect.get(target, \"function_name\");\n Object.defineProperties(value, {\n function_name: {\n value: `${function_name}.${prop.toString()}`,\n writable: true,\n },\n provider: {\n value: Reflect.get(target, \"provider\"),\n },\n });\n return new Proxy(value, handler);\n },\n apply: (target, thisArg, argArray) => {\n const request_start_time = new Date().toISOString();\n const function_name = Reflect.get(target, \"function_name\");\n const provider_type = Reflect.get(target, \"provider\");\n const return_pl_id = argArray[0]?.return_pl_id;\n const pl_tags = argArray[0]?.pl_tags;\n delete argArray[0]?.return_pl_id;\n delete argArray[0]?.pl_tags;\n const response = Reflect.apply(target, thisArg, argArray);\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: argArray[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 new Proxy(llm, handler);\n};\n\nconst dynamicExports = new Proxy<{\n OpenAI: any;\n Anthropic: any;\n api_key: string | undefined;\n}>(\n {\n OpenAI: {},\n Anthropic: {},\n api_key: process.env.PROMPTLAYER_API_KEY,\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\nexport default dynamicExports;\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 { 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 promptlayer from \"@/promptlayer\";\nimport * as prompts from \"@/prompts\";\nimport * as track from \"@/track\";\nimport * as utils from \"@/utils\";\n\nexport default {\n OpenAI: promptlayer.OpenAI,\n Anthropic: promptlayer.Anthropic,\n api_key: promptlayer.api_key,\n utils,\n track,\n groups,\n prompts,\n};\n"],"mappings":"2rDAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,KCAA,IAAAC,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,kCAAAC,EAAA,0BAAAC,EAAA,2BAAAC,EAAA,yBAAAC,EAAA,6BAAAC,EAAA,0BAAAC,EAAA,6BAAAC,EAAA,2BAAAC,EAAA,0BAAAC,EAAA,0BAAAC,ICEA,IAAMC,GAAkB,CACtBC,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,EACzB,GAAI,OAAOE,GAAU,YAAc,OAAOA,GAAU,SAClD,OAAO,QAAQ,IAAIL,EAAQG,EAAMC,CAAQ,EAC3C,GAAID,IAAS,OAAQ,OAAOE,EAC5B,IAAMR,EAAgB,QAAQ,IAAIG,EAAQ,eAAe,EACzD,cAAO,iBAAiBK,EAAO,CAC7B,cAAe,CACb,MAAO,GAAGR,CAAa,IAAIM,EAAK,SAAS,CAAC,GAC1C,SAAU,EACZ,EACA,SAAU,CACR,MAAO,QAAQ,IAAIH,EAAQ,UAAU,CACvC,CACF,CAAC,EACM,IAAI,MAAMK,EAAON,CAAO,CACjC,EACA,MAAO,CAACC,EAAQM,EAASC,IAAa,CAtC1C,IAAAC,EAAAC,EAAAC,EAAAC,EAuCM,IAAMC,EAAqB,IAAI,KAAK,EAAE,YAAY,EAC5Cf,EAAgB,QAAQ,IAAIG,EAAQ,eAAe,EACnDa,EAAgB,QAAQ,IAAIb,EAAQ,UAAU,EAC9Cc,GAAeN,EAAAD,EAAS,CAAC,IAAV,YAAAC,EAAa,aAC5BO,GAAUN,EAAAF,EAAS,CAAC,IAAV,YAAAE,EAAa,SAC7BC,EAAOH,EAAS,CAAC,IAAjB,aAAAG,EAAoB,cACpBC,EAAOJ,EAAS,CAAC,IAAjB,aAAAI,EAAoB,QACpB,IAAMK,EAAW,QAAQ,MAAMhB,EAAQM,EAASC,CAAQ,EACxD,OAAIS,aAAoB,QACf,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCF,EACG,KAAYG,GAAqBC,EAAA,wBAChC,IAAMJ,EAAW,MAAMK,EAAsB,CAC3C,QAASC,EAAU,EACnB,cAAAT,EACA,cAAAhB,EACA,mBAAAe,EACA,iBAAkB,IAAI,KAAK,EAAE,YAAY,EACzC,iBAAAO,EACA,OAAQZ,EAAS,CAAC,EAClB,aAAAO,EACA,KAAMC,CACR,CAAC,EACDE,EAAQD,CAAQ,CAClB,EAAC,EACA,MAAOO,GAAU,CAChBL,EAAOK,CAAK,CACd,CAAC,CACL,CAAC,EAEIP,CACT,CACF,EACA,OAAO,IAAI,MAAMpB,EAAKG,CAAO,CAC/B,EAEMyB,GAAiB,IAAI,MAKzB,CACE,OAAQ,CAAC,EACT,UAAW,CAAC,EACZ,QAAS,QAAQ,IAAI,mBACvB,EACA,CACE,IAAK,CAACxB,EAAQG,EAAMC,IAAa,CAC/B,GAAI,CAAC,SAAU,WAAW,EAAE,SAASD,EAAK,SAAS,CAAC,EAAG,CAErD,IAAMsB,EAASC,EADIvB,IAAS,SAAW,SAAW,mBACjB,EAAE,QACnC,OAAOR,GACL8B,EACAtB,EAAK,SAAS,EAAE,YAAY,EAC5BA,EAAK,SAAS,EAAE,YAAY,CAC9B,CACF,CACA,OAAO,QAAQ,IAAIH,EAAQG,EAAMC,CAAQ,CAC3C,CACF,CACF,EAEOuB,EAAQH,GDzFf,IAAMI,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,OANIA,EAAS,SAAW,KACtBE,EACED,EACA,mFACF,EAEEA,GAAQL,EAAK,aACR,CAACA,EAAK,iBAAkBK,EAAK,UAAU,EAEzCL,EAAK,gBACd,OAASO,EAAG,CACV,QAAQ,KACN,4EAA4EA,CAAC,EAC/E,CACF,CACF,GAEMC,EAAuCC,GAAwBR,EAAA,wBACnE,IAAMS,EAAM,IAAI,IAAI,GAAGd,CAAmB,eAAe,EACzD,OAAO,QAAQa,GAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAACE,EAAKC,CAAK,IAC/CF,EAAI,aAAa,OAAOC,EAAKC,CAAK,CACpC,EACA,GAAI,CACF,IAAMR,EAAW,MAAM,MAAMM,EAAK,CAChC,OAAQ,MACR,QAAS,CACP,eAAgB,mBAChB,YAAab,EAAU,CACzB,CACF,CAAC,EACKQ,EAAO,MAAMD,EAAS,KAAK,EACjC,OAAIA,EAAS,SAAW,KACtB,QAAQ,KACN,sFAAsF,KAAK,UACzFC,CACF,CAAC,EACH,EAEKA,CACT,OAASE,EAAG,CACV,QAAQ,KACN,sFAAsFA,CAAC,EACzF,CACF,CACF,GASMM,EAA8Bb,GAA4BC,EAAA,wBAnGhE,IAAAa,EAAAC,EAAAC,EAoGE,IAAMP,EAAiC,CACrC,YAAaT,EAAK,YAClB,SAASe,GAAAD,EAAAd,EAAK,UAAL,YAAAc,EAAc,aAAd,KAAAC,EAA4B,GACrC,OAAOC,EAAAhB,EAAK,QAAL,KAAAgB,EAAc,EACvB,EACMN,EAAM,IAAI,IAAI,GAAGd,CAAmB,8BAA8B,EACxEc,EAAI,OAAS,IAAI,gBAAgBD,CAAM,EAAE,SAAS,EAClD,IAAIL,EACJ,GAAI,CACFA,EAAW,MAAM,MAAMM,EAAI,SAAS,EAAG,CACrC,OAAQ,MACR,QAAS,CACP,YAAab,EAAU,CACzB,CACF,CAAC,CACH,OAASU,EAAG,CACV,MAAM,IAAI,MACR,kEAAkEA,CAAC,EACrE,CACF,CACA,IAAMF,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,OAASU,EAAG,CACV,MAAM,IAAI,MACR,8EAA8EA,CAAC,EACjF,CACF,CACA,IAAMF,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,OAASE,EAAG,CACV,eAAQ,KACN,iGAAiGA,CAAC,EACpG,EACO,EACT,CACA,MAAO,EACT,GAEMe,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,OAASE,EAAG,CACV,eAAQ,KACN,qFAAqFA,CAAC,EACxF,EACO,EACT,CACA,MAAO,EACT,GAEMgB,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,OAASE,EAAG,CACV,eAAQ,KACN,gHAAgHA,CAAC,EACnH,EACO,EACT,CACA,MAAO,EACT,GAEMiB,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,OAASE,EAAG,CACV,eAAQ,KACN,sGAAsGA,CAAC,EACzG,EACO,EACT,CACA,MAAO,EACT,GAEMkB,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,OAAS,EAAG,CACV,eAAQ,KACN,wEAAwE,CAAC,EAC3E,EACO,EACT,CACF,GAEMqB,GAAkBC,GAAmB,CACzC,GAAI,eAAgBA,EAAQ,CAAC,EAC3B,OAAOA,EAAQ,OACb,CAACC,EAAMC,IAAaV,EAAAC,EAAA,GACfS,GADe,CAElB,WAAY,GAAGD,EAAK,UAAU,GAAGC,EAAQ,UAAU,EACrD,GACA,CAAC,CACH,EACF,GAAI,SAAUF,EAAQ,CAAC,EAAE,QAAQ,CAAC,EAAG,CACnC,IAAIvB,EAAW,GACf,QAAW0B,KAAUH,EACnBvB,EAAW,GAAGA,CAAQ,GAAG0B,EAAO,QAAQ,CAAC,EAAE,IAAI,GAEjD,IAAMC,EAAe,gBAAgBJ,EAAQ,GAAG,EAAE,CAAC,EACnD,OAAAI,EAAa,QAAQ,CAAC,EAAE,KAAO3B,EACxB2B,CACT,SAAW,UAAWJ,EAAQ,CAAC,EAAE,QAAQ,CAAC,EAAG,CAC3C,IAAIvB,EAAW,CAAE,KAAM,GAAI,QAAS,EAAG,EACvC,QAAW0B,KAAUH,EACf,SAAUG,EAAO,QAAQ,CAAC,EAAE,QAC9B1B,EAAS,KAAO0B,EAAO,QAAQ,CAAC,EAAE,MAAM,MAEtC,YAAaA,EAAO,QAAQ,CAAC,EAAE,QACjC1B,EAAS,QAAU,GAAGA,EAAS,OAAU,GAAG0B,EAAO,QAAQ,CAAC,EAAE,MAAM,OAAO,IAG/E,IAAMC,EAAe,gBAAgBJ,EAAQ,GAAG,EAAE,CAAC,EACnD,OAAAI,EAAa,QAAQ,CAAC,EAAI3B,EACnB2B,CACT,CACA,MAAO,EACT,EAEA,SAAgB7B,GACd8B,EACAhC,EACA,QAAAiC,EAAA,sBACA,IAAMN,EAAU,CAAC,EACjB,YAAAO,EAAAC,EAA0BH,GAA1BI,EAAAC,EAAAC,EAAAF,EAAA,EAAAC,EAAA,UAAAE,EAAAL,EAAA,cAAAE,EAAA,GACE,CADS,IAAMxB,EAAjByB,EAAA,MACE,MAAMzB,EACNe,EAAQ,KAAKf,CAAK,SAFpByB,EAlWF,CAkWEC,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,EAAMpC,EAAsBgB,EAAAC,EAAA,GACxCpB,GADwC,CAE3C,iBAAAwC,EACA,iBAAkB,IAAI,KAAK,EAAE,YAAY,CAC3C,EAAC,EAEH,GAEA,IAAMlC,EAAoB,CAACkC,EAAuBC,IAAyB,CACzE,GAAI,CACF,QAAQ,KAAK,GAAGA,CAAY,KAAKD,EAAiB,OAAO,EAAE,CAC7D,OAASjC,EAAG,CACV,QAAQ,KAAK,GAAGkC,CAAY,KAAKD,CAAgB,EAAE,CACrD,CACF,EAEMvB,EAAqB,CAACuB,EAAuBC,IAAyB,CAC1E,KAAI,YAAaD,EACT,IAAI,MAAM,GAAGC,CAAY,KAAKD,EAAiB,OAAO,EAAE,EAE1D,IAAI,MAAM,GAAGC,CAAY,KAAKD,EAAiB,OAAO,EAAE,CAChE,ED1XA,IAAME,GAAS,IAAoCC,EAAA,wBACjD,aAAMC,EAAuB,IGH/B,IAAAC,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,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,ECjC9D,IAAOU,GAAQ,CACb,OAAQC,EAAY,OACpB,UAAWA,EAAY,UACvB,QAASA,EAAY,QACrB,MAAAC,EACA,MAAAC,EACA,OAAAC,EACA,QAAAC,CACF","names":["groups_exports","__export","create","utils_exports","__export","getApiKey","promptLayerAllPromptTemplates","promptLayerApiRequest","promptLayerCreateGroup","promptLayerGetPrompt","promptLayerPublishPrompt","promptLayerTrackGroup","promptLayerTrackMetadata","promptLayerTrackPrompt","promptLayerTrackScore","promptlayerApiHandler","promptLayerBase","llm","function_name","provider","handler","target","args","newTarget","prop","receiver","value","thisArg","argArray","_a","_b","_c","_d","request_start_time","provider_type","return_pl_id","pl_tags","response","resolve","reject","request_response","__async","promptlayerApiHandler","getApiKey","error","dynamicExports","module","__require","promptlayer_default","URL_API_PROMPTLAYER","getApiKey","promptlayer_default","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","cleaned_result","results","prev","current","result","final_result","generator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","request_response","main_message","create","__async","promptLayerCreateGroup","prompts_exports","__export","all","getPrompt","publishPrompt","all","params","promptLayerAllPromptTemplates","getPrompt","__async","prompt","promptLayerGetPrompt","prompt_template","metadata","publishPrompt","body","commit_message","promptLayerPublishPrompt","track_exports","__export","group","metadata","prompt","score","metadata","body","key","value","promptLayerTrackMetadata","score","promptLayerTrackScore","prompt","promptLayerTrackPrompt","group","promptLayerTrackGroup","src_default","promptlayer_default","utils_exports","track_exports","groups_exports","prompts_exports"]}
|
|
1
|
+
{"version":3,"sources":["../../src/groups.ts","../../src/utils.ts","../../src/promptlayer.ts","../../src/prompts.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 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 return body.request_response;\n } catch (e) {\n console.warn(\n `WARNING: While logging your request PromptLayer had the following error: ${e}`\n );\n }\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 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 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 if (typeof value !== \"function\" && typeof value !== \"object\")\n return Reflect.get(target, prop, receiver);\n if (prop === \"post\") return value;\n const function_name = Reflect.get(target, \"function_name\");\n Object.defineProperties(value, {\n function_name: {\n value: `${function_name}.${prop.toString()}`,\n writable: true,\n },\n provider: {\n value: Reflect.get(target, \"provider\"),\n },\n });\n return new Proxy(value, handler);\n },\n apply: (target, thisArg, argArray) => {\n const request_start_time = new Date().toISOString();\n const function_name = Reflect.get(target, \"function_name\");\n const provider_type = Reflect.get(target, \"provider\");\n const return_pl_id = argArray[0]?.return_pl_id;\n const pl_tags = argArray[0]?.pl_tags;\n delete argArray[0]?.return_pl_id;\n delete argArray[0]?.pl_tags;\n const response = Reflect.apply(target, thisArg, argArray);\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: argArray[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 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 { 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 track from \"@/track\";\nimport * as utils from \"@/utils\";\n\nconst dynamicExports = 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}>(\n {\n OpenAI: {},\n Anthropic: {},\n api_key: process.env.PROMPTLAYER_API_KEY,\n utils,\n track,\n groups,\n prompts,\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\nexport default dynamicExports;\n"],"mappings":"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","names":["groups_exports","__export","create","utils_exports","__export","getApiKey","promptLayerAllPromptTemplates","promptLayerApiRequest","promptLayerCreateGroup","promptLayerGetPrompt","promptLayerPublishPrompt","promptLayerTrackGroup","promptLayerTrackMetadata","promptLayerTrackPrompt","promptLayerTrackScore","promptlayerApiHandler","URL_API_PROMPTLAYER","getApiKey","src_default","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","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","thisArg","argArray","_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","track_exports","__export","group","metadata","prompt","score","metadata","body","key","value","promptLayerTrackMetadata","score","promptLayerTrackScore","prompt","promptLayerTrackPrompt","group","promptLayerTrackGroup","dynamicExports","utils_exports","track_exports","groups_exports","prompts_exports","target","prop","receiver","module","__require","promptLayerBase","src_default"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -149,7 +149,7 @@ declare namespace utils {
|
|
|
149
149
|
};
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
declare const
|
|
152
|
+
declare const dynamicExports: {
|
|
153
153
|
OpenAI: any;
|
|
154
154
|
Anthropic: any;
|
|
155
155
|
api_key: string | undefined;
|
|
@@ -159,4 +159,4 @@ declare const _default: {
|
|
|
159
159
|
prompts: typeof prompts;
|
|
160
160
|
};
|
|
161
161
|
|
|
162
|
-
export {
|
|
162
|
+
export { dynamicExports as default };
|
package/dist/index.d.ts
CHANGED
|
@@ -149,7 +149,7 @@ declare namespace utils {
|
|
|
149
149
|
};
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
declare const
|
|
152
|
+
declare const dynamicExports: {
|
|
153
153
|
OpenAI: any;
|
|
154
154
|
Anthropic: any;
|
|
155
155
|
api_key: string | undefined;
|
|
@@ -159,4 +159,4 @@ declare const _default: {
|
|
|
159
159
|
prompts: typeof prompts;
|
|
160
160
|
};
|
|
161
161
|
|
|
162
|
-
export {
|
|
162
|
+
export { dynamicExports as default };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var b=Object.defineProperty,V=Object.defineProperties,Z=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyDescriptors,te=Object.getOwnPropertyNames,Y=Object.getOwnPropertySymbols;var B=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable;var K=(t,e)=>{if(e=Symbol[t])return e;throw Error("Symbol."+t+" is not defined")};var U=(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={}))B.call(e,r)&&U(t,r,e[r]);if(Y)for(var r of Y(e))re.call(e,r)&&U(t,r,e[r]);return t},f=(t,e)=>V(t,ee(e));var g=(t,e)=>{for(var r in e)b(t,r,{get:e[r],enumerable:!0})},oe=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of te(e))!B.call(t,a)&&a!==r&&b(t,a,{get:()=>e[a],enumerable:!(o=Z(e,a))||o.enumerable});return t};var ae=t=>oe(b({},"__esModule",{value:!0}),t);var c=(t,e,r)=>new Promise((o,a)=>{var i=p=>{try{s(r.next(p))}catch(l){a(l)}},n=p=>{try{s(r.throw(p))}catch(l){a(l)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,n);s((r=r.apply(t,e)).next())}),T=function(t,e){this[0]=t,this[1]=e},D=(t,e,r)=>{var o=(n,s,p,l)=>{try{var _=r[n](s),k=(s=_.value)instanceof T,P=_.done;Promise.resolve(k?s[0]:s).then(m=>k?o(n==="return"?n:"next",s[1]?{done:m.done,value:m.value}:m,p,l):p({value:m,done:P})).catch(m=>o("throw",m,p,l))}catch(m){l(m)}},a=n=>i[n]=s=>new Promise((p,l)=>o(n,s,p,l)),i={};return r=r.apply(t,e),i[Symbol.asyncIterator]=()=>i,a("next"),a("throw"),a("return"),i};var H=(t,e,r)=>(e=t[K("asyncIterator")])?e.call(t):(t=t[K("iterator")](),e={},r=(o,a)=>(a=t[o])&&(e[o]=i=>new Promise((n,s,p)=>(i=a.call(t,i),p=i.done,Promise.resolve(i.value).then(l=>n({value:l,done:p}),s)))),r("next"),r("return"),e);var Pe={};g(Pe,{default:()=>we});module.exports=ae(Pe);var v={};g(v,{create:()=>ce});var x={};g(x,{getApiKey:()=>u,promptLayerAllPromptTemplates:()=>A,promptLayerApiRequest:()=>S,promptLayerCreateGroup:()=>j,promptLayerGetPrompt:()=>N,promptLayerPublishPrompt:()=>O,promptLayerTrackGroup:()=>W,promptLayerTrackMetadata:()=>I,promptLayerTrackPrompt:()=>G,promptLayerTrackScore:()=>$,promptlayerApiHandler:()=>R});var ne=(t,e="",r="openai")=>{let o={construct:(a,i)=>{let n=Reflect.construct(a,i);return Object.defineProperties(n,{function_name:{value:e,writable:!0},provider:{value:r}}),new Proxy(n,o)},get:(a,i,n)=>{let s=a[i];if(typeof s!="function"&&typeof s!="object")return Reflect.get(a,i,n);if(i==="post")return s;let p=Reflect.get(a,"function_name");return Object.defineProperties(s,{function_name:{value:`${p}.${i.toString()}`,writable:!0},provider:{value:Reflect.get(a,"provider")}}),new Proxy(s,o)},apply:(a,i,n)=>{var m,C,J,M;let s=new Date().toISOString(),p=Reflect.get(a,"function_name"),l=Reflect.get(a,"provider"),_=(m=n[0])==null?void 0:m.return_pl_id,k=(C=n[0])==null?void 0:C.pl_tags;(J=n[0])==null||delete J.return_pl_id,(M=n[0])==null||delete M.pl_tags;let P=Reflect.apply(a,i,n);return P instanceof Promise?new Promise((z,F)=>{P.then(L=>c(void 0,null,function*(){let Q=yield R({api_key:u(),provider_type:l,function_name:p,request_start_time:s,request_end_time:new Date().toISOString(),request_response:L,kwargs:n[0],return_pl_id:_,tags:k});z(Q)})).catch(L=>{F(L)})}):P}};return new Proxy(t,o)},se=new Proxy({OpenAI:{},Anthropic:{},api_key:process.env.PROMPTLAYER_API_KEY},{get:(t,e,r)=>{if(["OpenAI","Anthropic"].includes(e.toString())){let o=e==="OpenAI"?"openai":"@anthropic-ai/sdk",a=require(o).default;return ne(a,e.toString().toLowerCase(),e.toString().toLowerCase())}return Reflect.get(t,e,r)}}),d=se;var h="https://api.promptlayer.com",u=()=>{if(d.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 d.api_key},R=t=>c(void 0,null,function*(){return t.request_response[Symbol.asyncIterator]!==void 0?pe(t.request_response,t):yield S(t)}),S=t=>c(void 0,null,function*(){try{let e=yield fetch(`${h}/track-request`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=yield e.json();return e.status!==200&&w(r,"WARNING: While logging your request, PromptLayer experienced the following error:"),r&&t.return_pl_id?[t.request_response,r.request_id]:t.request_response}catch(e){console.warn(`WARNING: While logging your request PromptLayer had the following error: ${e}`)}}),A=t=>c(void 0,null,function*(){let e=new URL(`${h}/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":u()}}),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}`)}}),N=t=>c(void 0,null,function*(){var i,n,s;let e={prompt_name:t.prompt_name,version:(n=(i=t.version)==null?void 0:i.toString())!=null?n:"",label:(s=t.label)!=null?s:""},r=new URL(`${h}/library-get-prompt-template`);r.search=new URLSearchParams(e).toString();let o;try{o=yield fetch(r.toString(),{method:"GET",headers:{"X-API-KEY":u()}})}catch(p){throw new Error(`PromptLayer had the following error while getting your prompt: ${p}`)}let a=yield o.json();return o.status!==200&&X(a,"PromptLayer had the following error while retrieving your prompt template"),a}),O=t=>c(void 0,null,function*(){let e;try{e=yield fetch(`${h}/library-publish-prompt-template`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},t),{api_key:u()}))})}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&&X(r,"PromptLayer had the following error while publishing your prompt"),!0}),I=t=>c(void 0,null,function*(){try{let e=yield fetch(`${h}/library-track-metadata`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},t),{api_key:u()}))}),r=yield e.json();if(e.status!==200)return w(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}),$=t=>c(void 0,null,function*(){try{let e=yield fetch(`${h}/library-track-score`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},t),{api_key:u()}))}),r=yield e.json();if(e.status!==200)return w(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}),G=t=>c(void 0,null,function*(){try{let e=yield fetch(`${h}/library-track-prompt`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},t),{api_key:u()}))}),r=yield e.json();if(e.status!==200)return w(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}),W=t=>c(void 0,null,function*(){try{let e=yield fetch(`${h}/track-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f(y({},t),{api_key:u()}))}),r=yield e.json();if(e.status!==200)return w(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}),j=()=>c(void 0,null,function*(){try{let t=yield fetch(`${h}/create-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({api_key:u()})}),e=yield t.json();return t.status!==200?(w(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}}),ie=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 pe(t,e){return D(this,null,function*(){let r=[];try{for(var i=H(t),n,s,p;n=!(s=yield new T(i.next())).done;n=!1){let l=s.value;yield l,r.push(l)}}catch(s){p=[s]}finally{try{n&&(s=i.return)&&(yield new T(s.call(i)))}finally{if(p)throw p[0]}}let o=ie(r);yield yield new T(S(f(y({},e),{request_response:o,request_end_time:new Date().toISOString()})))})}var w=(t,e)=>{try{console.warn(`${e}: ${t.message}`)}catch(r){console.warn(`${e}: ${t}`)}},X=(t,e)=>{throw"message"in t?new Error(`${e}: ${t.message}`):new Error(`${e}: ${t.message}`)};var ce=()=>c(void 0,null,function*(){return yield j()});var q={};g(q,{all:()=>le,get:()=>me,publish:()=>ue});var le=t=>A(t),me=t=>c(void 0,null,function*(){let e=yield N(t),r=e.prompt_template,o=e.metadata;return{prompt_template:r,metadata:o}}),ue=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 O(t)};var E={};g(E,{group:()=>de,metadata:()=>he,prompt:()=>fe,score:()=>ye});var he=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)},ye=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 $(t)},fe=t=>{if(!(t.prompt_input_variables instanceof Object))throw new Error("Prompt template input variable dictionary not provided.");return G(t)},de=t=>W(t);var we={OpenAI:d.OpenAI,Anthropic:d.Anthropic,api_key:d.api_key,utils:x,track:E,groups:v,prompts:q};
|
|
1
|
+
"use strict";var k=Object.defineProperty,Z=Object.defineProperties,ee=Object.getOwnPropertyDescriptor,te=Object.getOwnPropertyDescriptors,re=Object.getOwnPropertyNames,Y=Object.getOwnPropertySymbols;var U=Object.prototype.hasOwnProperty,oe=Object.prototype.propertyIsEnumerable;var K=(t,e)=>{if(e=Symbol[t])return e;throw Error("Symbol."+t+" is not defined")};var B=(t,e,r)=>e in t?k(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,f=(t,e)=>{for(var r in e||(e={}))U.call(e,r)&&B(t,r,e[r]);if(Y)for(var r of Y(e))oe.call(e,r)&&B(t,r,e[r]);return t},h=(t,e)=>Z(t,te(e));var g=(t,e)=>{for(var r in e)k(t,r,{get:e[r],enumerable:!0})},ae=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of re(e))!U.call(t,a)&&a!==r&&k(t,a,{get:()=>e[a],enumerable:!(o=ee(e,a))||o.enumerable});return t};var ne=t=>ae(k({},"__esModule",{value:!0}),t);var c=(t,e,r)=>new Promise((o,a)=>{var i=p=>{try{s(r.next(p))}catch(l){a(l)}},n=p=>{try{s(r.throw(p))}catch(l){a(l)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,n);s((r=r.apply(t,e)).next())}),P=function(t,e){this[0]=t,this[1]=e},D=(t,e,r)=>{var o=(n,s,p,l)=>{try{var T=r[n](s),_=(s=T.value)instanceof P,w=T.done;Promise.resolve(_?s[0]:s).then(m=>_?o(n==="return"?n:"next",s[1]?{done:m.done,value:m.value}:m,p,l):p({value:m,done:w})).catch(m=>o("throw",m,p,l))}catch(m){l(m)}},a=n=>i[n]=s=>new Promise((p,l)=>o(n,s,p,l)),i={};return r=r.apply(t,e),i[Symbol.asyncIterator]=()=>i,a("next"),a("throw"),a("return"),i};var H=(t,e,r)=>(e=t[K("asyncIterator")])?e.call(t):(t=t[K("iterator")](),e={},r=(o,a)=>(a=t[o])&&(e[o]=i=>new Promise((n,s,p)=>(i=a.call(t,i),p=i.done,Promise.resolve(i.value).then(l=>n({value:l,done:p}),s)))),r("next"),r("return"),e);var we={};g(we,{default:()=>b});module.exports=ne(we);var v={};g(v,{create:()=>pe});var x={};g(x,{getApiKey:()=>u,promptLayerAllPromptTemplates:()=>N,promptLayerApiRequest:()=>S,promptLayerCreateGroup:()=>j,promptLayerGetPrompt:()=>O,promptLayerPublishPrompt:()=>$,promptLayerTrackGroup:()=>W,promptLayerTrackMetadata:()=>A,promptLayerTrackPrompt:()=>G,promptLayerTrackScore:()=>I,promptlayerApiHandler:()=>R});var y="https://api.promptlayer.com",u=()=>{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},R=t=>c(void 0,null,function*(){return t.request_response[Symbol.asyncIterator]!==void 0?ie(t.request_response,t):yield S(t)}),S=t=>c(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();return e.status!==200&&d(r,"WARNING: While logging your request, PromptLayer experienced the following error:"),r&&t.return_pl_id?[t.request_response,r.request_id]:t.request_response}catch(e){console.warn(`WARNING: While logging your request PromptLayer had the following error: ${e}`)}}),N=t=>c(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":u()}}),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}`)}}),O=t=>c(void 0,null,function*(){var i,n,s;let e={prompt_name:t.prompt_name,version:(n=(i=t.version)==null?void 0:i.toString())!=null?n:"",label:(s=t.label)!=null?s:""},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":u()}})}catch(p){throw new Error(`PromptLayer had the following error while getting your prompt: ${p}`)}let a=yield o.json();return o.status!==200&&X(a,"PromptLayer had the following error while retrieving your prompt template"),a}),$=t=>c(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(h(f({},t),{api_key:u()}))})}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&&X(r,"PromptLayer had the following error while publishing your prompt"),!0}),A=t=>c(void 0,null,function*(){try{let e=yield fetch(`${y}/library-track-metadata`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h(f({},t),{api_key:u()}))}),r=yield e.json();if(e.status!==200)return d(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}),I=t=>c(void 0,null,function*(){try{let e=yield fetch(`${y}/library-track-score`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h(f({},t),{api_key:u()}))}),r=yield e.json();if(e.status!==200)return d(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}),G=t=>c(void 0,null,function*(){try{let e=yield fetch(`${y}/library-track-prompt`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h(f({},t),{api_key:u()}))}),r=yield e.json();if(e.status!==200)return d(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}),W=t=>c(void 0,null,function*(){try{let e=yield fetch(`${y}/track-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h(f({},t),{api_key:u()}))}),r=yield e.json();if(e.status!==200)return d(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}),j=()=>c(void 0,null,function*(){try{let t=yield fetch(`${y}/create-group`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({api_key:u()})}),e=yield t.json();return t.status!==200?(d(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}}),se=t=>{if("completion"in t[0])return t.reduce((e,r)=>h(f({},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 ie(t,e){return D(this,null,function*(){let r=[];try{for(var i=H(t),n,s,p;n=!(s=yield new P(i.next())).done;n=!1){let l=s.value;yield l,r.push(l)}}catch(s){p=[s]}finally{try{n&&(s=i.return)&&(yield new P(s.call(i)))}finally{if(p)throw p[0]}}let o=se(r);yield yield new P(S(h(f({},e),{request_response:o,request_end_time:new Date().toISOString()})))})}var d=(t,e)=>{try{console.warn(`${e}: ${t.message}`)}catch(r){console.warn(`${e}: ${t}`)}},X=(t,e)=>{throw"message"in t?new Error(`${e}: ${t.message}`):new Error(`${e}: ${t.message}`)};var pe=()=>c(void 0,null,function*(){return yield j()});var z=(t,e="",r="openai")=>{let o={construct:(a,i)=>{let n=Reflect.construct(a,i);return Object.defineProperties(n,{function_name:{value:e,writable:!0},provider:{value:r}}),new Proxy(n,o)},get:(a,i,n)=>{let s=a[i];if(typeof s!="function"&&typeof s!="object")return Reflect.get(a,i,n);if(i==="post")return s;let p=Reflect.get(a,"function_name");return Object.defineProperties(s,{function_name:{value:`${p}.${i.toString()}`,writable:!0},provider:{value:Reflect.get(a,"provider")}}),new Proxy(s,o)},apply:(a,i,n)=>{var m,C,J,M;let s=new Date().toISOString(),p=Reflect.get(a,"function_name"),l=Reflect.get(a,"provider"),T=(m=n[0])==null?void 0:m.return_pl_id,_=(C=n[0])==null?void 0:C.pl_tags;(J=n[0])==null||delete J.return_pl_id,(M=n[0])==null||delete M.pl_tags;let w=Reflect.apply(a,i,n);return w instanceof Promise?new Promise((F,Q)=>{w.then(L=>c(void 0,null,function*(){let V=yield R({api_key:u(),provider_type:l,function_name:p,request_start_time:s,request_end_time:new Date().toISOString(),request_response:L,kwargs:n[0],return_pl_id:T,tags:_});F(V)})).catch(L=>{Q(L)})}):w}};return new Proxy(t,o)};var q={};g(q,{all:()=>ce,get:()=>le,publish:()=>me});var ce=t=>N(t),le=t=>c(void 0,null,function*(){let e=yield O(t),r=e.prompt_template,o=e.metadata;return{prompt_template:r,metadata:o}}),me=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 E={};g(E,{group:()=>he,metadata:()=>ue,prompt:()=>fe,score:()=>ye});var ue=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 A(t)},ye=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 I(t)},fe=t=>{if(!(t.prompt_input_variables instanceof Object))throw new Error("Prompt template input variable dictionary not provided.");return G(t)},he=t=>W(t);var de=new Proxy({OpenAI:{},Anthropic:{},api_key:process.env.PROMPTLAYER_API_KEY,utils:x,track:E,groups:v,prompts:q},{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)}}),b=de;
|
|
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/track.ts"],"sourcesContent":["import * as groups from \"@/groups\";\nimport promptlayer from \"@/promptlayer\";\nimport * as prompts from \"@/prompts\";\nimport * as track from \"@/track\";\nimport * as utils from \"@/utils\";\n\nexport default {\n OpenAI: promptlayer.OpenAI,\n Anthropic: promptlayer.Anthropic,\n api_key: promptlayer.api_key,\n utils,\n track,\n groups,\n prompts,\n};\n","import { promptLayerCreateGroup } from \"@/utils\";\n\nconst create = async (): Promise<number | boolean> =>\n await promptLayerCreateGroup();\n\nexport { create };\n","import promptlayer from \"@/promptlayer\";\nimport {\n GetPromptTemplate,\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 return body.request_response;\n } catch (e) {\n console.warn(\n `WARNING: While logging your request PromptLayer had the following error: ${e}`\n );\n }\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 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 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\nconst 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 if (typeof value !== \"function\" && typeof value !== \"object\")\n return Reflect.get(target, prop, receiver);\n if (prop === \"post\") return value;\n const function_name = Reflect.get(target, \"function_name\");\n Object.defineProperties(value, {\n function_name: {\n value: `${function_name}.${prop.toString()}`,\n writable: true,\n },\n provider: {\n value: Reflect.get(target, \"provider\"),\n },\n });\n return new Proxy(value, handler);\n },\n apply: (target, thisArg, argArray) => {\n const request_start_time = new Date().toISOString();\n const function_name = Reflect.get(target, \"function_name\");\n const provider_type = Reflect.get(target, \"provider\");\n const return_pl_id = argArray[0]?.return_pl_id;\n const pl_tags = argArray[0]?.pl_tags;\n delete argArray[0]?.return_pl_id;\n delete argArray[0]?.pl_tags;\n const response = Reflect.apply(target, thisArg, argArray);\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: argArray[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 new Proxy(llm, handler);\n};\n\nconst dynamicExports = new Proxy<{\n OpenAI: any;\n Anthropic: any;\n api_key: string | undefined;\n}>(\n {\n OpenAI: {},\n Anthropic: {},\n api_key: process.env.PROMPTLAYER_API_KEY,\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\nexport default dynamicExports;\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 { 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":"4rDAAA,IAAAA,GAAA,GAAAC,EAAAD,GAAA,aAAAE,KAAA,eAAAC,GAAAH,ICAA,IAAAI,EAAA,GAAAC,EAAAD,EAAA,YAAAE,KCAA,IAAAC,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,kCAAAC,EAAA,0BAAAC,EAAA,2BAAAC,EAAA,yBAAAC,EAAA,6BAAAC,EAAA,0BAAAC,EAAA,6BAAAC,EAAA,2BAAAC,EAAA,0BAAAC,EAAA,0BAAAC,ICEA,IAAMC,GAAkB,CACtBC,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,EACzB,GAAI,OAAOE,GAAU,YAAc,OAAOA,GAAU,SAClD,OAAO,QAAQ,IAAIL,EAAQG,EAAMC,CAAQ,EAC3C,GAAID,IAAS,OAAQ,OAAOE,EAC5B,IAAMR,EAAgB,QAAQ,IAAIG,EAAQ,eAAe,EACzD,cAAO,iBAAiBK,EAAO,CAC7B,cAAe,CACb,MAAO,GAAGR,CAAa,IAAIM,EAAK,SAAS,CAAC,GAC1C,SAAU,EACZ,EACA,SAAU,CACR,MAAO,QAAQ,IAAIH,EAAQ,UAAU,CACvC,CACF,CAAC,EACM,IAAI,MAAMK,EAAON,CAAO,CACjC,EACA,MAAO,CAACC,EAAQM,EAASC,IAAa,CAtC1C,IAAAC,EAAAC,EAAAC,EAAAC,EAuCM,IAAMC,EAAqB,IAAI,KAAK,EAAE,YAAY,EAC5Cf,EAAgB,QAAQ,IAAIG,EAAQ,eAAe,EACnDa,EAAgB,QAAQ,IAAIb,EAAQ,UAAU,EAC9Cc,GAAeN,EAAAD,EAAS,CAAC,IAAV,YAAAC,EAAa,aAC5BO,GAAUN,EAAAF,EAAS,CAAC,IAAV,YAAAE,EAAa,SAC7BC,EAAOH,EAAS,CAAC,IAAjB,aAAAG,EAAoB,cACpBC,EAAOJ,EAAS,CAAC,IAAjB,aAAAI,EAAoB,QACpB,IAAMK,EAAW,QAAQ,MAAMhB,EAAQM,EAASC,CAAQ,EACxD,OAAIS,aAAoB,QACf,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCF,EACG,KAAYG,GAAqBC,EAAA,wBAChC,IAAMJ,EAAW,MAAMK,EAAsB,CAC3C,QAASC,EAAU,EACnB,cAAAT,EACA,cAAAhB,EACA,mBAAAe,EACA,iBAAkB,IAAI,KAAK,EAAE,YAAY,EACzC,iBAAAO,EACA,OAAQZ,EAAS,CAAC,EAClB,aAAAO,EACA,KAAMC,CACR,CAAC,EACDE,EAAQD,CAAQ,CAClB,EAAC,EACA,MAAOO,GAAU,CAChBL,EAAOK,CAAK,CACd,CAAC,CACL,CAAC,EAEIP,CACT,CACF,EACA,OAAO,IAAI,MAAMpB,EAAKG,CAAO,CAC/B,EAEMyB,GAAiB,IAAI,MAKzB,CACE,OAAQ,CAAC,EACT,UAAW,CAAC,EACZ,QAAS,QAAQ,IAAI,mBACvB,EACA,CACE,IAAK,CAACxB,EAAQG,EAAMC,IAAa,CAC/B,GAAI,CAAC,SAAU,WAAW,EAAE,SAASD,EAAK,SAAS,CAAC,EAAG,CACrD,IAAMsB,EAAatB,IAAS,SAAW,SAAW,oBAC5CuB,EAAS,QAAQD,CAAU,EAAE,QACnC,OAAO9B,GACL+B,EACAvB,EAAK,SAAS,EAAE,YAAY,EAC5BA,EAAK,SAAS,EAAE,YAAY,CAC9B,CACF,CACA,OAAO,QAAQ,IAAIH,EAAQG,EAAMC,CAAQ,CAC3C,CACF,CACF,EAEOuB,EAAQH,GDzFf,IAAMI,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,OANIA,EAAS,SAAW,KACtBE,EACED,EACA,mFACF,EAEEA,GAAQL,EAAK,aACR,CAACA,EAAK,iBAAkBK,EAAK,UAAU,EAEzCL,EAAK,gBACd,OAAS,EAAG,CACV,QAAQ,KACN,4EAA4E,CAAC,EAC/E,CACF,CACF,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,wBAnGhE,IAAAa,EAAAC,EAAAC,EAoGE,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,GAAkBC,GAAmB,CACzC,GAAI,eAAgBA,EAAQ,CAAC,EAC3B,OAAOA,EAAQ,OACb,CAACC,EAAMC,IAAaV,EAAAC,EAAA,GACfS,GADe,CAElB,WAAY,GAAGD,EAAK,UAAU,GAAGC,EAAQ,UAAU,EACrD,GACA,CAAC,CACH,EACF,GAAI,SAAUF,EAAQ,CAAC,EAAE,QAAQ,CAAC,EAAG,CACnC,IAAIvB,EAAW,GACf,QAAW0B,KAAUH,EACnBvB,EAAW,GAAGA,CAAQ,GAAG0B,EAAO,QAAQ,CAAC,EAAE,IAAI,GAEjD,IAAMC,EAAe,gBAAgBJ,EAAQ,GAAG,EAAE,CAAC,EACnD,OAAAI,EAAa,QAAQ,CAAC,EAAE,KAAO3B,EACxB2B,CACT,SAAW,UAAWJ,EAAQ,CAAC,EAAE,QAAQ,CAAC,EAAG,CAC3C,IAAIvB,EAAW,CAAE,KAAM,GAAI,QAAS,EAAG,EACvC,QAAW0B,KAAUH,EACf,SAAUG,EAAO,QAAQ,CAAC,EAAE,QAC9B1B,EAAS,KAAO0B,EAAO,QAAQ,CAAC,EAAE,MAAM,MAEtC,YAAaA,EAAO,QAAQ,CAAC,EAAE,QACjC1B,EAAS,QAAU,GAAGA,EAAS,OAAU,GAAG0B,EAAO,QAAQ,CAAC,EAAE,MAAM,OAAO,IAG/E,IAAMC,EAAe,gBAAgBJ,EAAQ,GAAG,EAAE,CAAC,EACnD,OAAAI,EAAa,QAAQ,CAAC,EAAI3B,EACnB2B,CACT,CACA,MAAO,EACT,EAEA,SAAgB7B,GACd8B,EACAhC,EACA,QAAAiC,EAAA,sBACA,IAAMN,EAAU,CAAC,EACjB,YAAAO,EAAAC,EAA0BH,GAA1BI,EAAAC,EAAAC,EAAAF,EAAA,EAAAC,EAAA,UAAAE,EAAAL,EAAA,cAAAE,EAAA,GACE,CADS,IAAMzB,EAAjB0B,EAAA,MACE,MAAM1B,EACNgB,EAAQ,KAAKhB,CAAK,SAFpB0B,EAlWF,CAkWEC,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,EAAMpC,EAAsBgB,EAAAC,EAAA,GACxCpB,GADwC,CAE3C,iBAAAwC,EACA,iBAAkB,IAAI,KAAK,EAAE,YAAY,CAC3C,EAAC,EAEH,GAEA,IAAMlC,EAAoB,CAACkC,EAAuBC,IAAyB,CACzE,GAAI,CACF,QAAQ,KAAK,GAAGA,CAAY,KAAKD,EAAiB,OAAO,EAAE,CAC7D,OAAS5B,EAAG,CACV,QAAQ,KAAK,GAAG6B,CAAY,KAAKD,CAAgB,EAAE,CACrD,CACF,EAEMvB,EAAqB,CAACuB,EAAuBC,IAAyB,CAC1E,KAAI,YAAaD,EACT,IAAI,MAAM,GAAGC,CAAY,KAAKD,EAAiB,OAAO,EAAE,EAE1D,IAAI,MAAM,GAAGC,CAAY,KAAKD,EAAiB,OAAO,EAAE,CAChE,ED1XA,IAAME,GAAS,IAAoCC,EAAA,wBACjD,aAAMC,EAAuB,IGH/B,IAAAC,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,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,ELjC9D,IAAOU,GAAQ,CACb,OAAQC,EAAY,OACpB,UAAWA,EAAY,UACvB,QAASA,EAAY,QACrB,MAAAC,EACA,MAAAC,EACA,OAAAC,EACA,QAAAC,CACF","names":["src_exports","__export","src_default","__toCommonJS","groups_exports","__export","create","utils_exports","__export","getApiKey","promptLayerAllPromptTemplates","promptLayerApiRequest","promptLayerCreateGroup","promptLayerGetPrompt","promptLayerPublishPrompt","promptLayerTrackGroup","promptLayerTrackMetadata","promptLayerTrackPrompt","promptLayerTrackScore","promptlayerApiHandler","promptLayerBase","llm","function_name","provider","handler","target","args","newTarget","prop","receiver","value","thisArg","argArray","_a","_b","_c","_d","request_start_time","provider_type","return_pl_id","pl_tags","response","resolve","reject","request_response","__async","promptlayerApiHandler","getApiKey","error","dynamicExports","moduleName","module","promptlayer_default","URL_API_PROMPTLAYER","getApiKey","promptlayer_default","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","cleaned_result","results","prev","current","result","final_result","generator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","request_response","main_message","create","__async","promptLayerCreateGroup","prompts_exports","__export","all","getPrompt","publishPrompt","all","params","promptLayerAllPromptTemplates","getPrompt","__async","prompt","promptLayerGetPrompt","prompt_template","metadata","publishPrompt","body","commit_message","promptLayerPublishPrompt","track_exports","__export","group","metadata","prompt","score","metadata","body","key","value","promptLayerTrackMetadata","score","promptLayerTrackScore","prompt","promptLayerTrackPrompt","group","promptLayerTrackGroup","src_default","promptlayer_default","utils_exports","track_exports","groups_exports","prompts_exports"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/groups.ts","../src/utils.ts","../src/promptlayer.ts","../src/prompts.ts","../src/track.ts"],"sourcesContent":["import * as groups from \"@/groups\";\nimport { promptLayerBase } from \"@/promptlayer\";\nimport * as prompts from \"@/prompts\";\nimport * as track from \"@/track\";\nimport * as utils from \"@/utils\";\n\nconst dynamicExports = 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}>(\n {\n OpenAI: {},\n Anthropic: {},\n api_key: process.env.PROMPTLAYER_API_KEY,\n utils,\n track,\n groups,\n prompts,\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\nexport default dynamicExports;\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 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 return body.request_response;\n } catch (e) {\n console.warn(\n `WARNING: While logging your request PromptLayer had the following error: ${e}`\n );\n }\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 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 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 if (typeof value !== \"function\" && typeof value !== \"object\")\n return Reflect.get(target, prop, receiver);\n if (prop === \"post\") return value;\n const function_name = Reflect.get(target, \"function_name\");\n Object.defineProperties(value, {\n function_name: {\n value: `${function_name}.${prop.toString()}`,\n writable: true,\n },\n provider: {\n value: Reflect.get(target, \"provider\"),\n },\n });\n return new Proxy(value, handler);\n },\n apply: (target, thisArg, argArray) => {\n const request_start_time = new Date().toISOString();\n const function_name = Reflect.get(target, \"function_name\");\n const provider_type = Reflect.get(target, \"provider\");\n const return_pl_id = argArray[0]?.return_pl_id;\n const pl_tags = argArray[0]?.pl_tags;\n delete argArray[0]?.return_pl_id;\n delete argArray[0]?.pl_tags;\n const response = Reflect.apply(target, thisArg, argArray);\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: argArray[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 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 { 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","src_default","__toCommonJS","groups_exports","__export","create","utils_exports","__export","getApiKey","promptLayerAllPromptTemplates","promptLayerApiRequest","promptLayerCreateGroup","promptLayerGetPrompt","promptLayerPublishPrompt","promptLayerTrackGroup","promptLayerTrackMetadata","promptLayerTrackPrompt","promptLayerTrackScore","promptlayerApiHandler","URL_API_PROMPTLAYER","getApiKey","src_default","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","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","thisArg","argArray","_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","track_exports","__export","group","metadata","prompt","score","metadata","body","key","value","promptLayerTrackMetadata","score","promptLayerTrackScore","prompt","promptLayerTrackPrompt","group","promptLayerTrackGroup","dynamicExports","utils_exports","track_exports","groups_exports","prompts_exports","target","prop","receiver","moduleName","module","promptLayerBase","src_default"]}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,15 +1,41 @@
|
|
|
1
1
|
import * as groups from "@/groups";
|
|
2
|
-
import
|
|
2
|
+
import { promptLayerBase } from "@/promptlayer";
|
|
3
3
|
import * as prompts from "@/prompts";
|
|
4
4
|
import * as track from "@/track";
|
|
5
5
|
import * as utils from "@/utils";
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
OpenAI:
|
|
9
|
-
Anthropic:
|
|
10
|
-
api_key:
|
|
11
|
-
utils
|
|
12
|
-
track
|
|
13
|
-
groups
|
|
14
|
-
prompts
|
|
15
|
-
}
|
|
7
|
+
const dynamicExports = new Proxy<{
|
|
8
|
+
OpenAI: any;
|
|
9
|
+
Anthropic: any;
|
|
10
|
+
api_key: string | undefined;
|
|
11
|
+
utils: typeof utils;
|
|
12
|
+
track: typeof track;
|
|
13
|
+
groups: typeof groups;
|
|
14
|
+
prompts: typeof prompts;
|
|
15
|
+
}>(
|
|
16
|
+
{
|
|
17
|
+
OpenAI: {},
|
|
18
|
+
Anthropic: {},
|
|
19
|
+
api_key: process.env.PROMPTLAYER_API_KEY,
|
|
20
|
+
utils,
|
|
21
|
+
track,
|
|
22
|
+
groups,
|
|
23
|
+
prompts,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
get: (target, prop, receiver) => {
|
|
27
|
+
if (["OpenAI", "Anthropic"].includes(prop.toString())) {
|
|
28
|
+
const moduleName = prop === "OpenAI" ? "openai" : "@anthropic-ai/sdk";
|
|
29
|
+
const module = require(moduleName).default;
|
|
30
|
+
return promptLayerBase(
|
|
31
|
+
module,
|
|
32
|
+
prop.toString().toLowerCase(),
|
|
33
|
+
prop.toString().toLowerCase()
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
return Reflect.get(target, prop, receiver);
|
|
37
|
+
},
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
export default dynamicExports;
|
package/src/promptlayer.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getApiKey, promptlayerApiHandler } from "@/utils";
|
|
2
2
|
|
|
3
|
-
const promptLayerBase = (
|
|
3
|
+
export const promptLayerBase = (
|
|
4
4
|
llm: object,
|
|
5
5
|
function_name = "",
|
|
6
6
|
provider = "openai"
|
|
@@ -72,31 +72,3 @@ const promptLayerBase = (
|
|
|
72
72
|
};
|
|
73
73
|
return new Proxy(llm, handler);
|
|
74
74
|
};
|
|
75
|
-
|
|
76
|
-
const dynamicExports = new Proxy<{
|
|
77
|
-
OpenAI: any;
|
|
78
|
-
Anthropic: any;
|
|
79
|
-
api_key: string | undefined;
|
|
80
|
-
}>(
|
|
81
|
-
{
|
|
82
|
-
OpenAI: {},
|
|
83
|
-
Anthropic: {},
|
|
84
|
-
api_key: process.env.PROMPTLAYER_API_KEY,
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
get: (target, prop, receiver) => {
|
|
88
|
-
if (["OpenAI", "Anthropic"].includes(prop.toString())) {
|
|
89
|
-
const moduleName = prop === "OpenAI" ? "openai" : "@anthropic-ai/sdk";
|
|
90
|
-
const module = require(moduleName).default;
|
|
91
|
-
return promptLayerBase(
|
|
92
|
-
module,
|
|
93
|
-
prop.toString().toLowerCase(),
|
|
94
|
-
prop.toString().toLowerCase()
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
return Reflect.get(target, prop, receiver);
|
|
98
|
-
},
|
|
99
|
-
}
|
|
100
|
-
);
|
|
101
|
-
|
|
102
|
-
export default dynamicExports;
|
package/src/utils.ts
CHANGED