from django.contrib import admin from .models import AIAgent, AIOperationLog, AITask, AIWebhook @admin.register(AIAgent) class AIAgentAdmin(admin.ModelAdmin): list_display = ['agent_id', 'name', 'is_active', 'rate_limit', 'last_seen', 'created_at'] list_filter = ['is_active', 'permissions', 'created_at'] search_fields = ['agent_id', 'name', 'description'] readonly_fields = ['created_at', 'updated_at', 'last_seen'] fieldsets = ( ('基本信息', { 'fields': ['agent_id', 'name', 'description', 'secret_key'] }), ('权限配置', { 'fields': ['permissions'], 'description': '可用权限:read, write, review, delete, batch, analytics' }), ('速率限制', { 'fields': ['rate_limit', 'rate_limit_window'], 'description': 'rate_limit: 每小时请求数,rate_limit_window: 时间窗口(秒)' }), ('状态', { 'fields': ['is_active', 'last_seen'] }), ('元数据', { 'fields': ['created_at', 'updated_at'], 'classes': ['collapse'] }), ) @admin.register(AIOperationLog) class AIOperationLogAdmin(admin.ModelAdmin): list_display = ['agent', 'action', 'resource_type', 'resource_id', 'status', 'confidence', 'created_at'] list_filter = ['status', 'action', 'resource_type', 'created_at'] search_fields = ['agent__agent_id', 'action', 'resource_type'] readonly_fields = ['created_at'] date_hierarchy = 'created_at' fieldsets = ( ('操作信息', { 'fields': ['agent', 'action', 'resource_type', 'resource_id', 'status'] }), ('AI 元数据', { 'fields': ['confidence', 'reasoning'] }), ('请求/响应', { 'fields': ['request_data', 'response_data', 'error_message'], 'classes': ['collapse'] }), ('性能', { 'fields': ['execution_time_ms', 'created_at'], 'classes': ['collapse'] }), ) @admin.register(AITask) class AITaskAdmin(admin.ModelAdmin): list_display = ['task_id', 'agent', 'task_type', 'status', 'progress', 'created_at', 'completed_at'] list_filter = ['status', 'task_type', 'created_at'] search_fields = ['task_id', 'agent__agent_id', 'task_type'] readonly_fields = ['created_at', 'started_at', 'completed_at'] fieldsets = ( ('任务信息', { 'fields': ['task_id', 'agent', 'task_type', 'status'] }), ('进度', { 'fields': ['progress', 'processed_items', 'total_items'] }), ('结果', { 'fields': ['result', 'error_message'], 'classes': ['collapse'] }), ('回调', { 'fields': ['callback_url', 'callback_secret'], 'classes': ['collapse'] }), ('时间', { 'fields': ['created_at', 'started_at', 'completed_at'], 'classes': ['collapse'] }), ) @admin.register(AIWebhook) class AIWebhookAdmin(admin.ModelAdmin): list_display = ['agent', 'event', 'url', 'is_active', 'last_triggered', 'failure_count'] list_filter = ['event', 'is_active', 'created_at'] search_fields = ['agent__agent_id', 'url', 'event'] readonly_fields = ['created_at', 'last_triggered'] fieldsets = ( ('Webhook 信息', { 'fields': ['agent', 'event', 'url', 'secret'] }), ('状态', { 'fields': ['is_active', 'last_triggered', 'failure_count'] }), ('元数据', { 'fields': ['created_at'], 'classes': ['collapse'] }), )