File size: 2,621 Bytes
667aacd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
"""
Admin configuration for the intelligence app.
"""
from django.contrib import admin

from apps.intelligence.models import (
    AIModel,
    AIPrompt,
    Anomaly,
    APIRequestLog,
    ChatMessage,
    ChatSession,
    ContentEmbedding,
    EventLog,
    FeatureUsageLog,
    Metric,
    ReadModelCache,
    RiskScore,
)


class ChatMessageInline(admin.TabularInline):
    model = ChatMessage
    extra = 0
    readonly_fields = ("created_at",)


@admin.register(EventLog)
class EventLogAdmin(admin.ModelAdmin):
    list_display = ("event_type", "actor_user", "org", "ip_address", "created_at")
    list_filter = ("event_type",)
    search_fields = ("event_type",)
    readonly_fields = ("created_at",)


@admin.register(AIModel)
class AIModelAdmin(admin.ModelAdmin):
    list_display = ("name", "provider", "is_active", "created_at")
    list_filter = ("provider", "is_active")


@admin.register(AIPrompt)
class AIPromptAdmin(admin.ModelAdmin):
    list_display = ("slug", "version", "is_active", "created_at")
    list_filter = ("is_active",)
    search_fields = ("slug",)


@admin.register(ChatSession)
class ChatSessionAdmin(admin.ModelAdmin):
    list_display = ("title", "user", "model", "created_at")
    list_filter = ("model",)
    inlines = [ChatMessageInline]


@admin.register(ChatMessage)
class ChatMessageAdmin(admin.ModelAdmin):
    list_display = ("session", "role", "tokens_used", "created_at")
    list_filter = ("role",)


@admin.register(ContentEmbedding)
class ContentEmbeddingAdmin(admin.ModelAdmin):
    list_display = ("content_type", "content_id", "created_at")
    list_filter = ("content_type",)


@admin.register(RiskScore)
class RiskScoreAdmin(admin.ModelAdmin):
    list_display = ("user", "score", "calculated_at")


@admin.register(Anomaly)
class AnomalyAdmin(admin.ModelAdmin):
    list_display = ("user", "anomaly_type", "severity", "created_at")
    list_filter = ("severity", "anomaly_type")


@admin.register(Metric)
class MetricAdmin(admin.ModelAdmin):
    list_display = ("metric_key", "value", "recorded_at")
    list_filter = ("metric_key",)


@admin.register(ReadModelCache)
class ReadModelCacheAdmin(admin.ModelAdmin):
    list_display = ("cache_key", "org", "refreshed_at")


@admin.register(FeatureUsageLog)
class FeatureUsageLogAdmin(admin.ModelAdmin):
    list_display = ("feature_key", "user", "org", "used_at")
    list_filter = ("feature_key",)


@admin.register(APIRequestLog)
class APIRequestLogAdmin(admin.ModelAdmin):
    list_display = ("request_id", "method", "endpoint", "status_code", "duration_ms", "created_at")
    list_filter = ("method", "status_code")