daren/apps/rlhf/admin.py
2025-06-09 16:29:14 +08:00

72 lines
3.0 KiB
Python

from django.contrib import admin
from .models import (
Conversation, Message, Feedback, FeedbackTag, DetailedFeedback,
ConversationSubmission, ConversationEvaluation, SystemConfig
)
@admin.register(Conversation)
class ConversationAdmin(admin.ModelAdmin):
list_display = ('id', 'user', 'is_submitted', 'created_at')
list_filter = ('is_submitted', 'created_at')
search_fields = ('id', 'user__username')
date_hierarchy = 'created_at'
@admin.register(Message)
class MessageAdmin(admin.ModelAdmin):
list_display = ('id', 'conversation', 'role', 'short_content', 'timestamp')
list_filter = ('role', 'timestamp')
search_fields = ('id', 'conversation__id', 'content')
date_hierarchy = 'timestamp'
def short_content(self, obj):
return obj.content[:50] + '...' if len(obj.content) > 50 else obj.content
short_content.short_description = '内容'
@admin.register(Feedback)
class FeedbackAdmin(admin.ModelAdmin):
list_display = ('id', 'message', 'conversation', 'user', 'feedback_value', 'timestamp')
list_filter = ('feedback_value', 'timestamp')
search_fields = ('id', 'message__id', 'conversation__id', 'user__username')
date_hierarchy = 'timestamp'
@admin.register(FeedbackTag)
class FeedbackTagAdmin(admin.ModelAdmin):
list_display = ('id', 'tag_name', 'tag_type', 'description', 'created_at')
list_filter = ('tag_type', 'created_at')
search_fields = ('id', 'tag_name', 'description')
@admin.register(DetailedFeedback)
class DetailedFeedbackAdmin(admin.ModelAdmin):
list_display = ('id', 'message', 'conversation', 'user', 'feedback_type', 'is_inline', 'created_at')
list_filter = ('feedback_type', 'is_inline', 'created_at')
search_fields = ('id', 'message__id', 'conversation__id', 'user__username', 'custom_content')
date_hierarchy = 'created_at'
@admin.register(ConversationSubmission)
class ConversationSubmissionAdmin(admin.ModelAdmin):
list_display = ('id', 'conversation', 'user', 'title', 'status', 'quality_score', 'reviewer', 'submitted_at', 'reviewed_at')
list_filter = ('status', 'quality_score', 'submitted_at', 'reviewed_at')
search_fields = ('id', 'conversation__id', 'user__username', 'title', 'description', 'reviewer__username')
date_hierarchy = 'submitted_at'
@admin.register(ConversationEvaluation)
class ConversationEvaluationAdmin(admin.ModelAdmin):
list_display = ('id', 'conversation', 'user', 'has_logical_issues', 'needs_satisfied', 'created_at')
list_filter = ('has_logical_issues', 'needs_satisfied', 'created_at')
search_fields = ('id', 'conversation__id', 'user__username', 'overall_feeling')
date_hierarchy = 'created_at'
@admin.register(SystemConfig)
class SystemConfigAdmin(admin.ModelAdmin):
list_display = ('id', 'config_key', 'config_value', 'config_type', 'description', 'updated_at')
list_filter = ('config_type', 'updated_at')
search_fields = ('id', 'config_key', 'config_value', 'description')
date_hierarchy = 'updated_at'