File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 3333 @delete =" deleteMessage (message .id )" />
3434 <Message v-if =" streamingMessage "
3535 :id =" ' message-streaming' "
36+ :key =" ' message-streaming' "
3637 :message =" streamingMessage "
3738 :streaming =" true " />
3839 <LoadingPlaceholder v-else-if =" loading .llmGeneration "
3940 :id =" ' message-placeholder' "
41+ :key =" ' message-placeholder' "
4042 :slow-pickup =" slowPickup " />
4143 </div >
4244 </div >
Original file line number Diff line number Diff line change 5757 <NcDateTime class="message__header__timestamp" :timestamp =" new Date ((message ?.timestamp ?? 0 ) * 1000 )" :ignore-seconds =" true " />
5858 </div >
5959 <NcRichText class="message__content"
60- :text =" message .content "
60+ :text =" streaming ? streamedMessageContent : message .content "
6161 :use-markdown =" true "
6262 :reference-limit =" 1 "
6363 :references =" references "
@@ -158,6 +158,7 @@ export default {
158158 // with [] we inhibit the extract+resolve mechanism on NcRichText
159159 // TODO This can be removed (and all the custom extract+resolve logic) when fixed in NcRichText
160160 references: [],
161+ streamedMessageContent: ' ' ,
161162 }
162163 },
163164
@@ -178,6 +179,28 @@ export default {
178179 },
179180 },
180181
182+ watch: {
183+ // Pseudo streaming
184+ async ' message.content' (messageContent, oldMessageContent) {
185+ if (! this .streaming ) {
186+ return
187+ }
188+ if (oldMessageContent) {
189+ this .streamedMessageContent = oldMessageContent
190+ messageContent = messageContent .replace (oldMessageContent, ' ' )
191+ }
192+ let cachedStreamedMessageContent
193+ for (const char of messageContent .split (' ' )) {
194+ this .streamedMessageContent += char
195+ cachedStreamedMessageContent = this .streamedMessageContent
196+ await new Promise (resolve => setTimeout (resolve, 5 ))
197+ if (cachedStreamedMessageContent !== this .streamedMessageContent ) {
198+ break
199+ }
200+ }
201+ },
202+ },
203+
181204 mounted () {
182205 this .fetch ()
183206 },
You can’t perform that action at this time.
0 commit comments