diff --git a/backend/appHandler.ts b/backend/appHandler.ts index b23e4c6b6..b178b9cb3 100644 --- a/backend/appHandler.ts +++ b/backend/appHandler.ts @@ -1,3 +1,5 @@ +import './src/tracer'; + import 'reflect-metadata'; import serverlessHttp from 'serverless-http'; import 'source-map-support/register'; diff --git a/backend/generateStoryTitles.ts b/backend/generateStoryTitles.ts index c14466a93..3f525175d 100644 --- a/backend/generateStoryTitles.ts +++ b/backend/generateStoryTitles.ts @@ -1,3 +1,4 @@ +import './src/tracer'; import generateStoryTitlesImpl from './src/cron/generateStoryTitles'; import withSetup from './withSetup'; diff --git a/backend/serverless.yml b/backend/serverless.yml index 2af722651..69353aadb 100644 --- a/backend/serverless.yml +++ b/backend/serverless.yml @@ -47,6 +47,7 @@ provider: OPENAI_SK: ${ssm:/${self:service}-${sls:stage}-openai-sk} RAPIDAPI_API_KEY: ${ssm:/${self:service}-${sls:stage}-rapidapi-api-key} PRINTFUL_SK: ${ssm:/${self:service}-${sls:stage}-printful-sk} + DD_LLMOBS_ML_APP: fourtiesnyc plugins: - serverless-plugin-conditional-functions - serverless-webpack diff --git a/backend/src/business/ai/AiService.ts b/backend/src/business/ai/AiService.ts index d2ee44c83..de16ec50c 100644 --- a/backend/src/business/ai/AiService.ts +++ b/backend/src/business/ai/AiService.ts @@ -1,3 +1,4 @@ +import tracer from 'dd-trace'; import OpenAI from 'openai'; import createStoryTitlePrompt from './createStoryTitlePrompt'; @@ -7,9 +8,14 @@ const openai = new OpenAI({ }); export async function suggestStoryTitle(storyContent: string): Promise { - const response = await openai.chat.completions.create( - createStoryTitlePrompt(storyContent) - ); + return tracer.llmobs.trace( + { kind: 'task', name: 'story-title-generation' }, + async () => { + const response = await openai.chat.completions.create( + createStoryTitlePrompt(storyContent) + ); - return response.choices[0].message.content?.trim() ?? ''; + return response.choices[0].message.content?.trim() ?? ''; + } + ); } diff --git a/backend/src/tracer.ts b/backend/src/tracer.ts new file mode 100644 index 000000000..dafc4b057 --- /dev/null +++ b/backend/src/tracer.ts @@ -0,0 +1,10 @@ +import tracer from 'dd-trace'; + +tracer.init({ + llmobs: { + mlApp: process.env.DD_LLMOBS_ML_APP, + agentlessEnabled: true, + }, +}); + +export default tracer; diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 29755b48e..f1a923ab8 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -15018,8 +15018,7 @@ }, "node_modules/tslib": { "version": "2.8.1", - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/tsyringe": { "version": "4.10.0",