Skip to content

Commit

Permalink
update chat openapi doc
Browse files Browse the repository at this point in the history
  • Loading branch information
c121914yu committed Oct 14, 2024
1 parent 779b848 commit 36f3758
Show file tree
Hide file tree
Showing 16 changed files with 89 additions and 65 deletions.
15 changes: 11 additions & 4 deletions docSite/content/zh-cn/docs/development/openapi/chat.md
Original file line number Diff line number Diff line change
Expand Up @@ -506,6 +506,11 @@ event取值:
* 4.8.12 以上版本才能使用
{{% /alert %}}

**重要字段**

* chatId - 指一个应用下,某一个对话窗口的 ID
* dataId - 指一个对话窗口下,某一个对话记录的 ID

## 历史记录

### 获取某个应用历史记录
Expand Down Expand Up @@ -1073,7 +1078,7 @@ curl --location --request POST 'http://localhost:3000/api/core/chat/feedback/upd
--data-raw '{
"appId": "appId",
"chatId": "chatId",
"chatItemId": "chatItemId",
"dataId": "dataId",
"userGoodFeedback": "yes"
}'
```
Expand All @@ -1087,7 +1092,7 @@ curl --location --request POST 'http://localhost:3000/api/core/chat/feedback/upd
{{% alert icon=" " context="success" %}}
- appId - 应用 Id
- chatId - 历史记录 Id
- chatItemId - 对话记录 dataId
- dataId - 对话记录 Id
- userGoodFeedback - 用户点赞时的信息(可选),取消点赞时不填此参数即可
{{% /alert %}}

Expand Down Expand Up @@ -1123,7 +1128,7 @@ curl --location --request POST 'http://localhost:3000/api/core/chat/feedback/upd
--data-raw '{
"appId": "appId",
"chatId": "chatId",
"chatItemId": "chatItemId",
"dataId": "dataId",
"userBadFeedback": "yes"
}'
```
Expand All @@ -1137,7 +1142,7 @@ curl --location --request POST 'http://localhost:3000/api/core/chat/feedback/upd
{{% alert icon=" " context="success" %}}
- appId - 应用 Id
- chatId - 历史记录 Id
- chatItemId - 对话记录 Id
- dataId - 对话记录 Id
- userBadFeedback - 用户点踩时的信息(可选),取消点踩时不填此参数即可
{{% /alert %}}

Expand Down Expand Up @@ -1215,3 +1220,5 @@ curl --location --request POST 'http://localhost:3000/api/core/ai/agent/createQu
{{< /tab >}}
{{< /tabs >}}



2 changes: 1 addition & 1 deletion packages/global/core/chat/api.d.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export type UpdateChatFeedbackProps = {
appId: string;
chatId: string;
chatItemId: string;
dataId: string;
shareId?: string;
teamId?: string;
teamToken?: string;
Expand Down
2 changes: 1 addition & 1 deletion packages/global/core/chat/type.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ export type ChatItemSchema = (UserChatItemType | SystemChatItemType | AIChatItem
};

export type AdminFbkType = {
dataId: string;
feedbackDataId: string;
datasetId: string;
collectionId: string;
q: string;
Expand Down
8 changes: 4 additions & 4 deletions packages/service/core/chat/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,22 +55,22 @@ export const adaptStringValue = (value: any): ChatItemValueItemType[] => {
export const addCustomFeedbacks = async ({
appId,
chatId,
chatItemId,
dataId,
feedbacks
}: {
appId: string;
chatId?: string;
chatItemId?: string;
dataId?: string;
feedbacks: string[];
}) => {
if (!chatId || !chatItemId) return;
if (!chatId || !dataId) return;

try {
await MongoChatItem.findOneAndUpdate(
{
appId,
chatId,
dataId: chatItemId
dataId
},
{
$push: { customFeedbacks: { $each: feedbacks } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export const dispatchCustomFeedback = (props: Record<string, any>): Response =>
const {
runningAppInfo: { id: appId },
chatId,
responseChatItemId: chatItemId,
responseChatItemId: dataId,
stream,
workflowStreamResponse,
params: { system_textareaInput: feedbackText = '' }
Expand All @@ -27,13 +27,13 @@ export const dispatchCustomFeedback = (props: Record<string, any>): Response =>
addCustomFeedbacks({
appId,
chatId,
chatItemId,
dataId,
feedbacks: [feedbackText]
});
}, 60000);

if (stream) {
if (!chatId || !chatItemId) {
if (!chatId || !dataId) {
workflowStreamResponse?.({
event: SseResponseEventEnum.fastAnswer,
data: textAdaptGptResponse({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { updateChatUserFeedback } from '@/web/core/chat/api';
const FeedbackModal = ({
appId,
chatId,
chatItemId,
dataId,
teamId,
teamToken,
shareId,
Expand All @@ -18,7 +18,7 @@ const FeedbackModal = ({
}: {
appId: string;
chatId: string;
chatItemId: string;
dataId: string;
shareId?: string;
teamId?: string;
teamToken?: string;
Expand All @@ -35,7 +35,7 @@ const FeedbackModal = ({
return updateChatUserFeedback({
appId,
chatId,
chatItemId,
dataId,
shareId,
teamId,
teamToken,
Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand All @@ -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;
Expand Down Expand Up @@ -137,7 +137,7 @@ const SelectMarkCollection = ({
});
}}
collectionId={adminMarkData.collectionId}
dataId={adminMarkData.dataId}
dataId={adminMarkData.feedbackDataId}
defaultValue={{
q: adminMarkData.q,
a: adminMarkData.a
Expand All @@ -153,7 +153,7 @@ const SelectMarkCollection = ({
}

onSuccess({
dataId: data.dataId,
feedbackDataId: data.dataId,
datasetId: adminMarkData.datasetId,
collectionId: adminMarkData.collectionId,
q: data.q,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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
});
Expand Down Expand Up @@ -703,7 +703,7 @@ const ChatBox = (
chatId,
teamId,
teamToken,
chatItemId: chat.dataId,
dataId: chat.dataId,
shareId,
outLinkUid,
userGoodFeedback: isGoodFeedback ? undefined : 'yes'
Expand All @@ -725,7 +725,7 @@ const ChatBox = (
teamId,
teamToken,
chatId,
chatItemId: chat.dataId,
dataId: chat.dataId,
userGoodFeedback: undefined
});
};
Expand All @@ -750,7 +750,7 @@ const ChatBox = (
updateChatUserFeedback({
appId,
chatId,
chatItemId: chat.dataId,
dataId: chat.dataId,
shareId,
teamId,
teamToken,
Expand All @@ -767,7 +767,7 @@ const ChatBox = (
return () => {
if (!chat.dataId) return;
setReadFeedbackData({
chatItemId: chat.dataId || '',
dataId: chat.dataId || '',
content: chat.userBadFeedback || ''
});
};
Expand All @@ -778,7 +778,7 @@ const ChatBox = (
closeCustomFeedback({
appId,
chatId,
chatItemId: chat.dataId,
dataId: chat.dataId,
index: i
});
// update dom
Expand Down Expand Up @@ -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')}
>
Expand Down Expand Up @@ -1035,7 +1035,7 @@ const ChatBox = (
teamId={teamId}
teamToken={teamToken}
chatId={chatId}
chatItemId={feedbackId}
dataId={feedbackId}
shareId={shareId}
outLinkUid={outLinkUid}
onClose={() => setFeedbackId(undefined)}
Expand All @@ -1057,7 +1057,7 @@ const ChatBox = (
onCloseFeedback={() => {
setChatHistories((state) =>
state.map((chatItem) =>
chatItem.dataId === readFeedbackData.chatItemId
chatItem.dataId === readFeedbackData.dataId
? { ...chatItem, userBadFeedback: undefined }
: chatItem
)
Expand All @@ -1067,7 +1067,7 @@ const ChatBox = (
updateChatUserFeedback({
appId,
chatId,
chatItemId: readFeedbackData.chatItemId
dataId: readFeedbackData.dataId
});
} catch (error) {}
setReadFeedbackData(undefined);
Expand All @@ -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
Expand All @@ -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
)
Expand Down
4 changes: 2 additions & 2 deletions projects/app/src/global/core/chat/api.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,12 @@ export type DeleteChatItemProps = OutLinkChatAuthProps & {
export type AdminUpdateFeedbackParams = AdminFbkType & {
appId: string;
chatId: string;
chatItemId: string;
dataId: string;
};

export type CloseCustomFeedbackParams = {
appId: string;
chatId: string;
chatItemId: string;
dataId: string;
index: number;
};
8 changes: 4 additions & 4 deletions projects/app/src/pages/api/core/chat/feedback/adminUpdate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ import { ReadPermissionVal } from '@fastgpt/global/support/permission/constant';
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
try {
await connectToDatabase();
const { appId, chatId, chatItemId, datasetId, dataId, q, a } =
const { appId, chatId, dataId, datasetId, feedbackDataId, q, a } =
req.body as AdminUpdateFeedbackParams;

if (!chatItemId || !datasetId || !dataId || !q) {
if (!dataId || !datasetId || !feedbackDataId || !q) {
throw new Error('missing parameter');
}

Expand All @@ -29,12 +29,12 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
{
appId,
chatId,
dataId: chatItemId
dataId
},
{
adminFeedback: {
datasetId,
dataId,
dataId: feedbackDataId,
q,
a
}
Expand Down
Loading

0 comments on commit 36f3758

Please sign in to comment.