@posthog/ai 7.11.2 → 7.12.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/README.md +16 -33
- package/dist/anthropic/index.cjs +1 -1
- package/dist/anthropic/index.mjs +1 -1
- package/dist/gemini/index.cjs +1 -1
- package/dist/gemini/index.mjs +1 -1
- package/dist/index.cjs +29 -841
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +29 -62
- package/dist/index.mjs +29 -839
- package/dist/index.mjs.map +1 -1
- package/dist/langchain/index.cjs +1 -1
- package/dist/langchain/index.mjs +1 -1
- package/dist/openai/index.cjs +1 -1
- package/dist/openai/index.mjs +1 -1
- package/dist/otel/index.cjs +30 -1128
- package/dist/otel/index.cjs.map +1 -1
- package/dist/otel/index.d.ts +29 -72
- package/dist/otel/index.mjs +30 -1125
- package/dist/otel/index.mjs.map +1 -1
- package/dist/vercel/index.cjs +1 -1
- package/dist/vercel/index.mjs +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@ const client = new OpenAI({
|
|
|
24
24
|
})
|
|
25
25
|
|
|
26
26
|
const completion = await client.chat.completions.create({
|
|
27
|
-
model: 'gpt-
|
|
27
|
+
model: 'gpt-5-mini',
|
|
28
28
|
messages: [{ role: 'user', content: 'Tell me a fun fact about hedgehogs' }],
|
|
29
29
|
posthogDistinctId: 'user_123', // optional
|
|
30
30
|
posthogTraceId: 'trace_123', // optional
|
|
@@ -39,61 +39,44 @@ console.log(completion.choices[0].message.content)
|
|
|
39
39
|
await phClient.shutdown()
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
##
|
|
42
|
+
## OpenTelemetry
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
`@posthog/ai` provides a `PostHogTraceExporter` that sends OpenTelemetry traces to PostHog's OTLP ingestion endpoint. PostHog converts `gen_ai.*` spans into `$ai_generation` events server-side. This works with any LLM provider SDK that supports OpenTelemetry.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm install @posthog/ai @opentelemetry/sdk-node @opentelemetry/exporter-trace-otlp-http
|
|
48
|
+
```
|
|
45
49
|
|
|
46
50
|
```typescript
|
|
47
51
|
import { NodeSDK } from '@opentelemetry/sdk-node'
|
|
48
|
-
import { PostHog } from 'posthog-node'
|
|
49
52
|
import { generateText } from 'ai'
|
|
50
53
|
import { openai } from '@ai-sdk/openai'
|
|
51
|
-
import {
|
|
52
|
-
|
|
53
|
-
const phClient = new PostHog('<YOUR_PROJECT_API_KEY>', { host: 'https://us.i.posthog.com' })
|
|
54
|
+
import { PostHogTraceExporter } from '@posthog/ai/otel'
|
|
54
55
|
|
|
55
56
|
const sdk = new NodeSDK({
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
traceExporter: new PostHogTraceExporter({
|
|
58
|
+
apiKey: '<YOUR_PROJECT_API_KEY>',
|
|
59
|
+
host: 'https://us.i.posthog.com', // optional, defaults to https://us.i.posthog.com
|
|
60
|
+
}),
|
|
59
61
|
})
|
|
60
|
-
|
|
61
62
|
sdk.start()
|
|
62
63
|
|
|
63
|
-
await generateText({
|
|
64
|
-
model: openai('gpt-5
|
|
64
|
+
const result = await generateText({
|
|
65
|
+
model: openai('gpt-5-mini'),
|
|
65
66
|
prompt: 'Write a short haiku about debugging',
|
|
66
67
|
experimental_telemetry: {
|
|
67
68
|
isEnabled: true,
|
|
68
69
|
functionId: 'my-awesome-function',
|
|
69
70
|
metadata: {
|
|
71
|
+
posthog_distinct_id: 'user_123',
|
|
70
72
|
conversation_id: 'abc123',
|
|
71
|
-
plan: 'pro',
|
|
72
73
|
},
|
|
73
74
|
},
|
|
74
75
|
})
|
|
75
76
|
|
|
76
|
-
await
|
|
77
|
+
await sdk.shutdown()
|
|
77
78
|
```
|
|
78
79
|
|
|
79
|
-
### Custom Mappers
|
|
80
|
-
|
|
81
|
-
The OTEL processor supports adapter mappers for different span formats:
|
|
82
|
-
|
|
83
|
-
- `aiSdkSpanMapper` is the default mapper.
|
|
84
|
-
- You can pass custom `mappers` in `PostHogSpanProcessor` options to support additional span schemas.
|
|
85
|
-
|
|
86
|
-
### Per-call Metadata (Recommended)
|
|
87
|
-
|
|
88
|
-
For dynamic properties, pass values in `experimental_telemetry.metadata` on each AI SDK call.
|
|
89
|
-
These are captured from `ai.telemetry.metadata.*` and forwarded as PostHog event properties.
|
|
90
|
-
Use processor options (`posthogProperties`) only for global defaults.
|
|
91
|
-
|
|
92
|
-
## Notes
|
|
93
|
-
|
|
94
|
-
- The OTEL route currently maps supported spans into PostHog AI events (manual capture path).
|
|
95
|
-
- Existing wrapper-based tracing (for example `withTracing`) still works and is unchanged.
|
|
96
|
-
|
|
97
80
|
LLM Observability [docs](https://posthog.com/docs/ai-engineering/observability)
|
|
98
81
|
|
|
99
82
|
Please see the main [PostHog docs](https://www.posthog.com/docs).
|
package/dist/anthropic/index.cjs
CHANGED
|
@@ -10,7 +10,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
10
10
|
|
|
11
11
|
var AnthropicOriginal__default = /*#__PURE__*/_interopDefault(AnthropicOriginal);
|
|
12
12
|
|
|
13
|
-
var version = "7.
|
|
13
|
+
var version = "7.12.1";
|
|
14
14
|
|
|
15
15
|
// Type guards for safer type checking
|
|
16
16
|
|
package/dist/anthropic/index.mjs
CHANGED
package/dist/gemini/index.cjs
CHANGED