@sweetoburrito/backstage-plugin-ai-assistant-backend-module-callback-provider-langfuse 0.0.0-snapshot-20251113134620 → 0.0.0-snapshot-20251114135736
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/dist/module.cjs.js +32 -10
- package/dist/module.cjs.js.map +1 -1
- package/package.json +2 -1
package/dist/module.cjs.js
CHANGED
|
@@ -5,15 +5,17 @@ var otel = require('@langfuse/otel');
|
|
|
5
5
|
var sdkNode = require('@opentelemetry/sdk-node');
|
|
6
6
|
var langchain = require('@langfuse/langchain');
|
|
7
7
|
var backstagePluginAiAssistantNode = require('@sweetoburrito/backstage-plugin-ai-assistant-node');
|
|
8
|
+
var client = require('@langfuse/client');
|
|
8
9
|
|
|
10
|
+
const MODULE_ID = "callback-provider-langfuse";
|
|
9
11
|
const aiAssistantModuleCallbackProviderLangfuse = backendPluginApi.createBackendModule({
|
|
10
12
|
pluginId: "ai-assistant",
|
|
11
|
-
moduleId:
|
|
13
|
+
moduleId: MODULE_ID,
|
|
12
14
|
register(reg) {
|
|
13
15
|
reg.registerInit({
|
|
14
16
|
deps: {
|
|
15
17
|
config: backendPluginApi.coreServices.rootConfig,
|
|
16
|
-
callbackProvider: backstagePluginAiAssistantNode.
|
|
18
|
+
callbackProvider: backstagePluginAiAssistantNode.callbackProviderExtensionPoint
|
|
17
19
|
},
|
|
18
20
|
async init({ config, callbackProvider }) {
|
|
19
21
|
const secretKey = config.getString(
|
|
@@ -34,22 +36,42 @@ const aiAssistantModuleCallbackProviderLangfuse = backendPluginApi.createBackend
|
|
|
34
36
|
spanProcessors: [langfuseSpanProcessor]
|
|
35
37
|
});
|
|
36
38
|
sdk.start();
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
const langfuseClient = new client.LangfuseClient({
|
|
40
|
+
secretKey,
|
|
41
|
+
publicKey,
|
|
42
|
+
baseUrl
|
|
43
|
+
});
|
|
44
|
+
const chainCallback = (options) => {
|
|
45
|
+
const { modelId, userId, conversationId } = options;
|
|
46
|
+
return new langchain.CallbackHandler({
|
|
40
47
|
sessionId: conversationId,
|
|
41
48
|
userId,
|
|
42
49
|
tags: ["backstage-ai-assistant", "chat", modelId]
|
|
43
50
|
});
|
|
44
|
-
|
|
51
|
+
};
|
|
52
|
+
const chainMetadataCallback = async (options) => {
|
|
53
|
+
const { modelId, userId, conversationId } = options;
|
|
54
|
+
return {
|
|
45
55
|
langfuseUserId: userId,
|
|
46
56
|
langfuseSessionId: conversationId,
|
|
47
57
|
langfuseTags: ["ai-assistant", "chat", modelId]
|
|
48
58
|
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
59
|
+
};
|
|
60
|
+
const scoreCallback = async ({ name, message }) => {
|
|
61
|
+
if (!message.traceId) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
langfuseClient.score.create({
|
|
65
|
+
traceId: message.traceId,
|
|
66
|
+
name,
|
|
67
|
+
value: message.score
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
callbackProvider.register({
|
|
71
|
+
id: MODULE_ID,
|
|
72
|
+
chainCallback,
|
|
73
|
+
chainMetadataCallback,
|
|
74
|
+
scoreCallback
|
|
53
75
|
});
|
|
54
76
|
}
|
|
55
77
|
});
|
package/dist/module.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.cjs.js","sources":["../src/module.ts"],"sourcesContent":["import {\n coreServices,\n createBackendModule,\n} from '@backstage/backend-plugin-api';\nimport { LangfuseSpanProcessor } from '@langfuse/otel';\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport { CallbackHandler } from '@langfuse/langchain';\nimport {
|
|
1
|
+
{"version":3,"file":"module.cjs.js","sources":["../src/module.ts"],"sourcesContent":["import {\n coreServices,\n createBackendModule,\n} from '@backstage/backend-plugin-api';\nimport { LangfuseSpanProcessor } from '@langfuse/otel';\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport { CallbackHandler } from '@langfuse/langchain';\nimport { callbackProviderExtensionPoint } from '@sweetoburrito/backstage-plugin-ai-assistant-node';\nimport type { CallbackProvider } from '@sweetoburrito/backstage-plugin-ai-assistant-node';\nimport { LangfuseClient } from '@langfuse/client';\n\nconst MODULE_ID = 'callback-provider-langfuse';\n\nexport const aiAssistantModuleCallbackProviderLangfuse = createBackendModule({\n pluginId: 'ai-assistant',\n moduleId: MODULE_ID,\n register(reg) {\n reg.registerInit({\n deps: {\n config: coreServices.rootConfig,\n callbackProvider: callbackProviderExtensionPoint,\n },\n async init({ config, callbackProvider }) {\n const secretKey = config.getString(\n 'aiAssistant.callbacks.langfuse.secretKey',\n );\n const publicKey = config.getString(\n 'aiAssistant.callbacks.langfuse.publicKey',\n );\n const baseUrl = config.getString(\n 'aiAssistant.callbacks.langfuse.baseUrl',\n );\n\n const langfuseSpanProcessor = new LangfuseSpanProcessor({\n secretKey,\n publicKey,\n baseUrl,\n });\n\n const sdk = new NodeSDK({\n spanProcessors: [langfuseSpanProcessor],\n });\n\n sdk.start();\n\n const langfuseClient = new LangfuseClient({\n secretKey,\n publicKey,\n baseUrl,\n });\n\n const chainCallback: NonNullable<\n CallbackProvider['chainCallback']\n > = options => {\n const { modelId, userId, conversationId } = options;\n\n return new CallbackHandler({\n sessionId: conversationId,\n userId,\n tags: ['backstage-ai-assistant', 'chat', modelId],\n });\n };\n\n const chainMetadataCallback: NonNullable<\n CallbackProvider['chainMetadataCallback']\n > = async options => {\n const { modelId, userId, conversationId } = options;\n return {\n langfuseUserId: userId,\n langfuseSessionId: conversationId,\n langfuseTags: ['ai-assistant', 'chat', modelId],\n };\n };\n\n const scoreCallback: NonNullable<\n CallbackProvider['scoreCallback']\n > = async ({ name, message }) => {\n if (!message.traceId) {\n return;\n }\n\n langfuseClient.score.create({\n traceId: message.traceId,\n name,\n value: message.score,\n });\n };\n\n callbackProvider.register({\n id: MODULE_ID,\n chainCallback,\n chainMetadataCallback,\n scoreCallback,\n });\n },\n });\n },\n});\n"],"names":["createBackendModule","coreServices","callbackProviderExtensionPoint","LangfuseSpanProcessor","NodeSDK","LangfuseClient","CallbackHandler"],"mappings":";;;;;;;;;AAWA,MAAM,SAAA,GAAY,4BAAA;AAEX,MAAM,4CAA4CA,oCAAA,CAAoB;AAAA,EAC3E,QAAA,EAAU,cAAA;AAAA,EACV,QAAA,EAAU,SAAA;AAAA,EACV,SAAS,GAAA,EAAK;AACZ,IAAA,GAAA,CAAI,YAAA,CAAa;AAAA,MACf,IAAA,EAAM;AAAA,QACJ,QAAQC,6BAAA,CAAa,UAAA;AAAA,QACrB,gBAAA,EAAkBC;AAAA,OACpB;AAAA,MACA,MAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,kBAAiB,EAAG;AACvC,QAAA,MAAM,YAAY,MAAA,CAAO,SAAA;AAAA,UACvB;AAAA,SACF;AACA,QAAA,MAAM,YAAY,MAAA,CAAO,SAAA;AAAA,UACvB;AAAA,SACF;AACA,QAAA,MAAM,UAAU,MAAA,CAAO,SAAA;AAAA,UACrB;AAAA,SACF;AAEA,QAAA,MAAM,qBAAA,GAAwB,IAAIC,0BAAA,CAAsB;AAAA,UACtD,SAAA;AAAA,UACA,SAAA;AAAA,UACA;AAAA,SACD,CAAA;AAED,QAAA,MAAM,GAAA,GAAM,IAAIC,eAAA,CAAQ;AAAA,UACtB,cAAA,EAAgB,CAAC,qBAAqB;AAAA,SACvC,CAAA;AAED,QAAA,GAAA,CAAI,KAAA,EAAM;AAEV,QAAA,MAAM,cAAA,GAAiB,IAAIC,qBAAA,CAAe;AAAA,UACxC,SAAA;AAAA,UACA,SAAA;AAAA,UACA;AAAA,SACD,CAAA;AAED,QAAA,MAAM,gBAEF,CAAA,OAAA,KAAW;AACb,UAAA,MAAM,EAAE,OAAA,EAAS,MAAA,EAAQ,cAAA,EAAe,GAAI,OAAA;AAE5C,UAAA,OAAO,IAAIC,yBAAA,CAAgB;AAAA,YACzB,SAAA,EAAW,cAAA;AAAA,YACX,MAAA;AAAA,YACA,IAAA,EAAM,CAAC,wBAAA,EAA0B,MAAA,EAAQ,OAAO;AAAA,WACjD,CAAA;AAAA,QACH,CAAA;AAEA,QAAA,MAAM,qBAAA,GAEF,OAAM,OAAA,KAAW;AACnB,UAAA,MAAM,EAAE,OAAA,EAAS,MAAA,EAAQ,cAAA,EAAe,GAAI,OAAA;AAC5C,UAAA,OAAO;AAAA,YACL,cAAA,EAAgB,MAAA;AAAA,YAChB,iBAAA,EAAmB,cAAA;AAAA,YACnB,YAAA,EAAc,CAAC,cAAA,EAAgB,MAAA,EAAQ,OAAO;AAAA,WAChD;AAAA,QACF,CAAA;AAEA,QAAA,MAAM,aAAA,GAEF,OAAO,EAAE,IAAA,EAAM,SAAQ,KAAM;AAC/B,UAAA,IAAI,CAAC,QAAQ,OAAA,EAAS;AACpB,YAAA;AAAA,UACF;AAEA,UAAA,cAAA,CAAe,MAAM,MAAA,CAAO;AAAA,YAC1B,SAAS,OAAA,CAAQ,OAAA;AAAA,YACjB,IAAA;AAAA,YACA,OAAO,OAAA,CAAQ;AAAA,WAChB,CAAA;AAAA,QACH,CAAA;AAEA,QAAA,gBAAA,CAAiB,QAAA,CAAS;AAAA,UACxB,EAAA,EAAI,SAAA;AAAA,UACJ,aAAA;AAAA,UACA,qBAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA,MACH;AAAA,KACD,CAAA;AAAA,EACH;AACF,CAAC;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sweetoburrito/backstage-plugin-ai-assistant-backend-module-callback-provider-langfuse",
|
|
3
|
-
"version": "0.0.0-snapshot-
|
|
3
|
+
"version": "0.0.0-snapshot-20251114135736",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "The callback-provider-langfuse backend module for the ai-assistant plugin.",
|
|
6
6
|
"main": "dist/index.cjs.js",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@backstage/backend-plugin-api": "backstage:^",
|
|
32
|
+
"@langfuse/client": "^4.4.2",
|
|
32
33
|
"@langfuse/langchain": "^4.4.2",
|
|
33
34
|
"@langfuse/otel": "^4.4.2",
|
|
34
35
|
"@opentelemetry/sdk-node": "^0.208.0",
|