mirror of
https://github.com/labring/FastGPT.git
synced 2026-05-08 01:08:43 +08:00
57a505f837
* chore: Rename service & container names for consistency in Docker configs (#6710) * chore: Rename container names for consistency in Docker configs * chore: Rename service names for consistency in Docker configs chore: Update OpenSandbox versions and image repositories (#6709) * chore: Update OpenSandbox versions and image repositories * yml version * images * init yml * port --------- Co-authored-by: archer <545436317@qq.com> refactor(chat): optimize sandbox status logic and decouple UI/Status hooks (#6713) * refactor(chat): optimize sandbox status logic and decouple UI/Status hooks * fix: useRef, rename onClose to afterClose Update .env.template (#6720) aiproxy默认的请求地址改成http协议 feat: comprehensive agent skill management and sandbox infrastructure optimization - Skill System: Implemented a full skill management module including CRUD operations, folder organization, AI-driven skill generation, and versioning (switch/update). - Sandbox Infrastructure: Introduced 'volume-manager' for PVC and Docker volume lifecycle management, replacing the MinIO sync-agent for better data persistence. - Workflow Integration: Enhanced the Agent node to support skill selection and configuration, including new UI components and data normalization. - Permission Management: Added granular permission controls for skills, supporting collaborators, owner transfers, and permission inheritance. - UI/UX: Added a dedicated Skill dashboard, sandbox debug interface (terminal, logs, and iframe proxy), and comprehensive i18n support. - Maintenance: Migrated Docker services to named volumes, optimized sandbox instance limits, and improved error handling for sandbox providers. Co-authored-by: chanzhi82020 <chenzhi@sangfor.com.cn> Co-authored-by: lavine77 Signed-off-by: Jon <ljp@sangfor.com.cn> feat: hide skill prettier * perf: hide skill code * fix: ts * lock * perf: tool code * fix: ts * lock * fix: test * fix: openapi * lock * fix: test * null model --------- Co-authored-by: archer <545436317@qq.com>
50 lines
1.2 KiB
TypeScript
50 lines
1.2 KiB
TypeScript
import type { TmpDataEnum } from '@fastgpt/global/support/tmpData/constants';
|
|
import {
|
|
TmpDataExpireTime,
|
|
type TmpDataMetadata,
|
|
type TmpDataType
|
|
} from '@fastgpt/global/support/tmpData/constants';
|
|
import { MongoTmpData } from './schema';
|
|
import { type TmpDataSchema } from '@fastgpt/global/support/tmpData/type';
|
|
import { addMilliseconds } from 'date-fns';
|
|
|
|
function getDataId<T extends TmpDataEnum>(type: T, metadata: TmpDataMetadata<T>) {
|
|
return `${type}--${Object.values(metadata).join('--')}`;
|
|
}
|
|
|
|
export async function getTmpData<T extends TmpDataEnum>({
|
|
type,
|
|
metadata
|
|
}: {
|
|
type: T;
|
|
metadata: TmpDataMetadata<T>;
|
|
}) {
|
|
return (await MongoTmpData.findOne({
|
|
dataId: getDataId(type, metadata)
|
|
}).lean()) as TmpDataSchema<TmpDataType<T>> | null;
|
|
}
|
|
|
|
export function setTmpData<T extends TmpDataEnum>({
|
|
type,
|
|
metadata,
|
|
data
|
|
}: {
|
|
type: T;
|
|
metadata: TmpDataMetadata<T>;
|
|
data: TmpDataType<T>;
|
|
}) {
|
|
return MongoTmpData.updateOne(
|
|
{
|
|
dataId: getDataId(type, metadata)
|
|
},
|
|
{
|
|
dataId: getDataId(type, metadata),
|
|
data,
|
|
expireAt: addMilliseconds(Date.now(), TmpDataExpireTime[type])
|
|
},
|
|
{
|
|
upsert: true
|
|
}
|
|
);
|
|
}
|