openlit 1.11.0 → 1.12.0
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/README.md +1 -1
- package/dist/config.d.ts +12 -4
- package/dist/config.js +7 -17
- package/dist/config.js.map +1 -1
- package/dist/evals/llm/anthropic.js +10 -6
- package/dist/evals/llm/anthropic.js.map +1 -1
- package/dist/evals/llm/openai.js +9 -5
- package/dist/evals/llm/openai.js.map +1 -1
- package/dist/features/vault.js +1 -1
- package/dist/features/vault.js.map +1 -1
- package/dist/helpers.d.ts +93 -1
- package/dist/helpers.js +270 -8
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.js +95 -50
- package/dist/index.js.map +1 -1
- package/dist/instrumentation/__tests__/anthropic-wrapper.test.js +215 -27
- package/dist/instrumentation/__tests__/anthropic-wrapper.test.js.map +1 -1
- package/dist/instrumentation/__tests__/base-wrapper.test.js +19 -23
- package/dist/instrumentation/__tests__/base-wrapper.test.js.map +1 -1
- package/dist/instrumentation/__tests__/bedrock-trace-comparison.test.d.ts +1 -0
- package/dist/instrumentation/__tests__/bedrock-trace-comparison.test.js +422 -0
- package/dist/instrumentation/__tests__/bedrock-trace-comparison.test.js.map +1 -0
- package/dist/instrumentation/__tests__/chroma-trace-comparison.test.js +1 -1
- package/dist/instrumentation/__tests__/chroma-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/cohere-wrapper.test.js +150 -25
- package/dist/instrumentation/__tests__/cohere-wrapper.test.js.map +1 -1
- package/dist/instrumentation/__tests__/google-ai-trace-comparison.test.js +152 -33
- package/dist/instrumentation/__tests__/google-ai-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/groq-trace-comparison.test.js +391 -45
- package/dist/instrumentation/__tests__/groq-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/huggingface-trace-comparison.test.d.ts +2 -2
- package/dist/instrumentation/__tests__/huggingface-trace-comparison.test.js +323 -31
- package/dist/instrumentation/__tests__/huggingface-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/langchain-wrapper.test.d.ts +1 -0
- package/dist/instrumentation/__tests__/langchain-wrapper.test.js +282 -0
- package/dist/instrumentation/__tests__/langchain-wrapper.test.js.map +1 -0
- package/dist/instrumentation/__tests__/milvus-trace-comparison.test.js +1 -1
- package/dist/instrumentation/__tests__/milvus-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/mistral-trace-comparison.test.d.ts +0 -3
- package/dist/instrumentation/__tests__/mistral-trace-comparison.test.js +275 -68
- package/dist/instrumentation/__tests__/mistral-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/openai-wrapper.test.js +7 -9
- package/dist/instrumentation/__tests__/openai-wrapper.test.js.map +1 -1
- package/dist/instrumentation/__tests__/qdrant-trace-comparison.test.js +1 -1
- package/dist/instrumentation/__tests__/qdrant-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/replicate-trace-comparison.test.d.ts +2 -1
- package/dist/instrumentation/__tests__/replicate-trace-comparison.test.js +209 -21
- package/dist/instrumentation/__tests__/replicate-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/together-trace-comparison.test.js +231 -51
- package/dist/instrumentation/__tests__/together-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/vercel-ai-trace-comparison.test.d.ts +8 -0
- package/dist/instrumentation/__tests__/vercel-ai-trace-comparison.test.js +446 -0
- package/dist/instrumentation/__tests__/vercel-ai-trace-comparison.test.js.map +1 -0
- package/dist/instrumentation/anthropic/index.d.ts +2 -3
- package/dist/instrumentation/anthropic/index.js.map +1 -1
- package/dist/instrumentation/anthropic/wrapper.d.ts +1 -3
- package/dist/instrumentation/anthropic/wrapper.js +211 -91
- package/dist/instrumentation/anthropic/wrapper.js.map +1 -1
- package/dist/instrumentation/azure-ai-inference/index.d.ts +11 -0
- package/dist/instrumentation/azure-ai-inference/index.js +76 -0
- package/dist/instrumentation/azure-ai-inference/index.js.map +1 -0
- package/dist/instrumentation/azure-ai-inference/wrapper.d.ts +42 -0
- package/dist/instrumentation/azure-ai-inference/wrapper.js +515 -0
- package/dist/instrumentation/azure-ai-inference/wrapper.js.map +1 -0
- package/dist/instrumentation/base-wrapper.d.ts +2 -1
- package/dist/instrumentation/base-wrapper.js +35 -23
- package/dist/instrumentation/base-wrapper.js.map +1 -1
- package/dist/instrumentation/bedrock/wrapper.d.ts +21 -3
- package/dist/instrumentation/bedrock/wrapper.js +318 -265
- package/dist/instrumentation/bedrock/wrapper.js.map +1 -1
- package/dist/instrumentation/chroma/wrapper.js +1 -1
- package/dist/instrumentation/chroma/wrapper.js.map +1 -1
- package/dist/instrumentation/claude-agent-sdk/index.d.ts +23 -0
- package/dist/instrumentation/claude-agent-sdk/index.js +83 -0
- package/dist/instrumentation/claude-agent-sdk/index.js.map +1 -0
- package/dist/instrumentation/claude-agent-sdk/wrapper.d.ts +13 -0
- package/dist/instrumentation/claude-agent-sdk/wrapper.js +1031 -0
- package/dist/instrumentation/claude-agent-sdk/wrapper.js.map +1 -0
- package/dist/instrumentation/cohere/index.d.ts +2 -3
- package/dist/instrumentation/cohere/index.js.map +1 -1
- package/dist/instrumentation/cohere/wrapper.d.ts +1 -1
- package/dist/instrumentation/cohere/wrapper.js +215 -56
- package/dist/instrumentation/cohere/wrapper.js.map +1 -1
- package/dist/instrumentation/google-adk/index.d.ts +57 -0
- package/dist/instrumentation/google-adk/index.js +371 -0
- package/dist/instrumentation/google-adk/index.js.map +1 -0
- package/dist/instrumentation/google-adk/utils.d.ts +45 -0
- package/dist/instrumentation/google-adk/utils.js +663 -0
- package/dist/instrumentation/google-adk/utils.js.map +1 -0
- package/dist/instrumentation/google-adk/wrapper.d.ts +11 -0
- package/dist/instrumentation/google-adk/wrapper.js +391 -0
- package/dist/instrumentation/google-adk/wrapper.js.map +1 -0
- package/dist/instrumentation/google-ai/wrapper.d.ts +7 -4
- package/dist/instrumentation/google-ai/wrapper.js +197 -61
- package/dist/instrumentation/google-ai/wrapper.js.map +1 -1
- package/dist/instrumentation/groq/wrapper.js +137 -65
- package/dist/instrumentation/groq/wrapper.js.map +1 -1
- package/dist/instrumentation/huggingface/wrapper.js +241 -39
- package/dist/instrumentation/huggingface/wrapper.js.map +1 -1
- package/dist/instrumentation/index.d.ts +2 -2
- package/dist/instrumentation/index.js +64 -6
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/instrumentation/langchain/index.d.ts +0 -7
- package/dist/instrumentation/langchain/index.js +2 -20
- package/dist/instrumentation/langchain/index.js.map +1 -1
- package/dist/instrumentation/langchain/wrapper.d.ts +35 -0
- package/dist/instrumentation/langchain/wrapper.js +1098 -184
- package/dist/instrumentation/langchain/wrapper.js.map +1 -1
- package/dist/instrumentation/langgraph/index.d.ts +12 -0
- package/dist/instrumentation/langgraph/index.js +99 -0
- package/dist/instrumentation/langgraph/index.js.map +1 -0
- package/dist/instrumentation/langgraph/wrapper.d.ts +20 -0
- package/dist/instrumentation/langgraph/wrapper.js +619 -0
- package/dist/instrumentation/langgraph/wrapper.js.map +1 -0
- package/dist/instrumentation/llamaindex/index.d.ts +31 -6
- package/dist/instrumentation/llamaindex/index.js +180 -61
- package/dist/instrumentation/llamaindex/index.js.map +1 -1
- package/dist/instrumentation/llamaindex/wrapper.d.ts +15 -3
- package/dist/instrumentation/llamaindex/wrapper.js +670 -179
- package/dist/instrumentation/llamaindex/wrapper.js.map +1 -1
- package/dist/instrumentation/milvus/wrapper.js +1 -1
- package/dist/instrumentation/milvus/wrapper.js.map +1 -1
- package/dist/instrumentation/mistral/wrapper.js +154 -79
- package/dist/instrumentation/mistral/wrapper.js.map +1 -1
- package/dist/instrumentation/ollama/index.js +33 -4
- package/dist/instrumentation/ollama/index.js.map +1 -1
- package/dist/instrumentation/ollama/wrapper.d.ts +28 -2
- package/dist/instrumentation/ollama/wrapper.js +432 -48
- package/dist/instrumentation/ollama/wrapper.js.map +1 -1
- package/dist/instrumentation/openai/index.d.ts +2 -3
- package/dist/instrumentation/openai/index.js.map +1 -1
- package/dist/instrumentation/openai/wrapper.js +293 -194
- package/dist/instrumentation/openai/wrapper.js.map +1 -1
- package/dist/instrumentation/openai-agents/index.d.ts +20 -0
- package/dist/instrumentation/openai-agents/index.js +174 -0
- package/dist/instrumentation/openai-agents/index.js.map +1 -0
- package/dist/instrumentation/openai-agents/processor.d.ts +35 -0
- package/dist/instrumentation/openai-agents/processor.js +249 -0
- package/dist/instrumentation/openai-agents/processor.js.map +1 -0
- package/dist/instrumentation/openai-agents/utils.d.ts +20 -0
- package/dist/instrumentation/openai-agents/utils.js +624 -0
- package/dist/instrumentation/openai-agents/utils.js.map +1 -0
- package/dist/instrumentation/pinecone/wrapper.js +2 -2
- package/dist/instrumentation/pinecone/wrapper.js.map +1 -1
- package/dist/instrumentation/qdrant/wrapper.js +1 -1
- package/dist/instrumentation/qdrant/wrapper.js.map +1 -1
- package/dist/instrumentation/replicate/wrapper.js +103 -21
- package/dist/instrumentation/replicate/wrapper.js.map +1 -1
- package/dist/instrumentation/strands/index.d.ts +21 -0
- package/dist/instrumentation/strands/index.js +83 -0
- package/dist/instrumentation/strands/index.js.map +1 -0
- package/dist/instrumentation/strands/processor.d.ts +45 -0
- package/dist/instrumentation/strands/processor.js +545 -0
- package/dist/instrumentation/strands/processor.js.map +1 -0
- package/dist/instrumentation/strands/utils.d.ts +24 -0
- package/dist/instrumentation/strands/utils.js +360 -0
- package/dist/instrumentation/strands/utils.js.map +1 -0
- package/dist/instrumentation/together/wrapper.js +125 -51
- package/dist/instrumentation/together/wrapper.js.map +1 -1
- package/dist/instrumentation/vercel-ai/wrapper.d.ts +28 -2
- package/dist/instrumentation/vercel-ai/wrapper.js +314 -164
- package/dist/instrumentation/vercel-ai/wrapper.js.map +1 -1
- package/dist/llm/anthropic.js +10 -6
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/openai.js +9 -5
- package/dist/llm/openai.js.map +1 -1
- package/dist/otel/__tests__/metrics.test.js +16 -27
- package/dist/otel/__tests__/metrics.test.js.map +1 -1
- package/dist/otel/events.d.ts +11 -0
- package/dist/otel/events.js +74 -0
- package/dist/otel/events.js.map +1 -0
- package/dist/otel/metrics.d.ts +5 -6
- package/dist/otel/metrics.js +66 -48
- package/dist/otel/metrics.js.map +1 -1
- package/dist/otel/tracing.d.ts +6 -2
- package/dist/otel/tracing.js +71 -24
- package/dist/otel/tracing.js.map +1 -1
- package/dist/otel/utils.d.ts +11 -0
- package/dist/otel/utils.js +34 -0
- package/dist/otel/utils.js.map +1 -0
- package/dist/semantic-convention.d.ts +44 -5
- package/dist/semantic-convention.js +51 -8
- package/dist/semantic-convention.js.map +1 -1
- package/dist/types.d.ts +58 -22
- package/package.json +41 -9
package/README.md
CHANGED
|
@@ -202,7 +202,7 @@ Below is a detailed overview of the configuration options available, allowing yo
|
|
|
202
202
|
| `traceContent` | Enables tracing of content for deeper insights. | `true` | No |
|
|
203
203
|
| `disabledInstrumentations` | List of instrumentations to disable. | `undefined` | No |
|
|
204
204
|
| `instrumentations` | Object of instrumentation modules for manual patching | `undefined` | No |
|
|
205
|
-
| `
|
|
205
|
+
| `pricingJson` | URL or file path of the pricing JSON file. | `https://github.com/openlit/openlit/blob/main/assets/pricing.json` | No |
|
|
206
206
|
|
|
207
207
|
### OpenLIT Prompt Hub - `Openlit.getPrompt()`
|
|
208
208
|
|
package/dist/config.d.ts
CHANGED
|
@@ -7,8 +7,16 @@ export default class OpenlitConfig {
|
|
|
7
7
|
static otlpEndpoint?: OpenlitConfigInterface['otlpEndpoint'];
|
|
8
8
|
static otlpHeaders?: OpenlitConfigInterface['otlpHeaders'];
|
|
9
9
|
static disableBatch?: OpenlitConfigInterface['disableBatch'];
|
|
10
|
-
static
|
|
11
|
-
static
|
|
12
|
-
static
|
|
13
|
-
static
|
|
10
|
+
static captureMessageContent?: OpenlitConfigInterface['captureMessageContent'];
|
|
11
|
+
static pricingJson?: OpenlitConfigInterface['pricingJson'];
|
|
12
|
+
static disableMetrics?: boolean;
|
|
13
|
+
static disableEvents?: boolean;
|
|
14
|
+
static maxContentLength?: number | null;
|
|
15
|
+
static customSpanAttributes?: Record<string, string> | null;
|
|
16
|
+
static updateConfig({ environment, applicationName, tracer, otlpEndpoint, otlpHeaders, disableBatch, captureMessageContent, pricingJson, disableMetrics, disableEvents, maxContentLength, customSpanAttributes, }: Partial<OpenlitConfigInterface> & {
|
|
17
|
+
disableMetrics?: boolean;
|
|
18
|
+
disableEvents?: boolean;
|
|
19
|
+
maxContentLength?: number | null;
|
|
20
|
+
customSpanAttributes?: Record<string, string> | null;
|
|
21
|
+
}): void;
|
|
14
22
|
}
|
package/dist/config.js
CHANGED
|
@@ -1,29 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const helpers_1 = __importDefault(require("./helpers"));
|
|
7
3
|
class OpenlitConfig {
|
|
8
|
-
static
|
|
9
|
-
try {
|
|
10
|
-
const response = await helpers_1.default.fetchPricingInfo(pricing_json);
|
|
11
|
-
this.pricingInfo = response;
|
|
12
|
-
}
|
|
13
|
-
catch (e) {
|
|
14
|
-
this.pricingInfo = {};
|
|
15
|
-
}
|
|
16
|
-
return this.pricingInfo;
|
|
17
|
-
}
|
|
18
|
-
static updateConfig({ environment = 'default', applicationName = 'default', tracer, otlpEndpoint, otlpHeaders, disableBatch = true, traceContent = true, pricing_json, }) {
|
|
4
|
+
static updateConfig({ environment = 'default', applicationName = 'default', tracer, otlpEndpoint, otlpHeaders, disableBatch = false, captureMessageContent = true, pricingJson, disableMetrics = false, disableEvents = false, maxContentLength = null, customSpanAttributes = null, }) {
|
|
19
5
|
this.environment = environment;
|
|
20
6
|
this.applicationName = applicationName;
|
|
21
7
|
this.tracer = tracer;
|
|
22
8
|
this.otlpEndpoint = otlpEndpoint;
|
|
23
9
|
this.otlpHeaders = otlpHeaders;
|
|
24
10
|
this.disableBatch = disableBatch;
|
|
25
|
-
this.
|
|
26
|
-
this.
|
|
11
|
+
this.captureMessageContent = captureMessageContent;
|
|
12
|
+
this.pricingJson = pricingJson;
|
|
13
|
+
this.disableMetrics = disableMetrics;
|
|
14
|
+
this.disableEvents = disableEvents;
|
|
15
|
+
this.maxContentLength = maxContentLength;
|
|
16
|
+
this.customSpanAttributes = customSpanAttributes;
|
|
27
17
|
}
|
|
28
18
|
}
|
|
29
19
|
exports.default = OpenlitConfig;
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAEA,MAAqB,aAAa;IAehC,MAAM,CAAC,YAAY,CAAC,EAClB,WAAW,GAAG,SAAS,EACvB,eAAe,GAAG,SAAS,EAC3B,MAAM,EACN,YAAY,EACZ,WAAW,EACX,YAAY,GAAG,KAAK,EACpB,qBAAqB,GAAG,IAAI,EAC5B,WAAW,EACX,cAAc,GAAG,KAAK,EACtB,aAAa,GAAG,KAAK,EACrB,gBAAgB,GAAG,IAAI,EACvB,oBAAoB,GAAG,IAAI,GAM5B;QACC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,MAA0C,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACnD,CAAC;CACF;AA/CD,gCA+CC"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.llmResponseAnthropic = llmResponseAnthropic;
|
|
7
|
-
const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
|
|
8
4
|
async function llmResponseAnthropic({ prompt, model, apiKey }) {
|
|
9
|
-
|
|
5
|
+
let Anthropic;
|
|
6
|
+
try {
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
8
|
+
Anthropic = require('@anthropic-ai/sdk').default;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
throw new Error("openlit eval features require the '@anthropic-ai/sdk' package. Install it with: npm install @anthropic-ai/sdk");
|
|
12
|
+
}
|
|
13
|
+
const client = new Anthropic({ apiKey });
|
|
10
14
|
const usedModel = model || 'claude-3-opus-20240229';
|
|
11
15
|
const response = await client.messages.create({
|
|
12
16
|
model: usedModel,
|
|
@@ -30,7 +34,7 @@ async function llmResponseAnthropic({ prompt, model, apiKey }) {
|
|
|
30
34
|
// Fallback: join all text blocks that have text
|
|
31
35
|
return response.content
|
|
32
36
|
.filter((p) => p.type === 'text' && typeof p.text === 'string')
|
|
33
|
-
.map(p => p.text)
|
|
37
|
+
.map((p) => p.text)
|
|
34
38
|
.join(' ');
|
|
35
39
|
}
|
|
36
40
|
return '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/evals/llm/anthropic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/evals/llm/anthropic.ts"],"names":[],"mappings":";;AAAA,oDA6CC;AA7CM,KAAK,UAAU,oBAAoB,CAAC,EACzC,MAAM,EACN,KAAK,EACL,MAAM,EAKP;IACC,IAAI,SAAc,CAAC;IACnB,IAAI,CAAC;QACH,8DAA8D;QAC9D,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,+GAA+G,CAChH,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,KAAK,IAAI,wBAAwB,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;SAClC;QACD,WAAW,EAAE,GAAG;QAChB,wEAAwE;KACzE,CAAC,CAAC;IACH,gDAAgD;IAChD,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;IAClE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,gDAAgD;QAChD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9F,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;QACD,gDAAgD;QAChD,OAAO,QAAQ,CAAC,OAAO;aACpB,MAAM,CAAC,CAAC,CAAmC,EAAwC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aACtI,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACpC,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
package/dist/evals/llm/openai.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.llmResponseOpenAI = llmResponseOpenAI;
|
|
7
|
-
const openai_1 = __importDefault(require("openai"));
|
|
8
4
|
async function llmResponseOpenAI({ prompt, model, apiKey, baseUrl }) {
|
|
9
|
-
|
|
5
|
+
let OpenAI;
|
|
6
|
+
try {
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
8
|
+
OpenAI = require('openai').default;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
throw new Error("openlit eval features require the 'openai' package. Install it with: npm install openai");
|
|
12
|
+
}
|
|
13
|
+
const client = new OpenAI({
|
|
10
14
|
apiKey,
|
|
11
15
|
baseURL: baseUrl || 'https://api.openai.com/v1',
|
|
12
16
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/evals/llm/openai.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/evals/llm/openai.ts"],"names":[],"mappings":";;AAAA,8CAkCC;AAlCM,KAAK,UAAU,iBAAiB,CAAC,EACtC,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EAMR;IACC,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,8DAA8D;QAC9D,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM;QACN,OAAO,EAAE,OAAO,IAAI,2BAA2B;KAChD,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,KAAK,IAAI,QAAQ,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACpD,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;SAClC;QACD,WAAW,EAAE,GAAG;QAChB,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;KACzC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AACnD,CAAC"}
|
package/dist/features/vault.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/features/vault.ts"],"names":[],"mappings":";;;;;AAAA,uDAAsC;AACtC,0CAA0C;AAG1C,MAAqB,KAAK;IACxB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAqB;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,IAAI,sBAAW,CAAC;QAClE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QAEnE,MAAM,cAAc,GAAG;YACrB,eAAe,EAAE,gBAAa,CAAC,eAAe;YAC9C,WAAW,EAAE,gBAAa,CAAC,WAAW;SACvC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,wBAAwB,EAAE;gBAChE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,cAAc;oBACd,MAAM,EAAE,QAAQ;iBACjB,CAAC;gBACF,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,MAAM,EAAE;iBAClC;aACF,CAAC;iBACC,IAAI,CAAC,KAAK,EAAE,QAAa,EAAE,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,OAAO;wBACL,GAAG,EAAE,uCAAuC,QAAQ,CAAC,MAAM,EAAE;qBAC9D,CAAC;gBACJ,CAAC;gBACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC,CAAC;iBACD,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE;gBAClB,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEL,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,aAAa,CAAC;YACnC,IAAI,
|
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/features/vault.ts"],"names":[],"mappings":";;;;;AAAA,uDAAsC;AACtC,0CAA0C;AAG1C,MAAqB,KAAK;IACxB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAqB;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,IAAI,sBAAW,CAAC;QAClE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QAEnE,MAAM,cAAc,GAAG;YACrB,eAAe,EAAE,gBAAa,CAAC,eAAe;YAC9C,WAAW,EAAE,gBAAa,CAAC,WAAW;SACvC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,wBAAwB,EAAE;gBAChE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,cAAc;oBACd,MAAM,EAAE,QAAQ;iBACjB,CAAC;gBACF,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,MAAM,EAAE;iBAClC;aACF,CAAC;iBACC,IAAI,CAAC,KAAK,EAAE,QAAa,EAAE,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,OAAO;wBACL,GAAG,EAAE,uCAAuC,QAAQ,CAAC,MAAM,EAAE;qBAC9D,CAAC;gBACJ,CAAC;gBACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC,CAAC;iBACD,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE;gBAClB,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEL,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,aAAa,CAAC;YACnC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAoB,EAAE,EAAE;oBAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAe,CAAC;gBACrC,CAAC,CAAC,CAAC;YACL,CAAC;YAED,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC1C,OAAO;oBACL,GAAG,EAAE,mBAAmB,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACtC,IAAI,EAAE,IAAI;iBACX,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,GAAG,EAAE,mBAAmB,CAAC,EAAE;aAC5B,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAzDD,wBAyDC"}
|
package/dist/helpers.d.ts
CHANGED
|
@@ -1,4 +1,90 @@
|
|
|
1
|
-
import { Span } from '@opentelemetry/api';
|
|
1
|
+
import { Attributes, Context, Span } from '@opentelemetry/api';
|
|
2
|
+
/**
|
|
3
|
+
* Returns true when a framework instrumentor (LangChain, LiteLLM, etc.)
|
|
4
|
+
* owns the current LLM span. Provider-level wrappers (OpenAI, Anthropic, …)
|
|
5
|
+
* must skip their own span creation when this returns true.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isFrameworkLlmActive(): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Run `fn` with the framework-LLM-active flag set. All provider wrappers
|
|
10
|
+
* invoked inside `fn` will see `isFrameworkLlmActive() === true`.
|
|
11
|
+
*/
|
|
12
|
+
export declare function runWithFrameworkLlm<T>(fn: () => T): T;
|
|
13
|
+
/**
|
|
14
|
+
* Set framework-LLM-active flag in the current execution context.
|
|
15
|
+
* Used by SpanProcessor-based instrumentations (Strands) where
|
|
16
|
+
* the processor observes spans rather than controlling execution.
|
|
17
|
+
* Mirrors Python's ContextVar.set(True) in Strands processor.
|
|
18
|
+
*/
|
|
19
|
+
export declare function setFrameworkLlmActive(): void;
|
|
20
|
+
/**
|
|
21
|
+
* Reset framework-LLM-active flag in the current execution context.
|
|
22
|
+
* Mirrors Python's ContextVar.reset(token) in Strands processor.
|
|
23
|
+
*/
|
|
24
|
+
export declare function resetFrameworkLlmActive(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Returns true when a LangGraph wrapper is controlling execution.
|
|
27
|
+
* LangChain's callback handler skips its own invoke_workflow span when true.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isLangGraphActive(): boolean;
|
|
30
|
+
export declare function runWithLangGraph<T>(fn: () => T): T;
|
|
31
|
+
/**
|
|
32
|
+
* Returns true when a create_agent span is already being handled
|
|
33
|
+
* (prevents duplicate spans between LangChain and LangGraph).
|
|
34
|
+
*/
|
|
35
|
+
export declare function isCreateAgentActive(): boolean;
|
|
36
|
+
export declare function runWithCreateAgent<T>(fn: () => T): T;
|
|
37
|
+
/**
|
|
38
|
+
* Propagate conversation ID from invoke_workflow to child node spans.
|
|
39
|
+
* Mirrors Python's set_langgraph_conversation_id / get_langgraph_conversation_id.
|
|
40
|
+
*/
|
|
41
|
+
export declare function getLangGraphConversationId(): string | undefined;
|
|
42
|
+
export declare function runWithLangGraphConversationId<T>(conversationId: string, fn: () => T): T;
|
|
43
|
+
/**
|
|
44
|
+
* Returns the OTel context set by a framework processor (OpenAI Agents, etc.)
|
|
45
|
+
* so that provider wrappers can create spans as children of framework spans.
|
|
46
|
+
* Mirrors Python's context_api.attach(set_span_in_context(span)).
|
|
47
|
+
*/
|
|
48
|
+
export declare function getFrameworkParentContext(): Context | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Set the OTel parent context for provider span creation.
|
|
51
|
+
* Called by processor-based frameworks that cannot use context.with().
|
|
52
|
+
*/
|
|
53
|
+
export declare function setFrameworkParentContext(ctx: Context): void;
|
|
54
|
+
/**
|
|
55
|
+
* Clear the framework parent context.
|
|
56
|
+
*/
|
|
57
|
+
export declare function clearFrameworkParentContext(): void;
|
|
58
|
+
export declare function getServerAddressForProvider(provider: string): [string, number];
|
|
59
|
+
/**
|
|
60
|
+
* Apply global (from init) and context-scoped (from usingAttributes /
|
|
61
|
+
* injectAdditionalAttributes) custom attributes to a span.
|
|
62
|
+
* Global attributes are applied first; context attributes override on conflict.
|
|
63
|
+
* Matches Python's _apply_custom_span_attributes().
|
|
64
|
+
*/
|
|
65
|
+
export declare function applyCustomSpanAttributes(span: Span): void;
|
|
66
|
+
/**
|
|
67
|
+
* Get merged custom attributes (global + context) for use in events.
|
|
68
|
+
* Returns a flat object; context attributes override global on conflict.
|
|
69
|
+
*/
|
|
70
|
+
export declare function getMergedCustomAttributes(): Record<string, any>;
|
|
71
|
+
/**
|
|
72
|
+
* Run a function with custom span attributes attached to all
|
|
73
|
+
* auto-instrumented spans created during its execution.
|
|
74
|
+
* Matches Python's openlit.inject_additional_attributes().
|
|
75
|
+
*/
|
|
76
|
+
export declare function injectAdditionalAttributes<T>(fn: () => T, attributes: Record<string, any>): T;
|
|
77
|
+
/**
|
|
78
|
+
* Context wrapper that adds custom attributes to all auto-instrumented
|
|
79
|
+
* spans created within its callback scope.
|
|
80
|
+
* Matches Python's openlit.using_attributes() context manager.
|
|
81
|
+
*
|
|
82
|
+
* Usage:
|
|
83
|
+
* await usingAttributes({"user.id": "u1", "team": "ml"}, async () => {
|
|
84
|
+
* await client.chat.completions.create(...);
|
|
85
|
+
* });
|
|
86
|
+
*/
|
|
87
|
+
export declare function usingAttributes<T>(attributes: Record<string, any>, fn: () => T): T;
|
|
2
88
|
export default class OpenLitHelper {
|
|
3
89
|
static readonly PROMPT_TOKEN_FACTOR = 1000;
|
|
4
90
|
static openaiTokens(text: string, model: string): number;
|
|
@@ -18,6 +104,12 @@ export default class OpenLitHelper {
|
|
|
18
104
|
* Format: [{"role": "assistant", "parts": [{"type": "text", "content": "..."}], "finish_reason": "stop"}]
|
|
19
105
|
*/
|
|
20
106
|
static buildOutputMessages(text: string, finishReason: string, toolCalls?: any[]): string;
|
|
107
|
+
/**
|
|
108
|
+
* Emit an inference event via the LoggerProvider, matching Python SDK's
|
|
109
|
+
* gen_ai.client.inference.operation.details event.
|
|
110
|
+
* Falls back to span.addEvent if LoggerProvider is not available.
|
|
111
|
+
*/
|
|
112
|
+
static emitInferenceEvent(span: Span, attrs: Attributes): void;
|
|
21
113
|
static handleException(span: Span, error: Error): void;
|
|
22
114
|
static createStreamProxy(stream: any, generatorFuncResponse: any): Promise<any>;
|
|
23
115
|
}
|
package/dist/helpers.js
CHANGED
|
@@ -1,7 +1,217 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isFrameworkLlmActive = isFrameworkLlmActive;
|
|
7
|
+
exports.runWithFrameworkLlm = runWithFrameworkLlm;
|
|
8
|
+
exports.setFrameworkLlmActive = setFrameworkLlmActive;
|
|
9
|
+
exports.resetFrameworkLlmActive = resetFrameworkLlmActive;
|
|
10
|
+
exports.isLangGraphActive = isLangGraphActive;
|
|
11
|
+
exports.runWithLangGraph = runWithLangGraph;
|
|
12
|
+
exports.isCreateAgentActive = isCreateAgentActive;
|
|
13
|
+
exports.runWithCreateAgent = runWithCreateAgent;
|
|
14
|
+
exports.getLangGraphConversationId = getLangGraphConversationId;
|
|
15
|
+
exports.runWithLangGraphConversationId = runWithLangGraphConversationId;
|
|
16
|
+
exports.getFrameworkParentContext = getFrameworkParentContext;
|
|
17
|
+
exports.setFrameworkParentContext = setFrameworkParentContext;
|
|
18
|
+
exports.clearFrameworkParentContext = clearFrameworkParentContext;
|
|
19
|
+
exports.getServerAddressForProvider = getServerAddressForProvider;
|
|
20
|
+
exports.applyCustomSpanAttributes = applyCustomSpanAttributes;
|
|
21
|
+
exports.getMergedCustomAttributes = getMergedCustomAttributes;
|
|
22
|
+
exports.injectAdditionalAttributes = injectAdditionalAttributes;
|
|
23
|
+
exports.usingAttributes = usingAttributes;
|
|
3
24
|
const js_tiktoken_1 = require("js-tiktoken");
|
|
4
25
|
const api_1 = require("@opentelemetry/api");
|
|
26
|
+
const api_logs_1 = require("@opentelemetry/api-logs");
|
|
27
|
+
const async_hooks_1 = require("async_hooks");
|
|
28
|
+
const semantic_convention_1 = __importDefault(require("./semantic-convention"));
|
|
29
|
+
const events_1 = __importDefault(require("./otel/events"));
|
|
30
|
+
const config_1 = __importDefault(require("./config"));
|
|
31
|
+
/**
|
|
32
|
+
* AsyncLocalStorage for context-scoped custom span attributes.
|
|
33
|
+
* Mirrors Python's ContextVar _custom_span_attributes, used by
|
|
34
|
+
* usingAttributes() and injectAdditionalAttributes().
|
|
35
|
+
*/
|
|
36
|
+
const _customSpanAttributes = new async_hooks_1.AsyncLocalStorage();
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Framework LLM span suppression flags (mirrors Python SDK ContextVars)
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
const _frameworkLlmActive = new async_hooks_1.AsyncLocalStorage();
|
|
41
|
+
/**
|
|
42
|
+
* Returns true when a framework instrumentor (LangChain, LiteLLM, etc.)
|
|
43
|
+
* owns the current LLM span. Provider-level wrappers (OpenAI, Anthropic, …)
|
|
44
|
+
* must skip their own span creation when this returns true.
|
|
45
|
+
*/
|
|
46
|
+
function isFrameworkLlmActive() {
|
|
47
|
+
return _frameworkLlmActive.getStore() === true;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Run `fn` with the framework-LLM-active flag set. All provider wrappers
|
|
51
|
+
* invoked inside `fn` will see `isFrameworkLlmActive() === true`.
|
|
52
|
+
*/
|
|
53
|
+
function runWithFrameworkLlm(fn) {
|
|
54
|
+
return _frameworkLlmActive.run(true, fn);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Set framework-LLM-active flag in the current execution context.
|
|
58
|
+
* Used by SpanProcessor-based instrumentations (Strands) where
|
|
59
|
+
* the processor observes spans rather than controlling execution.
|
|
60
|
+
* Mirrors Python's ContextVar.set(True) in Strands processor.
|
|
61
|
+
*/
|
|
62
|
+
function setFrameworkLlmActive() {
|
|
63
|
+
_frameworkLlmActive.enterWith(true);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Reset framework-LLM-active flag in the current execution context.
|
|
67
|
+
* Mirrors Python's ContextVar.reset(token) in Strands processor.
|
|
68
|
+
*/
|
|
69
|
+
function resetFrameworkLlmActive() {
|
|
70
|
+
_frameworkLlmActive.enterWith(false);
|
|
71
|
+
}
|
|
72
|
+
const _langGraphActive = new async_hooks_1.AsyncLocalStorage();
|
|
73
|
+
/**
|
|
74
|
+
* Returns true when a LangGraph wrapper is controlling execution.
|
|
75
|
+
* LangChain's callback handler skips its own invoke_workflow span when true.
|
|
76
|
+
*/
|
|
77
|
+
function isLangGraphActive() {
|
|
78
|
+
return _langGraphActive.getStore() === true;
|
|
79
|
+
}
|
|
80
|
+
function runWithLangGraph(fn) {
|
|
81
|
+
return _langGraphActive.run(true, fn);
|
|
82
|
+
}
|
|
83
|
+
const _createAgentActive = new async_hooks_1.AsyncLocalStorage();
|
|
84
|
+
/**
|
|
85
|
+
* Returns true when a create_agent span is already being handled
|
|
86
|
+
* (prevents duplicate spans between LangChain and LangGraph).
|
|
87
|
+
*/
|
|
88
|
+
function isCreateAgentActive() {
|
|
89
|
+
return _createAgentActive.getStore() === true;
|
|
90
|
+
}
|
|
91
|
+
function runWithCreateAgent(fn) {
|
|
92
|
+
return _createAgentActive.run(true, fn);
|
|
93
|
+
}
|
|
94
|
+
const _langGraphConversationId = new async_hooks_1.AsyncLocalStorage();
|
|
95
|
+
/**
|
|
96
|
+
* Propagate conversation ID from invoke_workflow to child node spans.
|
|
97
|
+
* Mirrors Python's set_langgraph_conversation_id / get_langgraph_conversation_id.
|
|
98
|
+
*/
|
|
99
|
+
function getLangGraphConversationId() {
|
|
100
|
+
return _langGraphConversationId.getStore();
|
|
101
|
+
}
|
|
102
|
+
function runWithLangGraphConversationId(conversationId, fn) {
|
|
103
|
+
return _langGraphConversationId.run(conversationId, fn);
|
|
104
|
+
}
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
// Framework parent context propagation (mirrors Python context_api.attach)
|
|
107
|
+
// ---------------------------------------------------------------------------
|
|
108
|
+
const _frameworkParentContext = new async_hooks_1.AsyncLocalStorage();
|
|
109
|
+
/**
|
|
110
|
+
* Returns the OTel context set by a framework processor (OpenAI Agents, etc.)
|
|
111
|
+
* so that provider wrappers can create spans as children of framework spans.
|
|
112
|
+
* Mirrors Python's context_api.attach(set_span_in_context(span)).
|
|
113
|
+
*/
|
|
114
|
+
function getFrameworkParentContext() {
|
|
115
|
+
return _frameworkParentContext.getStore() || undefined;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Set the OTel parent context for provider span creation.
|
|
119
|
+
* Called by processor-based frameworks that cannot use context.with().
|
|
120
|
+
*/
|
|
121
|
+
function setFrameworkParentContext(ctx) {
|
|
122
|
+
_frameworkParentContext.enterWith(ctx);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Clear the framework parent context.
|
|
126
|
+
*/
|
|
127
|
+
function clearFrameworkParentContext() {
|
|
128
|
+
_frameworkParentContext.enterWith(undefined);
|
|
129
|
+
}
|
|
130
|
+
// ---------------------------------------------------------------------------
|
|
131
|
+
// Provider default endpoints (mirrors Python PROVIDER_DEFAULT_ENDPOINTS)
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
const PROVIDER_DEFAULT_ENDPOINTS = {
|
|
134
|
+
openai: ['api.openai.com', 443],
|
|
135
|
+
anthropic: ['api.anthropic.com', 443],
|
|
136
|
+
google: ['generativelanguage.googleapis.com', 443],
|
|
137
|
+
'gcp.gemini': ['generativelanguage.googleapis.com', 443],
|
|
138
|
+
'gcp.vertex_ai': ['aiplatform.googleapis.com', 443],
|
|
139
|
+
mistral_ai: ['api.mistral.ai', 443],
|
|
140
|
+
groq: ['api.groq.com', 443],
|
|
141
|
+
together: ['api.together.xyz', 443],
|
|
142
|
+
fireworks: ['api.fireworks.ai', 443],
|
|
143
|
+
perplexity: ['api.perplexity.ai', 443],
|
|
144
|
+
deepinfra: ['api.deepinfra.com', 443],
|
|
145
|
+
'aws.bedrock': ['bedrock-runtime.amazonaws.com', 443],
|
|
146
|
+
azure: ['openai.azure.com', 443],
|
|
147
|
+
'azure.ai.openai': ['openai.azure.com', 443],
|
|
148
|
+
'azure.ai.inference': ['inference.ai.azure.com', 443],
|
|
149
|
+
cohere: ['api.cohere.ai', 443],
|
|
150
|
+
ollama: ['localhost', 11434],
|
|
151
|
+
deepseek: ['api.deepseek.com', 443],
|
|
152
|
+
x_ai: ['api.x.ai', 443],
|
|
153
|
+
huggingface: ['api-inference.huggingface.co', 443],
|
|
154
|
+
};
|
|
155
|
+
function getServerAddressForProvider(provider) {
|
|
156
|
+
return PROVIDER_DEFAULT_ENDPOINTS[provider] || ['', 0];
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Apply global (from init) and context-scoped (from usingAttributes /
|
|
160
|
+
* injectAdditionalAttributes) custom attributes to a span.
|
|
161
|
+
* Global attributes are applied first; context attributes override on conflict.
|
|
162
|
+
* Matches Python's _apply_custom_span_attributes().
|
|
163
|
+
*/
|
|
164
|
+
function applyCustomSpanAttributes(span) {
|
|
165
|
+
const globalAttrs = config_1.default.customSpanAttributes;
|
|
166
|
+
if (globalAttrs) {
|
|
167
|
+
for (const [key, value] of Object.entries(globalAttrs)) {
|
|
168
|
+
span.setAttribute(key, value);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
const contextAttrs = _customSpanAttributes.getStore();
|
|
172
|
+
if (contextAttrs) {
|
|
173
|
+
for (const [key, value] of Object.entries(contextAttrs)) {
|
|
174
|
+
span.setAttribute(key, value);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get merged custom attributes (global + context) for use in events.
|
|
180
|
+
* Returns a flat object; context attributes override global on conflict.
|
|
181
|
+
*/
|
|
182
|
+
function getMergedCustomAttributes() {
|
|
183
|
+
const merged = {};
|
|
184
|
+
const globalAttrs = config_1.default.customSpanAttributes;
|
|
185
|
+
if (globalAttrs) {
|
|
186
|
+
Object.assign(merged, globalAttrs);
|
|
187
|
+
}
|
|
188
|
+
const contextAttrs = _customSpanAttributes.getStore();
|
|
189
|
+
if (contextAttrs) {
|
|
190
|
+
Object.assign(merged, contextAttrs);
|
|
191
|
+
}
|
|
192
|
+
return merged;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Run a function with custom span attributes attached to all
|
|
196
|
+
* auto-instrumented spans created during its execution.
|
|
197
|
+
* Matches Python's openlit.inject_additional_attributes().
|
|
198
|
+
*/
|
|
199
|
+
function injectAdditionalAttributes(fn, attributes) {
|
|
200
|
+
return _customSpanAttributes.run(attributes, fn);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Context wrapper that adds custom attributes to all auto-instrumented
|
|
204
|
+
* spans created within its callback scope.
|
|
205
|
+
* Matches Python's openlit.using_attributes() context manager.
|
|
206
|
+
*
|
|
207
|
+
* Usage:
|
|
208
|
+
* await usingAttributes({"user.id": "u1", "team": "ml"}, async () => {
|
|
209
|
+
* await client.chat.completions.create(...);
|
|
210
|
+
* });
|
|
211
|
+
*/
|
|
212
|
+
function usingAttributes(attributes, fn) {
|
|
213
|
+
return _customSpanAttributes.run(attributes, fn);
|
|
214
|
+
}
|
|
5
215
|
class OpenLitHelper {
|
|
6
216
|
static openaiTokens(text, model) {
|
|
7
217
|
try {
|
|
@@ -18,23 +228,38 @@ class OpenLitHelper {
|
|
|
18
228
|
}
|
|
19
229
|
static getChatModelCost(model, pricingInfo, promptTokens, completionTokens) {
|
|
20
230
|
try {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
231
|
+
const chatPricing = pricingInfo?.chat;
|
|
232
|
+
if (!chatPricing)
|
|
233
|
+
return 0;
|
|
234
|
+
let modelPricing = chatPricing[model];
|
|
235
|
+
if (modelPricing == null && model.includes('/')) {
|
|
236
|
+
modelPricing = chatPricing[model.split('/', 2)[1]];
|
|
237
|
+
}
|
|
238
|
+
if (modelPricing == null)
|
|
239
|
+
return 0;
|
|
240
|
+
const cost = (promptTokens / OpenLitHelper.PROMPT_TOKEN_FACTOR) * modelPricing.promptPrice +
|
|
241
|
+
(completionTokens / OpenLitHelper.PROMPT_TOKEN_FACTOR) * modelPricing.completionPrice;
|
|
24
242
|
return isNaN(cost) ? 0 : cost;
|
|
25
243
|
}
|
|
26
|
-
catch
|
|
27
|
-
console.error(`Error in getChatModelCost: ${error}`);
|
|
244
|
+
catch {
|
|
28
245
|
return 0;
|
|
29
246
|
}
|
|
30
247
|
}
|
|
31
248
|
static getEmbedModelCost(model, pricingInfo, promptTokens) {
|
|
32
249
|
try {
|
|
33
|
-
const
|
|
250
|
+
const embedPricing = pricingInfo?.embeddings;
|
|
251
|
+
if (!embedPricing)
|
|
252
|
+
return 0;
|
|
253
|
+
let unitCost = embedPricing[model];
|
|
254
|
+
if (unitCost == null && model.includes('/')) {
|
|
255
|
+
unitCost = embedPricing[model.split('/', 2)[1]];
|
|
256
|
+
}
|
|
257
|
+
if (unitCost == null)
|
|
258
|
+
return 0;
|
|
259
|
+
const cost = (promptTokens / OpenLitHelper.PROMPT_TOKEN_FACTOR) * unitCost;
|
|
34
260
|
return isNaN(cost) ? 0 : cost;
|
|
35
261
|
}
|
|
36
|
-
catch
|
|
37
|
-
console.error(`Error in getEmbedModelCost: ${error}`);
|
|
262
|
+
catch {
|
|
38
263
|
return 0;
|
|
39
264
|
}
|
|
40
265
|
}
|
|
@@ -205,9 +430,46 @@ class OpenLitHelper {
|
|
|
205
430
|
return '[]';
|
|
206
431
|
}
|
|
207
432
|
}
|
|
433
|
+
/**
|
|
434
|
+
* Emit an inference event via the LoggerProvider, matching Python SDK's
|
|
435
|
+
* gen_ai.client.inference.operation.details event.
|
|
436
|
+
* Falls back to span.addEvent if LoggerProvider is not available.
|
|
437
|
+
*/
|
|
438
|
+
static emitInferenceEvent(span, attrs) {
|
|
439
|
+
const eventAttributes = {};
|
|
440
|
+
const customAttrs = getMergedCustomAttributes();
|
|
441
|
+
for (const [key, value] of Object.entries(customAttrs)) {
|
|
442
|
+
if (value !== undefined && value !== null) {
|
|
443
|
+
eventAttributes[key] = value;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
for (const [key, value] of Object.entries(attrs)) {
|
|
447
|
+
if (value !== undefined && value !== null) {
|
|
448
|
+
eventAttributes[key] = value;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
if (events_1.default.logger) {
|
|
452
|
+
events_1.default.logger.emit({
|
|
453
|
+
eventName: semantic_convention_1.default.GEN_AI_CLIENT_INFERENCE_OPERATION_DETAILS,
|
|
454
|
+
context: api_1.trace.setSpan(api_1.context.active(), span),
|
|
455
|
+
severityNumber: api_logs_1.SeverityNumber.INFO,
|
|
456
|
+
severityText: 'INFO',
|
|
457
|
+
body: semantic_convention_1.default.GEN_AI_CLIENT_INFERENCE_OPERATION_DETAILS,
|
|
458
|
+
attributes: {
|
|
459
|
+
...eventAttributes,
|
|
460
|
+
'event.name': semantic_convention_1.default.GEN_AI_CLIENT_INFERENCE_OPERATION_DETAILS,
|
|
461
|
+
},
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
span.addEvent(semantic_convention_1.default.GEN_AI_CLIENT_INFERENCE_OPERATION_DETAILS, eventAttributes);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
208
468
|
static handleException(span, error) {
|
|
209
469
|
span.recordException(error);
|
|
210
470
|
span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: error.message });
|
|
471
|
+
const errorType = error.constructor?.name || '_OTHER';
|
|
472
|
+
span.setAttribute(semantic_convention_1.default.ERROR_TYPE, errorType);
|
|
211
473
|
}
|
|
212
474
|
static async createStreamProxy(stream, generatorFuncResponse) {
|
|
213
475
|
return new Proxy(stream, {
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|