from pathlib import Path root=Path('C:/kefu/admin-web/apps/web-antd/src') def edit(name, old, new): p=root/name; s=p.read_text(encoding='utf-8'); assert old in s,(name,old[:80]); p.write_text(s.replace(old,new),encoding='utf-8',newline='\n') edit('api/knowledge.ts', 'export interface KnowledgeJob {', '''export interface KnowledgeModel { id: string; name: string; model: string; kind: string; default: boolean } export interface KnowledgeJob {''') edit('api/knowledge.ts', ' completion_reason: string;', ' completion_reason: string;\n pending_items: number;') edit('api/knowledge.ts', 'options: { engine: string; max_messages: number;', 'options: { engine: string; max_model_calls: number; model_provider_id?: string; model_name?: string; model_timeout_seconds?: number; max_messages: number;') edit('api/knowledge.ts', 'export const createKnowledgeJob', '''export const fetchKnowledgeModels = (id: number) => requestClient.get<{ items: KnowledgeModel[] }>(path('models', id)); export const configureKnowledgeJob = (id: number, job: string, body: Record) => requestClient.put(path(`jobs/${job}/config`, id), body); export const createKnowledgeJob''') edit('views/knowledge/job-wizard.vue', "import { createKnowledgeJob, previewKnowledgeJob } from '#/api/knowledge';", "import { createKnowledgeJob, previewKnowledgeJob } from '#/api/knowledge';\nimport KnowledgeModelFields from './model-fields.vue';") edit('views/knowledge/job-wizard.vue', "engine: 'rules', max_messages", "engine: 'rules', model_provider_id: '', model_timeout_seconds: 90, max_messages") edit('views/knowledge/job-wizard.vue', 'form.engine, form.max_messages', 'form.engine, form.model_provider_id, form.model_timeout_seconds, form.max_messages') p=root/'views/knowledge/job-wizard.vue';s=p.read_text(encoding='utf-8');start=s.index(' ');end=s.index(' ',start) s=s[:start]+''' '''+s[end:];p.write_text(s,encoding='utf-8',newline='\n') edit('views/knowledge/job-wizard.vue', ':disabled="!preview?.total_messages || !form.staff_confirmed || checking"', ':disabled="!preview?.total_messages || !form.staff_confirmed || checking || (form.engine === \'model\' && !form.model_provider_id)"') edit('views/knowledge/batch.ts', "'approve' | 'disable'", "'approve' | 'delete' | 'disable'") edit('views/knowledge/batch.ts', "const allowed = { approve:", "const allowed = { delete: ['rejected'], approve:") edit('views/knowledge/batch-dialog.vue', "const names = { approve:", "const names = { delete: '删除', approve:") edit('views/knowledge/batch-dialog.vue', "action === 'approve' && !!checked.value[item.id]", "action === 'delete' || (action === 'approve' && !!checked.value[item.id])") edit('views/knowledge/batch-dialog.vue', '

', '\n

') edit('views/knowledge/batch-dialog.vue', '\n \n