核心功能: - AIAgent 模型:AI 代理身份管理 - AIOperationLog: AI 操作日志记录 - AITask: AI 异步任务系统 - AIWebhook: AI webhook 订阅 API 端点: - POST /api/agents/auth/ - AI 代理认证 - GET/POST /api/agents/ - 代理管理 - GET /api/agent-logs/ - 操作日志查询 - GET/POST /api/agent-tasks/ - 任务管理 - GET/POST /api/agent-webhooks/ - Webhook 管理 - POST /api/batch/ - 批量操作 预置 AI 代理: - content-moderator-ai: 内容审核 AI - content-generator-ai: 内容生成 AI - service-curator-ai: 服务推荐 AI - analytics-ai: 数据分析 AI - admin-ai: 管理员 AI 文档: - AI_AGENT.md: AI-First 设计文档 - init_agents.py: AI 代理初始化脚本 测试: - 认证系统测试通过 - JWT token 生成正常 - 权限系统工作正常
108 lines
3.6 KiB
Python
108 lines
3.6 KiB
Python
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']
|
||
}),
|
||
)
|