feat: Support for conversational streaming (#809)
### What problem does this PR solve? feat: Support for conversational streaming #709 ### Type of change - [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import { MessageType } from '@/constants/chat';
|
||||
import { IConversation, IReference } from '@/interfaces/database/chat';
|
||||
import { EmptyConversationId, variableEnabledFieldMap } from './constants';
|
||||
import { IClientConversation, IMessage } from './interface';
|
||||
|
||||
export const excludeUnEnabledVariables = (values: any) => {
|
||||
const unEnabledFields: Array<keyof typeof variableEnabledFieldMap> =
|
||||
@@ -20,7 +22,7 @@ export const getDocumentIdsFromConversionReference = (data: IConversation) => {
|
||||
const documentIds = data.reference.reduce(
|
||||
(pre: Array<string>, cur: IReference) => {
|
||||
cur.doc_aggs
|
||||
.map((x) => x.doc_id)
|
||||
?.map((x) => x.doc_id)
|
||||
.forEach((x) => {
|
||||
if (pre.every((y) => y !== x)) {
|
||||
pre.push(x);
|
||||
@@ -32,3 +34,20 @@ export const getDocumentIdsFromConversionReference = (data: IConversation) => {
|
||||
);
|
||||
return documentIds.join(',');
|
||||
};
|
||||
|
||||
export const buildMessageItemReference = (
|
||||
conversation: IClientConversation,
|
||||
message: IMessage,
|
||||
) => {
|
||||
const assistantMessages = conversation.message
|
||||
?.filter((x) => x.role === MessageType.Assistant)
|
||||
.slice(1);
|
||||
const referenceIndex = assistantMessages.findIndex(
|
||||
(x) => x.id === message.id,
|
||||
);
|
||||
const reference = message?.reference
|
||||
? message?.reference
|
||||
: conversation.reference[referenceIndex];
|
||||
|
||||
return reference;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user