Skip to content

Commit 5b39f40

Browse files
committed
Send last user and last assistant message for ads endpoint
1 parent 1e60765 commit 5b39f40

File tree

1 file changed

+27
-10
lines changed

1 file changed

+27
-10
lines changed

cli/src/hooks/use-gravity-ad.ts

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { getAdsEnabled } from '../commands/ads'
55
import { useChatStore } from '../state/chat-store'
66
import { subscribeToActivity } from '../utils/activity-tracker'
77
import { getAuthToken } from '../utils/auth'
8-
import { logger } from '../utils/logger'
8+
import { logger, loggerContext } from '../utils/logger'
99

1010
const AD_ROTATION_INTERVAL_MS = 60 * 1000 // 60 seconds per ad
1111
const MAX_ADS_AFTER_ACTIVITY = 3 // Show up to 3 ads after last activity, then stop
@@ -145,16 +145,30 @@ export const useGravityAd = (): GravityAdState => {
145145
}
146146
}
147147

148-
const userAdMessages = adMessages
149-
.filter((message) => message.role === 'user')
150-
.slice(-3)
151-
.map((message) => ({
152-
role: message.role,
153-
content: message.content.replace(
148+
// Get the last assistant message and last user message
149+
const lastAssistantMessage = [...adMessages]
150+
.reverse()
151+
.find((message) => message.role === 'assistant')
152+
const lastUserMessage = [...adMessages]
153+
.reverse()
154+
.find((message) => message.role === 'user')
155+
156+
const messagesToSend: { role: string; content: string }[] = []
157+
if (lastAssistantMessage) {
158+
messagesToSend.push({
159+
role: lastAssistantMessage.role,
160+
content: lastAssistantMessage.content,
161+
})
162+
}
163+
if (lastUserMessage) {
164+
messagesToSend.push({
165+
role: lastUserMessage.role,
166+
content: lastUserMessage.content.replace(
154167
/<user_message>(.*?)<\/user_message>/,
155168
'$1',
156169
),
157-
}))
170+
})
171+
}
158172

159173
try {
160174
const response = await fetch(`${WEBSITE_URL}/api/v1/ads`, {
@@ -163,7 +177,10 @@ export const useGravityAd = (): GravityAdState => {
163177
'Content-Type': 'application/json',
164178
Authorization: `Bearer ${authToken}`,
165179
},
166-
body: JSON.stringify({ messages: userAdMessages }),
180+
body: JSON.stringify({
181+
messages: messagesToSend,
182+
sessionId: loggerContext.clientSessionId,
183+
}),
167184
})
168185

169186
if (!response.ok) {
@@ -178,7 +195,7 @@ export const useGravityAd = (): GravityAdState => {
178195
const ad = data.ad as AdResponse | null
179196

180197
logger.info(
181-
{ ad, request: { messages: userAdMessages } },
198+
{ ad, request: { messages: messagesToSend } },
182199
'[gravity] Received ad response',
183200
)
184201
return ad

0 commit comments

Comments
 (0)