Skip to content

Commit 04a1a90

Browse files
committed
add warning in chat about slow pickup too
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
1 parent 03d1c31 commit 04a1a90

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed

lib/Controller/ChattyLLMController.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,8 @@ public function checkMessageGenerationTask(int $taskId, int $sessionId): JSONRes
708708
return new JSONResponse(['task_status' => $task->getstatus()], Http::STATUS_EXPECTATION_FAILED);
709709
}
710710
} elseif ($task->getstatus() === Task::STATUS_RUNNING || $task->getstatus() === Task::STATUS_SCHEDULED) {
711-
return new JSONResponse(['task_status' => $task->getstatus()], Http::STATUS_EXPECTATION_FAILED);
711+
$slowPickup = $task->getstatus() === Task::STATUS_SCHEDULED && $task->getScheduledAt() + 60 * 5 < time();
712+
return new JSONResponse(['task_status' => $task->getstatus(), 'slowPickup' => $slowPickup], Http::STATUS_EXPECTATION_FAILED);
712713
} elseif ($task->getstatus() === Task::STATUS_FAILED || $task->getstatus() === Task::STATUS_CANCELLED) {
713714
return new JSONResponse(['error' => 'task_failed_or_canceled', 'task_status' => $task->getstatus()], Http::STATUS_BAD_REQUEST);
714715
}

src/components/ChattyLLM/ChattyLLMInputForm.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@
106106
</div>
107107
<ConversationBox :messages="messages"
108108
:loading="loading"
109+
:slow-pickup="slowPickup"
109110
@regenerate="runRegenerationTask"
110111
@delete="deleteMessage" />
111112
<div v-if="messages != null && messages.length > 0 && !loading.llmGeneration && !loading.newHumanMessage && messages[messages.length - 1]?.role === 'human'" class="session-area__chat-area__active-session__utility-button">
@@ -252,6 +253,7 @@ export default {
252253
pollMessageGenerationTimerId: null,
253254
pollTitleGenerationTimerId: null,
254255
autoplayAudioChat: loadState('assistant', 'autoplay_audio_chat', true),
256+
slowPickup: false,
255257
}
256258
},
257259
@@ -665,6 +667,7 @@ export default {
665667
666668
async runGenerationTask(sessionId, agencyConfirm = null) {
667669
try {
670+
this.slowPickup = false
668671
this.loading.llmGeneration = true
669672
const params = {
670673
sessionId,
@@ -748,6 +751,7 @@ export default {
748751
reject(new Error('Message generation task check failed'))
749752
} else {
750753
console.debug('checkTaskPolling, task is still scheduled or running')
754+
this.slowPickup = error.response.data.slowPickup
751755
}
752756
})
753757
}, 2000)

src/components/ChattyLLM/ConversationBox.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
:information-source-names="informationSourceNames"
3232
@regenerate="regenerate(message.id)"
3333
@delete="deleteMessage(message.id)" />
34-
<LoadingPlaceholder v-if="loading.llmGeneration" />
34+
<LoadingPlaceholder v-if="loading.llmGeneration" :slow-pickup="slowPickup" />
3535
</div>
3636
</div>
3737
</template>
@@ -79,6 +79,10 @@ export default {
7979
sessionDelete: false,
8080
}),
8181
},
82+
slowPickup: {
83+
type: Boolean,
84+
default: false,
85+
},
8286
},
8387
8488
emits: ['delete', 'regenerate'],

src/components/ChattyLLM/LoadingPlaceholder.vue

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,17 @@
1414
</div>
1515
<div v-if="type === 'messages'" class="placeholder-item__info" />
1616
</li>
17+
<NcNoteCard
18+
v-if="slowPickup"
19+
type="warning">
20+
{{ t('assistant', 'This chat response is taking longer to start generating than expected. Please contact your administrator to ensure that this is correctly configured.') }}
21+
</NcNoteCard>
1722
</ul>
1823
</template>
1924

2025
<script>
26+
import NcNoteCard from '@nextcloud/vue/components/NcNoteCard'
27+
2128
const AVATAR = {
2229
SIZE: {
2330
EXTRA_SMALL: 22,
@@ -34,6 +41,10 @@ const AVATAR = {
3441
export default {
3542
name: 'LoadingPlaceholder',
3643
44+
components: {
45+
NcNoteCard,
46+
},
47+
3748
props: {
3849
type: {
3950
type: String,
@@ -46,6 +57,10 @@ export default {
4657
type: Number,
4758
default: 1,
4859
},
60+
slowPickup: {
61+
type: Boolean,
62+
default: false,
63+
},
4964
},
5065
5166
computed: {

0 commit comments

Comments
 (0)