- 新增 ai_prompt.analysis_type 列作为后端按链路选择 Prompt 的唯一键 - name 回归显示标识符用途,不再承担选择键角色 - 迁移 000164: 新增 analysis_type 列 + 从 name 回填 + 索引 - 迁移 000165: 修复旧数据从 category 错误回填的问题 - AiPromptList 页面重构: 分析类型/调用链路列、详情抽屉、新建表单 - DrawerForm 组件新增 onValuesChange 回调支持跨字段联动 - 新建表单选择分析类型后自动填充标识符 - 筛选过滤器改为按 analysis_type 而非 category 过滤(后端+前端同步) - 停用/激活/回滚/删除操作完整可用
55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
import client from '../client';
|
|
import type { PaginatedResponse } from '../types';
|
|
|
|
export interface PromptItem {
|
|
id: string;
|
|
name: string;
|
|
description: string;
|
|
system_prompt: string;
|
|
user_prompt_template: string;
|
|
model_config: Record<string, unknown>;
|
|
version: number;
|
|
is_active: boolean;
|
|
category: string;
|
|
analysis_type: string;
|
|
tags: Record<string, unknown> | null;
|
|
created_at: string;
|
|
updated_at: string;
|
|
}
|
|
|
|
export interface CreatePromptReq {
|
|
name: string;
|
|
description?: string;
|
|
system_prompt: string;
|
|
user_prompt_template: string;
|
|
model_config: Record<string, unknown>;
|
|
category: string;
|
|
analysis_type: string;
|
|
}
|
|
|
|
export const promptApi = {
|
|
list: async (params?: { category?: string; analysis_type?: string; page?: number; page_size?: number }) => {
|
|
const resp = await client.get('/ai/prompts', { params });
|
|
return resp.data.data as PaginatedResponse<PromptItem>;
|
|
},
|
|
create: async (data: CreatePromptReq) => {
|
|
const resp = await client.post('/ai/prompts', data);
|
|
return resp.data.data as PromptItem;
|
|
},
|
|
activate: async (id: string) => {
|
|
const resp = await client.post(`/ai/prompts/${id}/activate`);
|
|
return resp.data.data as PromptItem;
|
|
},
|
|
deactivate: async (id: string) => {
|
|
const resp = await client.post(`/ai/prompts/${id}/deactivate`);
|
|
return resp.data.data as PromptItem;
|
|
},
|
|
rollback: async (id: string) => {
|
|
const resp = await client.post(`/ai/prompts/${id}/rollback`);
|
|
return resp.data.data as PromptItem;
|
|
},
|
|
delete: async (id: string) => {
|
|
await client.delete(`/ai/prompts/${id}`);
|
|
},
|
|
};
|