@posthog/ai 2.3.1 → 3.0.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/CHANGELOG.md +5 -0
- package/lib/index.cjs.js +1107 -20
- package/lib/index.cjs.js.map +1 -1
- package/lib/index.d.ts +98 -1
- package/lib/index.esm.js +1088 -22
- package/lib/index.esm.js.map +1 -1
- package/lib/posthog-ai/src/anthropic/index.d.ts +28 -0
- package/lib/posthog-ai/src/index.d.ts +4 -0
- package/lib/posthog-ai/src/langchain/callbacks.d.ts +65 -0
- package/lib/posthog-ai/src/utils.d.ts +5 -3
- package/lib/posthog-ai/src/vercel/middleware.d.ts +7 -1
- package/package.json +10 -11
- package/src/anthropic/index.ts +195 -0
- package/src/index.ts +4 -0
- package/src/langchain/callbacks.ts +578 -0
- package/src/openai/azure.ts +7 -7
- package/src/openai/index.ts +6 -6
- package/src/utils.ts +10 -3
- package/src/vercel/middleware.ts +11 -9
package/src/utils.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { PostHog } from 'posthog-node'
|
|
2
2
|
import OpenAIOrignal from 'openai'
|
|
3
|
+
import AnthropicOriginal from '@anthropic-ai/sdk'
|
|
3
4
|
|
|
4
5
|
type ChatCompletionCreateParamsBase = OpenAIOrignal.Chat.Completions.ChatCompletionCreateParams
|
|
6
|
+
type MessageCreateParams = AnthropicOriginal.Messages.MessageCreateParams
|
|
5
7
|
|
|
6
8
|
export interface MonitoringParams {
|
|
7
9
|
posthogDistinctId?: string
|
|
@@ -11,7 +13,12 @@ export interface MonitoringParams {
|
|
|
11
13
|
posthogGroups?: Record<string, any>
|
|
12
14
|
}
|
|
13
15
|
|
|
14
|
-
export const getModelParams = (
|
|
16
|
+
export const getModelParams = (
|
|
17
|
+
params: ((ChatCompletionCreateParamsBase | MessageCreateParams) & MonitoringParams) | null
|
|
18
|
+
): Record<string, any> => {
|
|
19
|
+
if (!params) {
|
|
20
|
+
return {}
|
|
21
|
+
}
|
|
15
22
|
const modelParams: Record<string, any> = {}
|
|
16
23
|
const paramKeys = [
|
|
17
24
|
'temperature',
|
|
@@ -76,7 +83,7 @@ export const formatResponseOpenAI = (response: any): Array<{ role: string; conte
|
|
|
76
83
|
return output
|
|
77
84
|
}
|
|
78
85
|
|
|
79
|
-
export const mergeSystemPrompt = (params:
|
|
86
|
+
export const mergeSystemPrompt = (params: MessageCreateParams & MonitoringParams, provider: string): any => {
|
|
80
87
|
if (provider == 'anthropic') {
|
|
81
88
|
const messages = params.messages || []
|
|
82
89
|
if (!(params as any).system) {
|
|
@@ -104,7 +111,7 @@ export type SendEventToPosthogParams = {
|
|
|
104
111
|
baseURL: string
|
|
105
112
|
httpStatus: number
|
|
106
113
|
usage?: { inputTokens?: number; outputTokens?: number }
|
|
107
|
-
params: ChatCompletionCreateParamsBase & MonitoringParams
|
|
114
|
+
params: (ChatCompletionCreateParamsBase | MessageCreateParams) & MonitoringParams
|
|
108
115
|
isError?: boolean
|
|
109
116
|
error?: string
|
|
110
117
|
}
|
package/src/vercel/middleware.ts
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
LanguageModelV1,
|
|
4
|
-
Experimental_LanguageModelV1Middleware as LanguageModelV1Middleware,
|
|
5
|
-
LanguageModelV1Prompt,
|
|
6
|
-
LanguageModelV1StreamPart,
|
|
7
|
-
} from 'ai'
|
|
1
|
+
import { wrapLanguageModel } from 'ai'
|
|
2
|
+
import type { LanguageModelV1, LanguageModelV1Middleware, LanguageModelV1Prompt, LanguageModelV1StreamPart } from 'ai'
|
|
8
3
|
import { v4 as uuidv4 } from 'uuid'
|
|
9
4
|
import { PostHog } from 'posthog-node'
|
|
10
5
|
import { sendEventToPosthog } from '../utils'
|
|
@@ -17,6 +12,12 @@ interface ClientOptions {
|
|
|
17
12
|
posthogGroups?: Record<string, any>
|
|
18
13
|
posthogModelOverride?: string
|
|
19
14
|
posthogProviderOverride?: string
|
|
15
|
+
posthogCostOverride?: CostOverride
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
interface CostOverride {
|
|
19
|
+
inputTokens: number
|
|
20
|
+
outputTokens: number
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
interface CreateInstrumentationMiddlewareOptions {
|
|
@@ -27,6 +28,7 @@ interface CreateInstrumentationMiddlewareOptions {
|
|
|
27
28
|
posthogGroups?: Record<string, any>
|
|
28
29
|
posthogModelOverride?: string
|
|
29
30
|
posthogProviderOverride?: string
|
|
31
|
+
posthogCostOverride?: CostOverride
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
interface PostHogInput {
|
|
@@ -83,7 +85,7 @@ export const createInstrumentationMiddleware = (
|
|
|
83
85
|
const middleware: LanguageModelV1Middleware = {
|
|
84
86
|
wrapGenerate: async ({ doGenerate, params }) => {
|
|
85
87
|
const startTime = Date.now()
|
|
86
|
-
|
|
88
|
+
const mergedParams = {
|
|
87
89
|
...options,
|
|
88
90
|
...mapVercelParams(params),
|
|
89
91
|
}
|
|
@@ -143,7 +145,7 @@ export const createInstrumentationMiddleware = (
|
|
|
143
145
|
const startTime = Date.now()
|
|
144
146
|
let generatedText = ''
|
|
145
147
|
let usage: { inputTokens?: number; outputTokens?: number } = {}
|
|
146
|
-
|
|
148
|
+
const mergedParams = {
|
|
147
149
|
...options,
|
|
148
150
|
...mapVercelParams(params),
|
|
149
151
|
}
|