@posthog/ai 3.3.0 → 3.3.1
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/CHANGELOG.md +4 -0
- package/lib/index.cjs.js +43 -4
- package/lib/index.cjs.js.map +1 -1
- package/lib/index.esm.js +43 -4
- package/lib/index.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/vercel/middleware.ts +22 -4
package/lib/index.esm.js
CHANGED
|
@@ -531,6 +531,45 @@ const mapVercelPrompt = prompt => {
|
|
|
531
531
|
};
|
|
532
532
|
});
|
|
533
533
|
};
|
|
534
|
+
const mapVercelOutput = result => {
|
|
535
|
+
let output = {
|
|
536
|
+
...(result.text ? {
|
|
537
|
+
text: result.text
|
|
538
|
+
} : {}),
|
|
539
|
+
...(result.object ? {
|
|
540
|
+
object: result.object
|
|
541
|
+
} : {}),
|
|
542
|
+
...(result.reasoning ? {
|
|
543
|
+
reasoning: result.reasoning
|
|
544
|
+
} : {}),
|
|
545
|
+
...(result.response ? {
|
|
546
|
+
response: result.response
|
|
547
|
+
} : {}),
|
|
548
|
+
...(result.finishReason ? {
|
|
549
|
+
finishReason: result.finishReason
|
|
550
|
+
} : {}),
|
|
551
|
+
...(result.usage ? {
|
|
552
|
+
usage: result.usage
|
|
553
|
+
} : {}),
|
|
554
|
+
...(result.warnings ? {
|
|
555
|
+
warnings: result.warnings
|
|
556
|
+
} : {}),
|
|
557
|
+
...(result.providerMetadata ? {
|
|
558
|
+
toolCalls: result.providerMetadata
|
|
559
|
+
} : {})
|
|
560
|
+
};
|
|
561
|
+
// if text and no object or reasoning, return text
|
|
562
|
+
if (output.text && !output.object && !output.reasoning) {
|
|
563
|
+
return [{
|
|
564
|
+
content: output.text,
|
|
565
|
+
role: 'assistant'
|
|
566
|
+
}];
|
|
567
|
+
}
|
|
568
|
+
return [{
|
|
569
|
+
content: JSON.stringify(output),
|
|
570
|
+
role: 'assistant'
|
|
571
|
+
}];
|
|
572
|
+
};
|
|
534
573
|
const extractProvider = model => {
|
|
535
574
|
// vercel provider is in the format of provider.endpoint
|
|
536
575
|
const provider = model.provider.toLowerCase();
|
|
@@ -554,14 +593,14 @@ const createInstrumentationMiddleware = (phClient, model, options) => {
|
|
|
554
593
|
const modelId = options.posthogModelOverride ?? (result.response?.modelId ? result.response.modelId : model.modelId);
|
|
555
594
|
const provider = options.posthogProviderOverride ?? extractProvider(model);
|
|
556
595
|
const baseURL = ''; // cannot currently get baseURL from vercel
|
|
557
|
-
let content =
|
|
596
|
+
let content = mapVercelOutput(result);
|
|
558
597
|
// let tools = result.toolCalls
|
|
559
598
|
let providerMetadata = result.providerMetadata;
|
|
560
599
|
let additionalTokenValues = {
|
|
561
600
|
...(providerMetadata?.openai?.reasoningTokens ? {
|
|
562
601
|
reasoningTokens: providerMetadata.openai.reasoningTokens
|
|
563
602
|
} : {}),
|
|
564
|
-
...(providerMetadata?.openai?.
|
|
603
|
+
...(providerMetadata?.openai?.cachedPromptTokens ? {
|
|
565
604
|
cacheReadInputTokens: providerMetadata.openai.cachedPromptTokens
|
|
566
605
|
} : {}),
|
|
567
606
|
...(providerMetadata?.anthropic ? {
|
|
@@ -647,8 +686,8 @@ const createInstrumentationMiddleware = (phClient, model, options) => {
|
|
|
647
686
|
if (chunk.providerMetadata?.openai?.reasoningTokens) {
|
|
648
687
|
usage.reasoningTokens = chunk.providerMetadata.openai.reasoningTokens;
|
|
649
688
|
}
|
|
650
|
-
if (chunk.providerMetadata?.openai?.
|
|
651
|
-
usage.cacheReadInputTokens = chunk.providerMetadata.openai.
|
|
689
|
+
if (chunk.providerMetadata?.openai?.cachedPromptTokens) {
|
|
690
|
+
usage.cacheReadInputTokens = chunk.providerMetadata.openai.cachedPromptTokens;
|
|
652
691
|
}
|
|
653
692
|
if (chunk.providerMetadata?.anthropic?.cacheReadInputTokens) {
|
|
654
693
|
usage.cacheReadInputTokens = chunk.providerMetadata.anthropic.cacheReadInputTokens;
|