feat:替换 Dify 为自建 RAG去实现

1、修复了若干无权限时的失败提示语
2、新增了一个生成后续建议问题的功能
3、重构了知识问答部分的权限管理模块
4、修复了若干渲染不恰当的样式渲染
This commit is contained in:
PingChuan
2026-04-10 16:20:32 +08:00
parent f525707358
commit 5bee9288b9
31 changed files with 407 additions and 304 deletions
@@ -2,6 +2,7 @@ import { CheckCircleFilled, QuestionCircleOutlined, SaveOutlined } from '@ant-de
import { Button, Card, Checkbox, Descriptions, Divider, InputNumber, Select, Slider, Spin, Tag, Tooltip } from 'antd';
import { useDatasetSettings, type SearchMethod } from '~/hooks/dify-dataset-manager/dataset-settings';
import type { DatasetSettingsProps } from '~/types/dify-dataset-manager/dataset-settings';
import { usePermission } from '~/hooks/usePermission';
// 检索方式选项
const SEARCH_METHOD_OPTIONS: { label: string; value: SearchMethod; description: string }[] = [
@@ -19,6 +20,7 @@ const SEARCH_METHOD_OPTIONS: { label: string; value: SearchMethod; description:
export default function DatasetSettings({
dataset,
onDatasetUpdated,
canEditDataset = true,
}: DatasetSettingsProps) {
const {
saving,
@@ -29,6 +31,9 @@ export default function DatasetSettings({
updateRetrievalSettings,
} = useDatasetSettings(dataset, onDatasetUpdated);
const { hasPermission } = usePermission();
const canWrite = hasPermission('dify:settings:write') && canEditDataset;
// 是否需要显示 Reranking 提示(语义检索和混合检索需要,且强制开启)
const showRerankingInfo = retrievalSettings.searchMethod === 'semantic_search' || retrievalSettings.searchMethod === 'hybrid_search';
// 权重设置:由于 Reranking 强制开启,混合检索时由 Reranking 模型决定排序,不需要手动设置权重
@@ -245,7 +250,7 @@ export default function DatasetSettings({
{/* 操作按钮 */}
<div className="form-actions" style={{ marginTop: 24, display: 'flex', justifyContent: 'flex-end', gap: 8 }}>
<Button onClick={handleReset} disabled={!hasChanges}>
<Button onClick={handleReset} disabled={!hasChanges || !canWrite}>
</Button>
<Button
@@ -253,7 +258,7 @@ export default function DatasetSettings({
icon={<SaveOutlined />}
onClick={handleSave}
loading={saving}
disabled={!hasChanges}
disabled={!hasChanges || !canWrite}
>
</Button>