Skip to content

Commit d9d43f7

Browse files
committed
refactor: send traceId, use correct user
1 parent 3f07a83 commit d9d43f7

File tree

1 file changed

+17
-20
lines changed
  • packages/backend/src/routes/api

1 file changed

+17
-20
lines changed

packages/backend/src/routes/api/chat.ts

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ async function handleChatStream(req: Request, res: Response) {
3535
const { chatPrompt, version } = promptConfig
3636

3737
try {
38-
const { messages: rawMessages, userId, sessionId } = req.body as ChatRequest
38+
const { messages: rawMessages, sessionId } = req.body as ChatRequest
3939

4040
if (
4141
!rawMessages ||
@@ -61,7 +61,6 @@ async function handleChatStream(req: Request, res: Response) {
6161
})
6262

6363
let traceId = ''
64-
let generationId = ''
6564

6665
// Setup observation and stream using AI SDK
6766
const result = await startActiveObservation(
@@ -70,7 +69,7 @@ async function handleChatStream(req: Request, res: Response) {
7069
trace.updateTrace({
7170
name: 'ai-chat-stream',
7271
sessionId: sessionId || 'unknown',
73-
userId: userId || 'anonymous',
72+
userId: context.currentUser.email || 'anonymous',
7473
input: { messages, prompt: lastUserMessage },
7574
tags: ['stream', 'rest-api'],
7675
environment: appConfig.appEnv,
@@ -91,8 +90,6 @@ async function handleChatStream(req: Request, res: Response) {
9190

9291
// Capture IDs for client
9392
traceId = trace.traceId
94-
// @ts-expect-error - observationId exists but not in types
95-
generationId = generation.observationId
9693

9794
return streamText({
9895
model,
@@ -106,10 +103,14 @@ async function handleChatStream(req: Request, res: Response) {
106103
onFinish: (event) => {
107104
logger.info('Stream finished', {
108105
traceId,
109-
generationId,
110106
textLength: event.text.length,
111107
})
112108

109+
trace.update({
110+
output: { result: event.text },
111+
level: 'DEFAULT',
112+
})
113+
113114
generation
114115
.update({
115116
output: event.text,
@@ -120,33 +121,27 @@ async function handleChatStream(req: Request, res: Response) {
120121
},
121122
})
122123
.end()
123-
124-
trace.update({
125-
output: { result: event.text },
126-
level: 'DEFAULT',
127-
})
128124
},
129125
onError: (error) => {
130126
const errorMessage =
131127
error instanceof Error ? error.message : String(error)
132128

133129
logger.error('Error generating chat response', {
134130
traceId,
135-
generationId,
136131
error: errorMessage,
137132
})
138133

134+
trace.update({
135+
output: { error: errorMessage },
136+
level: 'ERROR',
137+
})
138+
139139
generation
140140
.update({
141141
output: errorMessage,
142142
level: 'ERROR',
143143
})
144144
.end()
145-
146-
trace.update({
147-
output: { error: errorMessage },
148-
level: 'ERROR',
149-
})
150145
},
151146
})
152147
},
@@ -155,9 +150,11 @@ async function handleChatStream(req: Request, res: Response) {
155150
// Pipe the UI message stream to Express response
156151
// This uses the data stream protocol that DefaultChatTransport expects
157152
result.pipeUIMessageStreamToResponse(res, {
158-
headers: {
159-
...(traceId && { 'X-Trace-Id': traceId }),
160-
...(generationId && { 'X-Generation-Id': generationId }),
153+
messageMetadata: () => {
154+
return {
155+
traceId,
156+
model: MODEL_TYPE,
157+
}
161158
},
162159
})
163160
} catch (error) {

0 commit comments

Comments
 (0)