Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
1ee8a51
feat(evaluation): Optimize the interface and interaction details of t…
1348697900a Sep 15, 2025
51a2edb
[update] load builtin evaluation metrics from config file
SuXiangcheng Sep 16, 2025
2b242c6
refactor: rename datasetId to evalDatasetCollectionId for clarity
ctlaltlaltc Sep 15, 2025
32f4019
refactor: remove evalDatasetSmartGenerate and optimize smart generation
ctlaltlaltc Sep 15, 2025
1415023
feat: enhance smart generation to support collection creation
ctlaltlaltc Sep 15, 2025
36c57c7
refactor: evaluation dataset import API to support multiple files
ctlaltlaltc Sep 16, 2025
5304c9b
refactor: restructure evaluation dataset quality metadata schema
ctlaltlaltc Sep 16, 2025
fbe9026
fix: fix eval item processor logic
ChanZany Sep 16, 2025
ab0f537
feat: optimize evaluation dimension management UI and i18n support
lavine77 Sep 16, 2025
1ff7b8e
feat(evaluation): Optimize dataset file import and manual addition fe…
1348697900a Sep 16, 2025
7e1553f
feat: updated some English translations
sxf-xiongtao Sep 16, 2025
cab0d4c
feat: enhance evaluation dataset quality result filtering and UI
ctlaltlaltc Sep 16, 2025
ddf7b68
feat: add admin i18n namespace
sxf-xiongtao Sep 17, 2025
9981d05
feat(evaluation/dataset): Optimize evaluation dataset editing and ret…
1348697900a Sep 17, 2025
e5decab
fix: prevent overriding active quality assessment jobs
ctlaltlaltc Sep 17, 2025
1146cba
fix: fix the bug due to the datasetId rename by evalDatasetCollectionId
chanzhi82020 Sep 17, 2025
4808797
feat: fix chatlog record in targetoutput and score not calculate real
hellostronger Sep 15, 2025
f83d94f
feat(chat): Add evaluation dataset selector and optimize annotation a…
1348697900a Sep 17, 2025
a74e80c
[ADD] Pdf parse timeout and concurrency
Sep 3, 2025
bb38998
feat: data level score
hellostronger Sep 17, 2025
a5cbc07
fix: enhance evaluation dataset quality job management
ctlaltlaltc Sep 17, 2025
d541d0a
update admin translations
sxf-xiongtao Sep 17, 2025
ab95bb4
optimize the evalt task resource manager
chanzhi82020 Sep 17, 2025
58f45f1
feat: add detailed task view components with i18n support
lavine77 Sep 17, 2025
2d265d2
feat: optimize evaluation task creation and dimension management
lavine77 Sep 17, 2025
09f546f
feat(file): add auto file size filtering in file selector
1348697900a Sep 18, 2025
9c92fa2
[ADD] Pdf parse timeout and concurrency
Sep 3, 2025
6461bcf
feat: add lightweight evaluation dataset collection list API v2
ctlaltlaltc Sep 18, 2025
290ed58
feat(chat): Optimize the logic of the evaluation dataset selector and…
1348697900a Sep 18, 2025
23f0d93
feat: remove scalling and fix summary bug and fix taskitem list
hellostronger Sep 18, 2025
dbc9b96
[ADD] PDF parse timeout and concurrency
wwenqi-cn Sep 18, 2025
c32d01c
feat(evaluation/dataset): Optimize dataset list UI and interactions
1348697900a Sep 19, 2025
29074f3
feat: add eval_item status search and task list add summary info
hellostronger Sep 18, 2025
4c649bc
feat(dataset): Enhance database import and configuration
1348697900a Sep 16, 2025
ca35e40
fix: eval task item should support review after task created
ChanZany Sep 19, 2025
7e073bc
feat: task item list api return evaluators
hellostronger Sep 19, 2025
16d5674
feat: add weight in evaluator
hellostronger Sep 19, 2025
544b2e5
feat: add failed(no-pass) count in stats API return
ChanZany Sep 19, 2025
c6b0a38
feat(dataset): Enhance database configuration and refresh functionality
1348697900a Sep 19, 2025
c9d82b5
feat: enhance evaluation task detail components and summary logic
lavine77 Sep 19, 2025
16bcb68
feat(dataset): Add database retrieval testing functionality and inter…
1348697900a Sep 19, 2025
454c906
feat: improve CSV evaluation dataset import
ctlaltlaltc Sep 19, 2025
dd45202
update:i18nT and errcode fix,extend: mysql introspect table abilitity
lfkg Sep 19, 2025
65ebe66
fix: repaire the compatibility problem for mongo4.x
chanzhi82020 Sep 19, 2025
ab5f364
[update]remove Sangfor internal proxy source
SuXiangcheng Sep 16, 2025
4a9fa49
[update]improve diting metrics templates
SuXiangcheng Sep 18, 2025
92ae4b9
feat(dataset): Add support for database retrieval model configuration
1348697900a Sep 19, 2025
70c81f6
fix: add database_client i18n ns
sxf-xiongtao Sep 20, 2025
cbe5304
撤销 "合并分支: fix: add database_client i18n ns ('eval-dev-fix-database_cl…
Sep 20, 2025
00f38a4
撤销 "合并分支: update:i18nT and errcode fix,extend: mysql introspect table…
Sep 20, 2025
cfc572b
feat: use bullmq as summary generate async tool
hellostronger Sep 19, 2025
a6d69f8
feat: enhance internationalization and UI improvements
lavine77 Sep 20, 2025
f4e2534
feat: optimize evaluation task creation and dimension management
lavine77 Sep 20, 2025
e11463d
feat(dataset): Optimize database configuration and synchronization fe…
1348697900a Sep 20, 2025
dc7d60d
update:i18nT and errcode fix,extend: mysql introspect table abilitity
lfkg Sep 20, 2025
f87169b
feat:add session while change summary config
hellostronger Sep 20, 2025
6e98cde
fix(dataset): Fix database configuration form submission logic and op…
1348697900a Sep 20, 2025
a076bce
feat: optimize evaluation task detail page interaction and data polling
lavine77 Sep 20, 2025
1f6cabb
feat(dataset): Optimize database connection form validation and inter…
1348697900a Sep 20, 2025
13bff7d
fix:applyChanges detectChanges app's save bug
lfkg Sep 20, 2025
78568b4
feat: fix update two metric calculate no recalculate summaryScore
hellostronger Sep 20, 2025
0af55fa
update the reviewed translation terms
sxf-xiongtao Sep 21, 2025
aacb3ca
fix: special deal display abnormal icons
lavine77 Sep 22, 2025
9bcb82d
feat: optimize evaluation summary card interaction
lavine77 Sep 22, 2025
c98386d
feat: fix repush same job error
hellostronger Sep 20, 2025
ff80900
feat(dataset): Optimize database connection detection and change noti…
1348697900a Sep 22, 2025
cc29023
feat: add check i18n completeness script
lavine77 Sep 22, 2025
a29d72c
feat: enhance evaluation dataset import with validation and fixes
ctlaltlaltc Sep 22, 2025
5bb0938
fix app save state
lfkg Sep 20, 2025
2c3767c
fix generateSQL bug and training bug
lfkg Sep 20, 2025
4004f49
feat(dataset): improve database connection and empty state handling
1348697900a Sep 22, 2025
0b3116f
feat(dataset): Optimize column synchronization logic in database conf…
1348697900a Sep 22, 2025
1dd9861
fix: generate sql bug
lfkg Sep 22, 2025
4e84c22
refactor: refactor task manager by real-time status calculate
chanzhi82020 Sep 20, 2025
6888922
feat:summary temperature and point calculate fix
hellostronger Sep 22, 2025
e92742f
feat: change score calculate-in-real-time
hellostronger Sep 22, 2025
5340f21
Fix(dataset): Address the issue where deleted tables are still being …
1348697900a Sep 24, 2025
31452e1
feat: add summaryGenerate task need to init summary status
hellostronger Sep 24, 2025
68a4b81
update: Experience Optimization
lfkg Sep 23, 2025
cd66e45
fix: list evaluationItem args belowThreshold
chanzhi82020 Sep 24, 2025
21b5376
refactor: opt evaluation config vairable name
chanzhi82020 Sep 25, 2025
446ed17
feat: evalitemlist fix
hellostronger Sep 25, 2025
40dae68
feat: Optimize interaction and performance of evaluation task detail …
lavine77 Sep 25, 2025
16d3ef7
refactor: opt the bullmq setting for eval-related task
chanzhi82020 Sep 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 47 additions & 72 deletions packages/global/common/error/code/database.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { i18nT } from '../../../../web/i18n/utils';
import { type ErrType } from '../errorCode';

/* database: 509000 */
Expand All @@ -10,42 +11,32 @@ export enum DatabaseErrEnum {
clientDestroyError = 'databaseClientDestroyError',
clientAlreadyExists = 'databaseClientAlreadyExists',
clientNotFound = 'databaseClientNotFound',

// 连接相关错误
authError = 'databaseAuthError',
nameError = 'databaseNameError',
addressError = 'databaseAddressError',
databaseNameError = 'databaseNameError',
databasePortError = 'databasePortError',
hostError = 'databaseHostError',
checkError = 'databaseCheckError',
econnRefused = 'connectionRefused',
connectionFailed = 'databaseConnectionFailed',
connectionTimeout = 'databaseConnectionTimeout',

connectionLost = 'databaseConnectionLost',

// 数据库类型和支持错误
notSupportType = 'databaseNotSupportType',
notImplemented = 'databaseNotImplemented',

// API 请求和验证错误
requestValidationError = 'databaseRequestValidationError',
invalidTableName = 'databaseInvalidTableName',
fetchInfoError = 'databaseFetchInfoError',
invalidConfig = 'databaseInvalidConfig',

// 查询和操作错误
queryExecutionError = 'databaseQueryExecutionError',
tableNotFound = 'databaseTableNotFound',
columnNotFound = 'databaseColumnNotFound',
syntaxError = 'databaseSyntaxError',

// Schema相关错误
schemaIntrospectionError = 'databaseSchemaIntrospectionError',
metadataError = 'databaseMetadataError'
dbConfigNotFound = 'databaseConfigNotFound',
opUnknownDatabaseError = 'opUnknownDatabaseError',
dativeServiceError = 'dativeServiceError'
}

const databaseErr = [

{
statusText: DatabaseErrEnum.datasetParamsError,
message: 'core.database.error.not_support_dataset_type'
},
// 客户端管理错误
{
statusText: DatabaseErrEnum.clientCreateError,
Expand All @@ -57,97 +48,81 @@ const databaseErr = [
},
{
statusText: DatabaseErrEnum.clientDestroyError,
message: 'core.database.error.client_destroy_failed'
},
{
statusText: DatabaseErrEnum.clientAlreadyExists,
message: 'core.database.error.client_already_exists'
message: i18nT('database_client:client_destory_error')
},
{
statusText: DatabaseErrEnum.clientNotFound,
message: 'core.database.error.client_not_found'
message: i18nT('database_client:client_not_found')
},

// 连接错误
{
statusText: DatabaseErrEnum.authError,
message: 'core.database.error.auth_failed'
message: i18nT('database_client:authentication_failed')
},
{
statusText: DatabaseErrEnum.databaseNameError,
message: i18nT('database_client:database_not_exist')
},
{
statusText: DatabaseErrEnum.nameError,
message: 'core.database.error.database_not_found'
statusText: DatabaseErrEnum.databasePortError,
message: i18nT('database_client:database_port_error')
},
{
statusText: DatabaseErrEnum.addressError,
message: 'core.database.error.connection_address_failed'
statusText: DatabaseErrEnum.hostError,
message: i18nT('database_client:host_error')
},
{
statusText: DatabaseErrEnum.econnRefused,
message: i18nT('database_client:connection_refused')
},
{
statusText: DatabaseErrEnum.checkError,
message: 'core.database.error.connection_check_failed'
message: i18nT('database_client:connection_check_error')
},
{
statusText: DatabaseErrEnum.connectionLost,
message: i18nT('database_client:connection_lost')
},
{
statusText: DatabaseErrEnum.connectionFailed,
message: 'core.database.error.connection_failed'
message: i18nT('database_client:connection_failed')
},
{
statusText: DatabaseErrEnum.connectionTimeout,
message: 'core.database.error.connection_timeout'
message: i18nT('database_client:connection_timeout')
},

// 类型支持错误
{
statusText: DatabaseErrEnum.notSupportType,
message: 'core.database.error.database_type_not_supported'
message: i18nT('database_client:not_support_databaseType')
},
{
statusText: DatabaseErrEnum.notImplemented,
message: 'core.database.error.feature_not_implemented'
message: i18nT('database_client:not_implemented_databaseType')
},

// 请求验证错误
{
statusText: DatabaseErrEnum.requestValidationError,
message: 'core.database.error.request_validation_failed'
},
{
statusText: DatabaseErrEnum.invalidTableName,
message: 'core.database.error.invalid_table_name'
message: i18nT('database_client:invalid_table_name')
},
{
statusText: DatabaseErrEnum.fetchInfoError,
message: 'core.database.error.fetch_info_failed'
},
{
statusText: DatabaseErrEnum.invalidConfig,
message: 'core.database.error.invalid_config'
},

// 查询操作错误
{
statusText: DatabaseErrEnum.queryExecutionError,
message: 'core.database.error.query_execution_failed'
},
{
statusText: DatabaseErrEnum.tableNotFound,
message: 'core.database.error.table_not_found'
},
{
statusText: DatabaseErrEnum.columnNotFound,
message: 'core.database.error.column_not_found'
message: i18nT('database_client:fetch_info_error')
},
{
statusText: DatabaseErrEnum.syntaxError,
message: 'core.database.error.sql_syntax_error'
statusText: DatabaseErrEnum.dbConfigNotFound,
message: i18nT('database_client:database_config_not_found')
},

// Schema错误
{
statusText: DatabaseErrEnum.schemaIntrospectionError,
message: 'core.database.error.schema_introspection_failed'
statusText: DatabaseErrEnum.opUnknownDatabaseError,
message: i18nT('database_client:op_unknown_database_error')
},
{
statusText: DatabaseErrEnum.metadataError,
message: 'core.database.error.metadata_error'
statusText: DatabaseErrEnum.dativeServiceError,
message: i18nT('database_client:dative_service_error')
}
];

Expand Down
63 changes: 35 additions & 28 deletions packages/global/common/error/code/evaluation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ export enum EvaluationErrEnum {
evalNameTooLong = 'evaluationNameTooLong',
evalDescriptionTooLong = 'evaluationDescriptionTooLong',
evalDescriptionInvalidType = 'evaluationDescriptionInvalidType',
evalDatasetIdRequired = 'evaluationDatasetIdRequired',
evalTargetRequired = 'evaluationTargetRequired',
evalTargetInvalidConfig = 'evaluationTargetInvalidConfig',
evalTargetAppIdMissing = 'evaluationTargetAppIdMissing',
Expand All @@ -31,10 +30,7 @@ export enum EvaluationErrEnum {
evalInvalidStatus = 'evaluationInvalidStatus',
evalInvalidStateTransition = 'evaluationInvalidStateTransition',
evalOnlyRunningCanStop = 'evaluationOnlyRunningCanStop',
evalOnlyFailedCanRetry = 'evaluationOnlyFailedCanRetry',
evalItemNoErrorToRetry = 'evaluationItemNoErrorToRetry',
evalTargetOutputRequired = 'evaluationTargetOutputRequired',
evalEvaluatorOutputRequired = 'evaluationEvaluatorOutputRequired',
evalDatasetLoadFailed = 'evaluationDatasetLoadFailed',
evalTargetConfigInvalid = 'evaluationTargetConfigInvalid',
evalEvaluatorsConfigInvalid = 'evaluationEvaluatorsConfigInvalid',
Expand All @@ -43,7 +39,11 @@ export enum EvaluationErrEnum {
evalDuplicateDatasetName = 'evaluationDuplicateDatasetName',
evalNoDataInCollections = 'evaluationNoDataInCollections',
evalUpdateFailed = 'evaluationUpdateFailed',
evalLockAcquisitionFailed = 'evaluationLockAcquisitionFailed',
// Task execution errors
evalTaskSystemError = 'evaluationTaskSystemError',
evalManuallyStopped = 'evaluationManuallyStopped',
evalEvaluatorExecutionErrors = 'evaluationEvaluatorExecutionErrors',
evalTargetExecutionError = 'evaluationTargetExecutionError',

// Metric related errors
evalMetricNotFound = 'evaluationMetricNotFound',
Expand All @@ -55,6 +55,7 @@ export enum EvaluationErrEnum {
evalMetricPromptTooLong = 'evaluationMetricPromptTooLong',
evalMetricTypeRequired = 'evaluationMetricTypeRequired',
evalMetricTypeInvalid = 'evaluationMetricTypeInvalid',
evalMetricNameInvalid = 'evaluationMetricNameInvalid',
evalMetricBuiltinCannotModify = 'evaluationMetricBuiltinCannotModify',
evalMetricBuiltinCannotDelete = 'evaluationMetricBuiltinCannotDelete',
evalMetricIdRequired = 'evaluationMetricIdRequired',
Expand Down Expand Up @@ -118,11 +119,13 @@ export enum EvaluationErrEnum {
datasetTaskDeleteFailed = 'evaluationDatasetTaskDeleteFailed',
fetchFailedTasksError = 'evaluationFetchFailedTasksError',

// Evaluation task job related errors
evalItemJobNotFound = 'evaluationItemJobNotFound',

// File/Import related errors
fileIdRequired = 'evaluationFileIdRequired',
fileMustBeCSV = 'evaluationFileMustBeCSV',
csvInvalidStructure = 'evaluationCSVInvalidStructure',
csvTooManyRows = 'evaluationCSVTooManyRows',
csvParsingError = 'evaluationCSVParsingError',
csvNoDataRows = 'evaluationCSVNoDataRows',

Expand Down Expand Up @@ -172,10 +175,6 @@ const evaluationErrList = [
statusText: EvaluationErrEnum.evalDescriptionTooLong,
message: i18nT('evaluation:description_too_long')
},
{
statusText: EvaluationErrEnum.evalDatasetIdRequired,
message: i18nT('evaluation:dataset_id_required')
},
{
statusText: EvaluationErrEnum.evalTargetRequired,
message: i18nT('evaluation:target_required')
Expand Down Expand Up @@ -252,21 +251,13 @@ const evaluationErrList = [
statusText: EvaluationErrEnum.evalOnlyRunningCanStop,
message: i18nT('evaluation:only_running_can_stop')
},
{
statusText: EvaluationErrEnum.evalOnlyFailedCanRetry,
message: i18nT('evaluation:only_failed_can_retry')
},
{
statusText: EvaluationErrEnum.evalItemNoErrorToRetry,
message: i18nT('evaluation:item_no_error_to_retry')
},
{
statusText: EvaluationErrEnum.evalTargetOutputRequired,
message: i18nT('evaluation:target_output_required')
},
{
statusText: EvaluationErrEnum.evalEvaluatorOutputRequired,
message: i18nT('evaluation:evaluator_output_required')
statusText: EvaluationErrEnum.evalTargetExecutionError,
message: i18nT('evaluation:target_execution_error')
},
{
statusText: EvaluationErrEnum.evalDatasetLoadFailed,
Expand Down Expand Up @@ -300,10 +291,6 @@ const evaluationErrList = [
statusText: EvaluationErrEnum.evalUpdateFailed,
message: i18nT('evaluation:update_failed')
},
{
statusText: EvaluationErrEnum.evalLockAcquisitionFailed,
message: i18nT('evaluation:lock_acquisition_failed')
},
// Metric related errors
{
statusText: EvaluationErrEnum.evalMetricNotFound,
Expand Down Expand Up @@ -341,6 +328,10 @@ const evaluationErrList = [
statusText: EvaluationErrEnum.evalMetricTypeInvalid,
message: i18nT('evaluation:metric_type_invalid')
},
{
statusText: EvaluationErrEnum.evalMetricNameInvalid,
message: i18nT('evaluation:metric_name_invalid')
},
{
statusText: EvaluationErrEnum.evalMetricBuiltinCannotModify,
message: i18nT('evaluation:metric_builtin_cannot_modify')
Expand Down Expand Up @@ -540,6 +531,12 @@ const evaluationErrList = [
message: i18nT('evaluation:fetch_failed_tasks_error')
},

// Evaluation task job related errors
{
statusText: EvaluationErrEnum.evalItemJobNotFound,
message: i18nT('evaluation:item_job_not_found')
},

// File/Import related errors
{
statusText: EvaluationErrEnum.fileIdRequired,
Expand All @@ -553,10 +550,6 @@ const evaluationErrList = [
statusText: EvaluationErrEnum.csvInvalidStructure,
message: i18nT('evaluation:csv_invalid_structure')
},
{
statusText: EvaluationErrEnum.csvTooManyRows,
message: i18nT('evaluation:csv_too_many_rows')
},
{
statusText: EvaluationErrEnum.csvParsingError,
message: i18nT('evaluation:csv_parsing_error')
Expand Down Expand Up @@ -634,6 +627,20 @@ const evaluationErrList = [
{
statusText: EvaluationErrEnum.evalDescriptionInvalidType,
message: i18nT('evaluation:description_invalid_type')
},

// Task execution errors
{
statusText: EvaluationErrEnum.evalTaskSystemError,
message: i18nT('evaluation:task_system_error')
},
{
statusText: EvaluationErrEnum.evalManuallyStopped,
message: i18nT('evaluation:manually_stopped')
},
{
statusText: EvaluationErrEnum.evalEvaluatorExecutionErrors,
message: i18nT('evaluation:evaluator_execution_errors')
}
];

Expand Down
12 changes: 12 additions & 0 deletions packages/global/common/error/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,15 @@ export class UserError extends Error {
this.name = 'UserError';
}
}

export class FileUploadError extends UserError {
code: string;
details?: Record<string, any>;

constructor(code: string, message: string, details?: Record<string, any>) {
super(message);
this.name = 'FileUploadError';
this.code = code;
this.details = details;
}
}
15 changes: 15 additions & 0 deletions packages/global/common/file/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,18 @@ export const ReadFileBaseUrl = `${EndpointUrl}/api/common/file/read`;
export const documentFileType = '.txt, .docx, .csv, .xlsx, .pdf, .md, .html, .pptx';
export const imageFileType =
'.jpg, .jpeg, .png, .gif, .bmp, .webp, .svg, .tiff, .tif, .ico, .heic, .heif, .avif, .raw, .cr2, .nef, .arw, .dng, .psd, .ai, .eps, .emf, .wmf, .jfif, .exif, .pgm, .ppm, .pbm, .jp2, .j2k, .jpf, .jpx, .jpm, .mj2, .xbm, .pcx';

/* File Upload Limits */
export const DEFAULT_FILE_UPLOAD_LIMITS = {
// Default maximum number of files that can be uploaded at once
MAX_FILE_COUNT: 20,
// Default maximum size per file in MB
MAX_FILE_SIZE_MB: 500
} as const;

/* File Upload Error Codes */
export enum FileUploadErrorEnum {
FILE_TOO_LARGE = 'FILE_TOO_LARGE',
TOO_MANY_FILES = 'TOO_MANY_FILES',
INVALID_FILE_TYPE = 'INVALID_FILE_TYPE'
}
Loading
Loading