/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@empiricalrun/llm@0.26.0/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__exportStar=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.handlebarsLoaderForVitest=exports.calculateOpenAITokenCosts=exports.flushAllTraces=exports.compilePrompt=exports.shutdownLangfuse=exports.langfuseInstance=exports.getLangfuseInstance=exports.createLangfuseTrace=exports.observeOpenAI=exports.LLM=void 0;const async_retry_1=__importDefault(require("async-retry")),openai_1=__importDefault(require("openai")),portkey_ai_1=require("portkey-ai"),lib_1=require("./prompts/lib");Object.defineProperty(exports,"compilePrompt",{enumerable:!0,get:function(){return lib_1.compilePrompt}});const trace_1=require("./trace");Object.defineProperty(exports,"flushAllTraces",{enumerable:!0,get:function(){return trace_1.flushAllTraces}});class LLM{_trace;_provider;_providerApiKey;_usedTokens=0;_defaultModel;_maxTokens;completionTokens=0;promptTokens=0;constructor({trace:e,provider:t,providerApiKey:r,maxTokens:o,defaultModel:n}){this._trace=e,this._provider=t,this._providerApiKey=r,this._maxTokens=o??1e6,this._defaultModel=n}async createChatCompletion({messages:e,modelParameters:t,model:r,tools:o,trace:n,responseFormat:s,traceName:a="get-llm-result"}){if(this._usedTokens>=this._maxTokens)throw new Error(`Exceeded max tokens limit of ${this._maxTokens} tokens. Please try again later.`);const i=new openai_1.default({apiKey:this._providerApiKey,baseURL:"https://ai.empirical.run/v1/",defaultHeaders:(0,portkey_ai_1.createHeaders)({provider:this._provider})});r=r||this._defaultModel;const u=(n||this._trace)?.generation({name:a,model:r,modelParameters:t,input:{messages:e,tools:o}});try{const n=await(0,async_retry_1.default)((async n=>{try{return await i.chat.completions.create({messages:e,model:r,tools:o,max_completion_tokens:1e3,...t,stream:!1,response_format:s})}catch(e){if(e instanceof openai_1.default.APIError&&e.status&&[400,401,403].includes(e.status))return void n(e);throw e}}),{retries:5,factor:3,minTimeout:1e3,maxTimeout:6e4,randomize:!0}),a=n?.choices[0]?.message;return n&&!n.usage?.total_tokens&&console.warn("No usage.total_tokens in completion"),this.completionTokens=n?.usage?.completion_tokens||0,this.promptTokens=n?.usage?.prompt_tokens||0,this._usedTokens+=n?.usage?.total_tokens||0,u?.end({output:a,usage:this.completionTokens&&this.promptTokens?{input:this.promptTokens,output:this.completionTokens,unit:"TOKENS"}:void 0}),a}catch(e){throw u?.end({output:{error:!0,message:e.message||e.toString()}}),await(0,trace_1.flushAllTraces)(),e}}}exports.LLM=LLM;var langfuse_1=require("langfuse");Object.defineProperty(exports,"observeOpenAI",{enumerable:!0,get:function(){return langfuse_1.observeOpenAI}});var trace_2=require("./trace");Object.defineProperty(exports,"createLangfuseTrace",{enumerable:!0,get:function(){return trace_2.createLangfuseTrace}}),Object.defineProperty(exports,"getLangfuseInstance",{enumerable:!0,get:function(){return trace_2.getLangfuseInstance}}),Object.defineProperty(exports,"langfuseInstance",{enumerable:!0,get:function(){return trace_2.langfuseInstance}}),Object.defineProperty(exports,"shutdownLangfuse",{enumerable:!0,get:function(){return trace_2.shutdownLangfuse}}),__exportStar(require("./audio"),exports);var pricing_1=require("./chat/openai/pricing");Object.defineProperty(exports,"calculateOpenAITokenCosts",{enumerable:!0,get:function(){return pricing_1.calculateTokenCosts}});var vitest_plugin_1=require("./prompts/lib/vitest-plugin");Object.defineProperty(exports,"handlebarsLoaderForVitest",{enumerable:!0,get:function(){return vitest_plugin_1.handlebarsLoader}});
//# sourceMappingURL=/sm/6fe01617aab08713411d0018c367c0039a9e77455668f62c7c9c9b4400219370.map