mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
### What problem does this PR solve? feat: Send message with uuid #2088 ### Type of change - [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
@ -6,7 +6,7 @@ import {
|
||||
import { useSendMessageWithSse } from '@/hooks/logic-hooks';
|
||||
import { IAnswer, Message } from '@/interfaces/database/chat';
|
||||
import api from '@/utils/api';
|
||||
import omit from 'lodash/omit';
|
||||
import { buildMessageUuid } from '@/utils/chat';
|
||||
import trim from 'lodash/trim';
|
||||
import {
|
||||
Dispatch,
|
||||
@ -60,15 +60,13 @@ export const useSelectCurrentSharedConversation = (conversationId: string) => {
|
||||
message: [
|
||||
...(pre.message ?? []),
|
||||
{
|
||||
role: MessageType.User,
|
||||
content: message.content,
|
||||
doc_ids: message.doc_ids,
|
||||
id: uuid(),
|
||||
...message,
|
||||
id: buildMessageUuid(message),
|
||||
} as IMessage,
|
||||
{
|
||||
role: MessageType.Assistant,
|
||||
content: '',
|
||||
id: uuid(),
|
||||
id: buildMessageUuid({ ...message, role: MessageType.Assistant }),
|
||||
reference: {},
|
||||
} as IMessage,
|
||||
],
|
||||
@ -89,6 +87,11 @@ export const useSelectCurrentSharedConversation = (conversationId: string) => {
|
||||
...latestMessage,
|
||||
content: answer.answer,
|
||||
reference: answer.reference,
|
||||
id: buildMessageUuid({
|
||||
id: answer.id,
|
||||
role: MessageType.Assistant,
|
||||
}),
|
||||
prompt: answer.prompt,
|
||||
} as IMessage,
|
||||
],
|
||||
};
|
||||
@ -152,22 +155,16 @@ export const useSendSharedMessage = (
|
||||
);
|
||||
|
||||
const sendMessage = useCallback(
|
||||
async (message: string, id?: string) => {
|
||||
async (message: Message, id?: string) => {
|
||||
const res = await send({
|
||||
conversation_id: id ?? conversationId,
|
||||
quote: false,
|
||||
messages: [
|
||||
...(conversation?.message ?? []).map((x: IMessage) => omit(x, 'id')),
|
||||
{
|
||||
role: MessageType.User,
|
||||
content: message,
|
||||
},
|
||||
],
|
||||
messages: [...(conversation?.message ?? []), message],
|
||||
});
|
||||
|
||||
if (res && (res?.response.status !== 200 || res?.data?.retcode !== 0)) {
|
||||
// cancel loading
|
||||
setValue(message);
|
||||
setValue(message.content);
|
||||
removeLatestMessage();
|
||||
}
|
||||
},
|
||||
@ -183,7 +180,7 @@ export const useSendSharedMessage = (
|
||||
);
|
||||
|
||||
const handleSendMessage = useCallback(
|
||||
async (message: string) => {
|
||||
async (message: Message) => {
|
||||
if (conversationId !== '') {
|
||||
sendMessage(message);
|
||||
} else {
|
||||
@ -206,10 +203,20 @@ export const useSendSharedMessage = (
|
||||
const handlePressEnter = useCallback(
|
||||
(documentIds: string[]) => {
|
||||
if (trim(value) === '') return;
|
||||
const id = uuid();
|
||||
if (done) {
|
||||
setValue('');
|
||||
addNewestConversation({ content: value, doc_ids: documentIds });
|
||||
handleSendMessage(value.trim());
|
||||
addNewestConversation({
|
||||
content: value,
|
||||
doc_ids: documentIds,
|
||||
id,
|
||||
role: MessageType.User,
|
||||
});
|
||||
handleSendMessage({
|
||||
content: value.trim(),
|
||||
id,
|
||||
role: MessageType.User,
|
||||
});
|
||||
}
|
||||
},
|
||||
[addNewestConversation, done, handleSendMessage, setValue, value],
|
||||
|
||||
Reference in New Issue
Block a user