Skip to content

Commit

Permalink
Merge pull request #4504 from janhq/fix/thread-title-summarization-co…
Browse files Browse the repository at this point in the history
…nstraints

fix: thread title summarization doesn't work well on reasoning models
  • Loading branch information
louis-jan authored Jan 22, 2025
2 parents bcb016c + 156dbc2 commit a3b242c
Showing 1 changed file with 7 additions and 17 deletions.
24 changes: 7 additions & 17 deletions web/containers/Providers/ModelHandler.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ export default function ModelHandler() {
return
}

const messageContent = message.content[0]?.text?.value
let messageContent = message.content[0]?.text?.value
if (!messageContent) {
console.warn(
`Failed to update title for thread ${message.thread_id}: Responded content is null!`
Expand All @@ -144,27 +144,17 @@ export default function ModelHandler() {
// And no new line character is present
// And non-alphanumeric characters should be removed
if (messageContent.includes('\n')) {
console.warn(
`Failed to update title for thread ${message.thread_id}: Title can't contain new line character!`
)
return
messageContent = messageContent.replace(/\n/g, ' ')
}
const match = messageContent.match(/<\/think>(.*)$/)
if (match) {
messageContent = match[1]
}

// Remove non-alphanumeric characters
const cleanedMessageContent = messageContent
.replace(/[^\p{L}\s]+/gu, '')
.trim()

// Split the message into words
const words = cleanedMessageContent.split(' ')

if (words.length >= maxWordForThreadTitle) {
console.warn(
`Failed to update title for thread ${message.thread_id}: Title can't be greater than ${maxWordForThreadTitle} words!`
)
return
}

// Do not persist empty message
if (!cleanedMessageContent.trim().length) return

Expand Down Expand Up @@ -361,7 +351,7 @@ export default function ModelHandler() {

if (!threadMessages || threadMessages.length === 0) return

const summarizeFirstPrompt = `Summarize in a ${maxWordForThreadTitle}-word Title. Give the title only. "${threadMessages[0]?.content[0]?.text?.value}"`
const summarizeFirstPrompt = `Summarize in a ${maxWordForThreadTitle}-word Title. Give the title only. Here is the message: "${threadMessages[0]?.content[0]?.text?.value}"`

// Prompt: Given this query from user {query}, return to me the summary in 10 words as the title
const msgId = ulid()
Expand Down

0 comments on commit a3b242c

Please sign in to comment.