@countly/ai-sdk-vercel 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/README.md +73 -0
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +2 -3
- package/dist/adapter.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -61,6 +61,79 @@ await telemetry.flush(); // send buffered events
|
|
|
61
61
|
await telemetry.shutdown(); // flush + stop the transport
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
+
## Caller-supplied `prompt_id`
|
|
65
|
+
|
|
66
|
+
By default every tracked call gets an auto-generated `prompt_id`. If you already
|
|
67
|
+
mint your own request/message id (and want feedback to correlate against it
|
|
68
|
+
without round-tripping through `onPrompt`), provide `getPromptId`. It is called
|
|
69
|
+
once per tracked interaction; return a string to use it, or `undefined` to fall
|
|
70
|
+
back to the generated id. Pair it with a per-request store so each call reads
|
|
71
|
+
its own id:
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
75
|
+
|
|
76
|
+
const promptStore = new AsyncLocalStorage<{ promptId: string }>();
|
|
77
|
+
|
|
78
|
+
const telemetry = countlyTelemetry({
|
|
79
|
+
appKey: "YOUR_APP_KEY",
|
|
80
|
+
url: "https://your-countly-server.com",
|
|
81
|
+
getPromptId: () => promptStore.getStore()?.promptId, // undefined → generated fallback
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
// wrap each request so the interaction stamps your id:
|
|
85
|
+
promptStore.run({ promptId: myMessageId }, async () => {
|
|
86
|
+
await generateText({
|
|
87
|
+
model: openai("gpt-4o"),
|
|
88
|
+
prompt: "Explain quantum computing",
|
|
89
|
+
experimental_telemetry: { integrations: [telemetry] },
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
The returned id lands on the `[CLY]_llm_interaction` event's `prompt_id`, so you
|
|
95
|
+
can record feedback against your own id directly — `feedback.track({ prompt_id: myMessageId, ... })` —
|
|
96
|
+
no `onPrompt` capture needed. When `getPromptId` is absent (or returns
|
|
97
|
+
`undefined`), behavior is unchanged.
|
|
98
|
+
|
|
99
|
+
## Feedback
|
|
100
|
+
|
|
101
|
+
User feedback (thumbs up/down, ratings, comments) is not auto-collected — wire it from your UI. Capture the `prompt_id` of each tracked interaction via the `onPrompt` callback, then record feedback against it with `createFeedbackTracker` (re-exported from this package, so no extra install is needed):
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
import { countlyTelemetry, createFeedbackTracker, type PromptInfo } from "@countly/ai-sdk-vercel";
|
|
105
|
+
import { generateText } from "ai";
|
|
106
|
+
import { openai } from "@ai-sdk/openai";
|
|
107
|
+
|
|
108
|
+
const countly = { appKey: "YOUR_APP_KEY", url: "https://your-countly-server.com" };
|
|
109
|
+
|
|
110
|
+
let lastPrompt: PromptInfo | undefined;
|
|
111
|
+
const telemetry = countlyTelemetry({
|
|
112
|
+
...countly,
|
|
113
|
+
onPrompt: (info) => { lastPrompt = info; }, // fires after every tracked call
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
const feedback = createFeedbackTracker(countly, { sdk_adapter: "ai-sdk" });
|
|
117
|
+
|
|
118
|
+
const { text } = await generateText({
|
|
119
|
+
model: openai("gpt-4o"),
|
|
120
|
+
prompt: "Explain quantum computing",
|
|
121
|
+
experimental_telemetry: { integrations: [telemetry] },
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
// ...later, when the user rates the answer:
|
|
125
|
+
feedback.track({
|
|
126
|
+
prompt_id: lastPrompt!.prompt_id,
|
|
127
|
+
rating: "thumbs_up", // or "thumbs_down", or any custom string
|
|
128
|
+
score: 0.9, // optional 0-1 numeric score
|
|
129
|
+
category: "helpful", // optional: hallucination, irrelevant, harmful, ...
|
|
130
|
+
comment: "Great answer", // optional free-form text
|
|
131
|
+
deviceId: user.id, // attribute to the same user as the interaction
|
|
132
|
+
});
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Each `track()` call emits a `[CLY]_llm_interaction_feedback` event whose `prompt_id` links back to the `[CLY]_llm_interaction` event — powering prompt → feedback funnels and per-model satisfaction breakdowns in Countly. In a real app, store `prompt_id` alongside the rendered message (or return it to your client) and read it back when the user rates the answer. Feedback is batched like interaction events; call `feedback.flush()` to send immediately, or `feedback.shutdown()` on process exit.
|
|
136
|
+
|
|
64
137
|
## Full documentation
|
|
65
138
|
|
|
66
139
|
See the [Countly AI SDK repository](https://github.com/Countly/countly-ai-sdk) for the unified data model, observability levels, cost calculation, privacy controls, and Countly plugin integration (Drill, Funnels, Cohorts, APM, Crash Analytics).
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,eAAe,EAKrB,MAAM,sBAAsB,CAAC;AAqD9B;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,4BAA4B;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,0BAA0B;IAC1B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAyED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,eAAe,GAC1B,2BAA2B,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,eAAe,EAKrB,MAAM,sBAAsB,CAAC;AAqD9B;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,4BAA4B;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,0BAA0B;IAC1B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAyED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,eAAe,GAC1B,2BAA2B,CAkF7B;AAMD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAE9C,UAAU,EAAE,eAAe;IAIvC,0DAA0D;IAC1D,aAAa,IAAI,2BAA2B;IAItC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC;AAMD;;;;;GAKG;AACH,qBAAa,oBAAoB;gBACnB,WAAW,EAAE,eAAe;IAQxC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/C,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IACjB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAC3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC"}
|
package/dist/adapter.js
CHANGED
|
@@ -114,7 +114,7 @@ export function countlyTelemetry(userConfig) {
|
|
|
114
114
|
: event;
|
|
115
115
|
const raw = mapEventToExtraction(effectiveEvent, durationMs);
|
|
116
116
|
const context = {
|
|
117
|
-
prompt_id: generatePromptId(),
|
|
117
|
+
prompt_id: config.getPromptId?.() ?? generatePromptId(),
|
|
118
118
|
sdk_adapter: "ai-sdk",
|
|
119
119
|
};
|
|
120
120
|
const events = buildAllEvents(raw, config, context);
|
|
@@ -122,7 +122,6 @@ export function countlyTelemetry(userConfig) {
|
|
|
122
122
|
transport.enqueue(events);
|
|
123
123
|
}
|
|
124
124
|
transport.reportTrace(raw, context);
|
|
125
|
-
transport.reportUserData(raw);
|
|
126
125
|
},
|
|
127
126
|
onError(error) {
|
|
128
127
|
const raw = {
|
|
@@ -136,7 +135,7 @@ export function countlyTelemetry(userConfig) {
|
|
|
136
135
|
error: error instanceof Error ? error.message : String(error),
|
|
137
136
|
};
|
|
138
137
|
const context = {
|
|
139
|
-
prompt_id: generatePromptId(),
|
|
138
|
+
prompt_id: config.getPromptId?.() ?? generatePromptId(),
|
|
140
139
|
sdk_adapter: "ai-sdk",
|
|
141
140
|
};
|
|
142
141
|
transport.reportError(raw.error, raw);
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { countlyTelemetry, CountlyTelemetry, CountlySpanProcessor, } from "./adapter";
|
|
2
2
|
export type { CountlyTelemetryIntegration } from "./adapter";
|
|
3
|
+
export { createFeedbackTracker } from "@countly/ai-sdk-core";
|
|
4
|
+
export type { FeedbackInput, FeedbackTracker, PromptInfo } from "@countly/ai-sdk-core";
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAM7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
export { countlyTelemetry, CountlyTelemetry, CountlySpanProcessor, } from "./adapter";
|
|
2
|
+
// Feedback pipeline — re-exported from core so user feedback (thumbs up/down,
|
|
3
|
+
// ratings, comments) can be wired without importing @countly/ai-sdk-core
|
|
4
|
+
// directly. Correlate via the `onPrompt` config callback, which exposes the
|
|
5
|
+
// `prompt_id` stamped on every `[CLY]_llm_interaction` event.
|
|
6
|
+
export { createFeedbackTracker } from "@countly/ai-sdk-core";
|
|
2
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AAGnB,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAC5E,8DAA8D;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@countly/ai-sdk-vercel",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Countly AI observability adapter for Vercel AI SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"access": "public"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@countly/ai-sdk-core": "0.0.
|
|
19
|
+
"@countly/ai-sdk-core": "0.0.4"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
22
|
"ai": ">=4.0.0"
|