* feat: add app chat openapi (#2908)

* add chat openapi

* create question guide openapi

* change auth method

* add chat openapi doc

* delete unused code

* feat: chat openapi doc

* rerank doc

* add chat detail openapi & doc

* update chat openapi doc

---------

Co-authored-by: heheer <heheer@sealos.io>
Co-authored-by: heheer <1239331448@qq.com>
This commit is contained in:
Archer
2024-10-14 10:26:57 +08:00
committed by shilin66
parent 9b6fe3a465
commit 9a621583c4
28 changed files with 897 additions and 83 deletions

View File

@@ -8,7 +8,7 @@ import { updateChatUserFeedback } from '@/web/core/chat/api';
const FeedbackModal = ({
appId,
chatId,
chatItemId,
dataId,
teamId,
teamToken,
shareId,
@@ -18,7 +18,7 @@ const FeedbackModal = ({
}: {
appId: string;
chatId: string;
chatItemId: string;
dataId: string;
shareId?: string;
teamId?: string;
teamToken?: string;
@@ -35,7 +35,7 @@ const FeedbackModal = ({
return updateChatUserFeedback({
appId,
chatId,
chatItemId,
dataId,
shareId,
teamId,
teamToken,

View File

@@ -1,4 +1,4 @@
import React, { useState } from 'react';
import React from 'react';
import { ModalBody, useTheme, ModalFooter, Button, Box, Card, Flex, Grid } from '@chakra-ui/react';
import { useTranslation } from 'next-i18next';
import Avatar from '@fastgpt/web/components/common/Avatar';
@@ -13,7 +13,7 @@ import EmptyTip from '@fastgpt/web/components/common/EmptyTip';
const InputDataModal = dynamic(() => import('@/pages/dataset/detail/components/InputDataModal'));
export type AdminMarkType = {
dataId?: string;
feedbackDataId?: string;
datasetId?: string;
collectionId?: string;
q: string;
@@ -137,7 +137,7 @@ const SelectMarkCollection = ({
});
}}
collectionId={adminMarkData.collectionId}
dataId={adminMarkData.dataId}
dataId={adminMarkData.feedbackDataId}
defaultValue={{
q: adminMarkData.q,
a: adminMarkData.a
@@ -153,7 +153,7 @@ const SelectMarkCollection = ({
}
onSuccess({
dataId: data.dataId,
feedbackDataId: data.dataId,
datasetId: adminMarkData.datasetId,
collectionId: adminMarkData.collectionId,
q: data.q,

View File

@@ -142,10 +142,10 @@ const ChatBox = (
const [feedbackId, setFeedbackId] = useState<string>();
const [readFeedbackData, setReadFeedbackData] = useState<{
chatItemId: string;
dataId: string;
content: string;
}>();
const [adminMarkData, setAdminMarkData] = useState<AdminMarkType & { chatItemId: string }>();
const [adminMarkData, setAdminMarkData] = useState<AdminMarkType & { dataId: string }>();
const [questionGuides, setQuestionGuide] = useState<string[]>([]);
const {
@@ -660,16 +660,16 @@ const ChatBox = (
if (chat.adminFeedback) {
setAdminMarkData({
chatItemId: chat.dataId,
dataId: chat.dataId,
datasetId: chat.adminFeedback.datasetId,
collectionId: chat.adminFeedback.collectionId,
dataId: chat.adminFeedback.dataId,
feedbackDataId: chat.adminFeedback.feedbackDataId,
q: chat.adminFeedback.q || q || '',
a: chat.adminFeedback.a
});
} else {
setAdminMarkData({
chatItemId: chat.dataId,
dataId: chat.dataId,
q,
a: formatChatValue2InputType(chat.value).text
});
@@ -703,7 +703,7 @@ const ChatBox = (
chatId,
teamId,
teamToken,
chatItemId: chat.dataId,
dataId: chat.dataId,
shareId,
outLinkUid,
userGoodFeedback: isGoodFeedback ? undefined : 'yes'
@@ -725,7 +725,7 @@ const ChatBox = (
teamId,
teamToken,
chatId,
chatItemId: chat.dataId,
dataId: chat.dataId,
userGoodFeedback: undefined
});
};
@@ -750,7 +750,7 @@ const ChatBox = (
updateChatUserFeedback({
appId,
chatId,
chatItemId: chat.dataId,
dataId: chat.dataId,
shareId,
teamId,
teamToken,
@@ -767,7 +767,7 @@ const ChatBox = (
return () => {
if (!chat.dataId) return;
setReadFeedbackData({
chatItemId: chat.dataId || '',
dataId: chat.dataId || '',
content: chat.userBadFeedback || ''
});
};
@@ -778,7 +778,7 @@ const ChatBox = (
closeCustomFeedback({
appId,
chatId,
chatItemId: chat.dataId,
dataId: chat.dataId,
index: i
});
// update dom
@@ -945,7 +945,7 @@ const ChatBox = (
text={t('common:core.app.feedback.Custom feedback')}
/>
{item.customFeedbacks.map((text, i) => (
<Box key={`${text}${i}`}>
<Box key={i}>
<MyTooltip
label={t('common:core.app.feedback.close custom feedback')}
>
@@ -1035,7 +1035,7 @@ const ChatBox = (
teamId={teamId}
teamToken={teamToken}
chatId={chatId}
chatItemId={feedbackId}
dataId={feedbackId}
shareId={shareId}
outLinkUid={outLinkUid}
onClose={() => setFeedbackId(undefined)}
@@ -1057,7 +1057,7 @@ const ChatBox = (
onCloseFeedback={() => {
setChatHistories((state) =>
state.map((chatItem) =>
chatItem.dataId === readFeedbackData.chatItemId
chatItem.dataId === readFeedbackData.dataId
? { ...chatItem, userBadFeedback: undefined }
: chatItem
)
@@ -1067,7 +1067,7 @@ const ChatBox = (
updateChatUserFeedback({
appId,
chatId,
chatItemId: readFeedbackData.chatItemId
dataId: readFeedbackData.dataId
});
} catch (error) {}
setReadFeedbackData(undefined);
@@ -1078,21 +1078,21 @@ const ChatBox = (
{!!adminMarkData && (
<SelectMarkCollection
adminMarkData={adminMarkData}
setAdminMarkData={(e) => setAdminMarkData({ ...e, chatItemId: adminMarkData.chatItemId })}
setAdminMarkData={(e) => setAdminMarkData({ ...e, dataId: adminMarkData.dataId })}
onClose={() => setAdminMarkData(undefined)}
onSuccess={(adminFeedback) => {
if (!appId || !chatId || !adminMarkData.chatItemId) return;
if (!appId || !chatId || !adminMarkData.dataId) return;
updateChatAdminFeedback({
appId,
chatId,
chatItemId: adminMarkData.chatItemId,
dataId: adminMarkData.dataId,
...adminFeedback
});
// update dom
setChatHistories((state) =>
state.map((chatItem) =>
chatItem.dataId === adminMarkData.chatItemId
chatItem.dataId === adminMarkData.dataId
? {
...chatItem,
adminFeedback
@@ -1105,12 +1105,12 @@ const ChatBox = (
updateChatUserFeedback({
appId,
chatId,
chatItemId: readFeedbackData.chatItemId,
dataId: readFeedbackData.dataId,
userBadFeedback: undefined
});
setChatHistories((state) =>
state.map((chatItem) =>
chatItem.dataId === readFeedbackData.chatItemId
chatItem.dataId === readFeedbackData.dataId
? { ...chatItem, userBadFeedback: undefined }
: chatItem
)