Skip to content

Commit 76e1f85

Browse files
author
catlog22
committed
feat: 添加动态批处理大小设置及相关国际化支持,优化配置管理
1 parent 57173c9 commit 76e1f85

3 files changed

Lines changed: 32 additions & 3 deletions

File tree

ccw/src/core/routes/codexlens/config-handlers.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -856,6 +856,19 @@ export async function handleCodexLensConfigRoutes(ctx: RouteContext): Promise<bo
856856
if (settings.api?.batch_size !== undefined) {
857857
settingsDefaults['CODEXLENS_API_BATCH_SIZE'] = String(settings.api.batch_size);
858858
}
859+
// Dynamic batch size settings
860+
if (settings.api?.batch_size_dynamic !== undefined) {
861+
settingsDefaults['CODEXLENS_API_BATCH_SIZE_DYNAMIC'] = String(settings.api.batch_size_dynamic);
862+
}
863+
if (settings.api?.batch_size_utilization_factor !== undefined) {
864+
settingsDefaults['CODEXLENS_API_BATCH_SIZE_UTILIZATION'] = String(settings.api.batch_size_utilization_factor);
865+
}
866+
if (settings.api?.batch_size_max !== undefined) {
867+
settingsDefaults['CODEXLENS_API_BATCH_SIZE_MAX'] = String(settings.api.batch_size_max);
868+
}
869+
if (settings.api?.chars_per_token_estimate !== undefined) {
870+
settingsDefaults['CODEXLENS_CHARS_PER_TOKEN'] = String(settings.api.chars_per_token_estimate);
871+
}
859872

860873
// Cascade search settings
861874
if (settings.cascade?.strategy) {
@@ -1057,6 +1070,10 @@ export async function handleCodexLensConfigRoutes(ctx: RouteContext): Promise<bo
10571070
'CODEXLENS_RERANKER_TOP_K': { path: ['reranker', 'top_k'], transform: v => parseInt(v, 10) },
10581071
'CODEXLENS_API_MAX_WORKERS': { path: ['api', 'max_workers'], transform: v => parseInt(v, 10) },
10591072
'CODEXLENS_API_BATCH_SIZE': { path: ['api', 'batch_size'], transform: v => parseInt(v, 10) },
1073+
'CODEXLENS_API_BATCH_SIZE_DYNAMIC': { path: ['api', 'batch_size_dynamic'], transform: v => v === 'true' },
1074+
'CODEXLENS_API_BATCH_SIZE_UTILIZATION': { path: ['api', 'batch_size_utilization_factor'], transform: v => parseFloat(v) },
1075+
'CODEXLENS_API_BATCH_SIZE_MAX': { path: ['api', 'batch_size_max'], transform: v => parseInt(v, 10) },
1076+
'CODEXLENS_CHARS_PER_TOKEN': { path: ['api', 'chars_per_token_estimate'], transform: v => parseInt(v, 10) },
10601077
'CODEXLENS_CASCADE_STRATEGY': { path: ['cascade', 'strategy'] },
10611078
'CODEXLENS_CASCADE_COARSE_K': { path: ['cascade', 'coarse_k'], transform: v => parseInt(v, 10) },
10621079
'CODEXLENS_CASCADE_FINE_K': { path: ['cascade', 'fine_k'], transform: v => parseInt(v, 10) },

ccw/src/templates/dashboard-js/i18n.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,11 @@ const i18n = {
305305
'codexlens.envField.enabled': 'Enabled',
306306
'codexlens.envField.topKResults': 'Top K Results',
307307
'codexlens.envField.maxWorkers': 'Max Workers',
308-
'codexlens.envField.batchSize': 'Batch Size',
308+
'codexlens.envField.batchSize': 'Batch Size (Static)',
309+
'codexlens.envField.dynamicBatchSize': 'Dynamic Batch Size',
310+
'codexlens.envField.batchSizeUtilization': 'Utilization Factor',
311+
'codexlens.envField.batchSizeMax': 'Max Batch Size',
312+
'codexlens.envField.charsPerToken': 'Chars per Token',
309313
'codexlens.envField.searchStrategy': 'Search Strategy',
310314
'codexlens.envField.coarseK': 'Coarse K (1st stage)',
311315
'codexlens.envField.fineK': 'Fine K (final)',
@@ -2450,7 +2454,11 @@ const i18n = {
24502454
'codexlens.envField.enabled': '启用',
24512455
'codexlens.envField.topKResults': 'Top K 结果数',
24522456
'codexlens.envField.maxWorkers': '最大工作线程数',
2453-
'codexlens.envField.batchSize': '批处理大小',
2457+
'codexlens.envField.batchSize': '批处理大小 (固定)',
2458+
'codexlens.envField.dynamicBatchSize': '动态批处理大小',
2459+
'codexlens.envField.batchSizeUtilization': '容量利用率',
2460+
'codexlens.envField.batchSizeMax': '最大批处理大小',
2461+
'codexlens.envField.charsPerToken': '字符/Token比',
24542462
'codexlens.envField.searchStrategy': '搜索策略',
24552463
'codexlens.envField.coarseK': '粗筛 K (第一阶段)',
24562464
'codexlens.envField.fineK': '精筛 K (最终)',

ccw/src/templates/dashboard-js/views/codexlens-manager.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1086,7 +1086,11 @@ var ENV_VAR_GROUPS = {
10861086
icon: 'cpu',
10871087
vars: {
10881088
'CODEXLENS_API_MAX_WORKERS': { labelKey: 'codexlens.envField.maxWorkers', type: 'number', placeholder: '4', default: '4', settingsPath: 'api.max_workers', min: 1, max: 32 },
1089-
'CODEXLENS_API_BATCH_SIZE': { labelKey: 'codexlens.envField.batchSize', type: 'number', placeholder: '8', default: '8', settingsPath: 'api.batch_size', min: 1, max: 64 }
1089+
'CODEXLENS_API_BATCH_SIZE': { labelKey: 'codexlens.envField.batchSize', type: 'number', placeholder: '8', default: '8', settingsPath: 'api.batch_size', min: 1, max: 64, showWhen: function(env) { return env['CODEXLENS_API_BATCH_SIZE_DYNAMIC'] !== 'true'; } },
1090+
'CODEXLENS_API_BATCH_SIZE_DYNAMIC': { labelKey: 'codexlens.envField.dynamicBatchSize', type: 'checkbox', default: 'false', settingsPath: 'api.batch_size_dynamic' },
1091+
'CODEXLENS_API_BATCH_SIZE_UTILIZATION': { labelKey: 'codexlens.envField.batchSizeUtilization', type: 'number', placeholder: '0.8', default: '0.8', settingsPath: 'api.batch_size_utilization_factor', min: 0.1, max: 0.95, step: 0.05, showWhen: function(env) { return env['CODEXLENS_API_BATCH_SIZE_DYNAMIC'] === 'true'; } },
1092+
'CODEXLENS_API_BATCH_SIZE_MAX': { labelKey: 'codexlens.envField.batchSizeMax', type: 'number', placeholder: '2048', default: '2048', settingsPath: 'api.batch_size_max', min: 1, max: 4096, showWhen: function(env) { return env['CODEXLENS_API_BATCH_SIZE_DYNAMIC'] === 'true'; } },
1093+
'CODEXLENS_CHARS_PER_TOKEN': { labelKey: 'codexlens.envField.charsPerToken', type: 'number', placeholder: '4', default: '4', settingsPath: 'api.chars_per_token_estimate', min: 1, max: 10, showWhen: function(env) { return env['CODEXLENS_API_BATCH_SIZE_DYNAMIC'] === 'true'; } }
10901094
}
10911095
},
10921096
cascade: {

0 commit comments

Comments
 (0)