fix: input modal (#5108)

* fix: input modal

* fix: input modal

* fix: chat logs count
This commit is contained in:
Archer
2025-06-28 17:09:59 +08:00
committed by GitHub
parent 8e18562c91
commit a70d2aa9f3
4 changed files with 74 additions and 58 deletions

View File

@@ -38,3 +38,4 @@ weight: 786
1. 知识库数据输入,识别 QA 模式错误。 1. 知识库数据输入,识别 QA 模式错误。
2. 知识库标签条件冲突。 2. 知识库标签条件冲突。
3. 对话日志点赞点踩统计。

View File

@@ -64,9 +64,7 @@ const ChatItemSchema = new Schema({
memories: Object, memories: Object,
errorMsg: String, errorMsg: String,
userGoodFeedback: String, userGoodFeedback: String,
userBadFeedback: { userBadFeedback: String,
type: String
},
customFeedbacks: [String], customFeedbacks: [String],
adminFeedback: { adminFeedback: {
type: { type: {

View File

@@ -76,58 +76,47 @@ const InputDataModal = ({
}); });
const imagePreivewUrl = watch('imagePreivewUrl'); const imagePreivewUrl = watch('imagePreivewUrl');
const { data: collection = defaultCollectionDetail } = useRequest2( const { data: collection = defaultCollectionDetail, loading: initLoading } = useRequest2(
() => getDatasetCollectionById(collectionId),
{
manual: false,
refreshDeps: [collectionId],
onSuccess(res) {
if (res.type === DatasetCollectionTypeEnum.images) {
setCurrentTab(TabEnum.image);
}
}
}
);
// Get data
const { data: dataItem, loading: isFetchingData } = useRequest2(
async () => { async () => {
if (dataId) return getDatasetDataItemById(dataId); const [collection, dataItem] = await Promise.all([
return null; getDatasetCollectionById(collectionId),
}, ...(dataId ? [getDatasetDataItemById(dataId)] : [])
{ ]);
manual: false,
refreshDeps: [dataId], if (dataItem) {
onSuccess(res) { setCurrentTab(dataItem?.a ? TabEnum.qa : TabEnum.chunk);
if (res) {
reset({ reset({
q: res.q || '', q: dataItem.q || '',
a: res.a || '', a: dataItem.a || '',
imagePreivewUrl: res.imagePreivewUrl, imagePreivewUrl: dataItem.imagePreivewUrl,
indexes: res.indexes.map((item) => ({ indexes: dataItem.indexes.map((item) => ({
...item, ...item,
fold: true fold: true
})) }))
}); });
} else if (defaultValue) { } else if (defaultValue) {
setCurrentTab(defaultValue?.a ? TabEnum.qa : TabEnum.chunk);
reset({ reset({
q: defaultValue.q || '', q: defaultValue.q || '',
a: defaultValue.a || '', a: defaultValue.a || '',
imagePreivewUrl: defaultValue.imagePreivewUrl imagePreivewUrl: defaultValue.imagePreivewUrl
}); });
} else {
setCurrentTab(TabEnum.chunk);
} }
// Forcus reset to image tab
if (collection.type === DatasetCollectionTypeEnum.images) {
setCurrentTab(TabEnum.image);
}
return collection;
}, },
onError(err) { {
onClose(); manual: false,
} refreshDeps: [collectionId, dataId, defaultValue]
} }
); );
useEffect(() => {
if (currentTab || !dataItem) return;
setCurrentTab(dataItem.a ? TabEnum.qa : TabEnum.chunk);
}, [collection, dataItem, currentTab]);
// Import new data // Import new data
const { runAsync: sureImportData, loading: isImporting } = useRequest2( const { runAsync: sureImportData, loading: isImporting } = useRequest2(
async (e: InputDataType) => { async (e: InputDataType) => {
@@ -138,7 +127,7 @@ const InputDataModal = ({
q: e.q, q: e.q,
a: currentTab === TabEnum.qa ? e.a : '', a: currentTab === TabEnum.qa ? e.a : '',
// Contains no default index // Contains no default index
indexes: e.indexes.filter((item) => !!item.text?.trim()) indexes: e.indexes?.filter((item) => !!item.text?.trim()) || []
}; };
const dataId = await postInsertData2Dataset(postData); const dataId = await postInsertData2Dataset(postData);
@@ -194,8 +183,6 @@ const InputDataModal = ({
} }
); );
const isLoading = isFetchingData;
const icon = useMemo( const icon = useMemo(
() => getCollectionIcon({ type: collection.type, name: collection.sourceName }), () => getCollectionIcon({ type: collection.type, name: collection.sourceName }),
[collection] [collection]
@@ -240,7 +227,7 @@ const InputDataModal = ({
<MyBox <MyBox
display={'flex'} display={'flex'}
flexDir={'column'} flexDir={'column'}
isLoading={isLoading} isLoading={initLoading}
h={'100%'} h={'100%'}
py={[6, '1.5rem']} py={[6, '1.5rem']}
> >

View File

@@ -86,14 +86,44 @@ async function handler(
$group: { $group: {
_id: null, _id: null,
messageCount: { $sum: 1 }, messageCount: { $sum: 1 },
goodFeedback: { $sum: { $cond: [{ $eq: ['$userGoodFeedback', true] }, 1, 0] } }, goodFeedback: {
badFeedback: { $sum: { $cond: [{ $eq: ['$userBadFeedback', true] }, 1, 0] } }, $sum: {
$cond: [
{
$ifNull: ['$userGoodFeedback', false]
},
1,
0
]
}
},
badFeedback: {
$sum: {
$cond: [
{
$ifNull: ['$userBadFeedback', false]
},
1,
0
]
}
},
customFeedback: { customFeedback: {
$sum: { $sum: {
$cond: [{ $gt: [{ $size: { $ifNull: ['$customFeedbacks', []] } }, 0] }, 1, 0] $cond: [{ $gt: [{ $size: { $ifNull: ['$customFeedbacks', []] } }, 0] }, 1, 0]
} }
}, },
adminMark: { $sum: { $cond: [{ $eq: ['$adminFeedback', true] }, 1, 0] } } adminMark: {
$sum: {
$cond: [
{
$ifNull: ['$adminFeedback', false]
},
1,
0
]
}
}
} }
} }
], ],
@@ -140,9 +170,9 @@ async function handler(
), ),
MongoChat.countDocuments(where, { ...readFromSecondary }) MongoChat.countDocuments(where, { ...readFromSecondary })
]); ]);
console.log(list);
const listWithSourceMember = await addSourceMember({ const listWithSourceMember = await addSourceMember({
list: list list
}); });
const listWithoutTmbId = list.filter((item) => !item.tmbId); const listWithoutTmbId = list.filter((item) => !item.tmbId);