Spaces:
Build error
Build error
Adrien Denat
commited on
🐛 Vote not working with new messages (#249)
Browse files* fix retry not working after vote changes
* once assistant answer is received, invalidate the messages so we get the update id
* pass response message id from client to server
* remove url dependency
src/lib/components/chat/ChatMessage.svelte
CHANGED
|
@@ -182,7 +182,7 @@
|
|
| 182 |
class="cursor-pointer rounded-lg border border-gray-100 p-1 text-xs text-gray-400 group-hover:block hover:text-gray-500 dark:border-gray-800 dark:text-gray-400 dark:hover:text-gray-300 md:hidden lg:-right-2"
|
| 183 |
title="Retry"
|
| 184 |
type="button"
|
| 185 |
-
on:click={() => dispatch("retry")}
|
| 186 |
>
|
| 187 |
<CarbonRotate360 />
|
| 188 |
</button>
|
|
|
|
| 182 |
class="cursor-pointer rounded-lg border border-gray-100 p-1 text-xs text-gray-400 group-hover:block hover:text-gray-500 dark:border-gray-800 dark:text-gray-400 dark:hover:text-gray-300 md:hidden lg:-right-2"
|
| 183 |
title="Retry"
|
| 184 |
type="button"
|
| 185 |
+
on:click={() => dispatch("retry", { content: message.content, id: message.id })}
|
| 186 |
>
|
| 187 |
<CarbonRotate360 />
|
| 188 |
</button>
|
src/routes/conversation/[id]/+page.svelte
CHANGED
|
@@ -31,6 +31,7 @@
|
|
| 31 |
|
| 32 |
async function getTextGenerationStream(inputs: string, messageId: string, isRetry = false) {
|
| 33 |
const conversationId = $page.params.id;
|
|
|
|
| 34 |
|
| 35 |
const response = textGenerationStream(
|
| 36 |
{
|
|
@@ -43,6 +44,7 @@
|
|
| 43 |
},
|
| 44 |
{
|
| 45 |
id: messageId,
|
|
|
|
| 46 |
is_retry: isRetry,
|
| 47 |
use_cache: false,
|
| 48 |
} as Options
|
|
@@ -89,7 +91,7 @@
|
|
| 89 |
messages = [
|
| 90 |
...messages,
|
| 91 |
// id doesn't match the backend id but it's not important for assistant messages
|
| 92 |
-
{ from: "assistant", content: output.token.text.trimStart(), id:
|
| 93 |
];
|
| 94 |
} else {
|
| 95 |
lastMessage.content += output.token.text;
|
|
|
|
| 31 |
|
| 32 |
async function getTextGenerationStream(inputs: string, messageId: string, isRetry = false) {
|
| 33 |
const conversationId = $page.params.id;
|
| 34 |
+
const responseId = randomUUID();
|
| 35 |
|
| 36 |
const response = textGenerationStream(
|
| 37 |
{
|
|
|
|
| 44 |
},
|
| 45 |
{
|
| 46 |
id: messageId,
|
| 47 |
+
response_id: responseId,
|
| 48 |
is_retry: isRetry,
|
| 49 |
use_cache: false,
|
| 50 |
} as Options
|
|
|
|
| 91 |
messages = [
|
| 92 |
...messages,
|
| 93 |
// id doesn't match the backend id but it's not important for assistant messages
|
| 94 |
+
{ from: "assistant", content: output.token.text.trimStart(), id: responseId },
|
| 95 |
];
|
| 96 |
} else {
|
| 97 |
lastMessage.content += output.token.text;
|
src/routes/conversation/[id]/+server.ts
CHANGED
|
@@ -38,12 +38,13 @@ export async function POST({ request, fetch, locals, params }) {
|
|
| 38 |
const json = await request.json();
|
| 39 |
const {
|
| 40 |
inputs: newPrompt,
|
| 41 |
-
options: { id: messageId, is_retry },
|
| 42 |
} = z
|
| 43 |
.object({
|
| 44 |
inputs: z.string().trim().min(1),
|
| 45 |
options: z.object({
|
| 46 |
id: z.optional(z.string().uuid()),
|
|
|
|
| 47 |
is_retry: z.optional(z.boolean()),
|
| 48 |
}),
|
| 49 |
})
|
|
@@ -110,7 +111,11 @@ export async function POST({ request, fetch, locals, params }) {
|
|
| 110 |
}
|
| 111 |
}
|
| 112 |
|
| 113 |
-
messages.push({
|
|
|
|
|
|
|
|
|
|
|
|
|
| 114 |
|
| 115 |
await collections.conversations.updateOne(
|
| 116 |
{
|
|
|
|
| 38 |
const json = await request.json();
|
| 39 |
const {
|
| 40 |
inputs: newPrompt,
|
| 41 |
+
options: { id: messageId, is_retry, response_id: responseId },
|
| 42 |
} = z
|
| 43 |
.object({
|
| 44 |
inputs: z.string().trim().min(1),
|
| 45 |
options: z.object({
|
| 46 |
id: z.optional(z.string().uuid()),
|
| 47 |
+
response_id: z.optional(z.string().uuid()),
|
| 48 |
is_retry: z.optional(z.boolean()),
|
| 49 |
}),
|
| 50 |
})
|
|
|
|
| 111 |
}
|
| 112 |
}
|
| 113 |
|
| 114 |
+
messages.push({
|
| 115 |
+
from: "assistant",
|
| 116 |
+
content: generated_text,
|
| 117 |
+
id: (responseId as Message["id"]) || crypto.randomUUID(),
|
| 118 |
+
});
|
| 119 |
|
| 120 |
await collections.conversations.updateOne(
|
| 121 |
{
|