41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
|
|
from rest_framework import serializers
|
|
from .models import AIInteraction, AgentConfig
|
|
|
|
|
|
class AIInteractionSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = AIInteraction
|
|
fields = "__all__"
|
|
read_only_fields = ["id", "created_at"]
|
|
|
|
|
|
class ChatRequestSerializer(serializers.Serializer):
|
|
agent_id = serializers.IntegerField(required=False)
|
|
message = serializers.CharField()
|
|
session_id = serializers.CharField(required=False, allow_blank=True)
|
|
history = serializers.ListField(required=False, default=list)
|
|
system_prompt_override = serializers.CharField(required=False, allow_blank=True)
|
|
temperature = serializers.FloatField(required=False)
|
|
max_tokens = serializers.IntegerField(required=False)
|
|
|
|
|
|
class AgentConfigSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = AgentConfig
|
|
fields = ["id", "name", "description", "provider", "model_name",
|
|
"temperature", "max_tokens", "system_prompt",
|
|
"capabilities", "is_active", "is_default",
|
|
"base_url", "created_at", "updated_at"]
|
|
read_only_fields = ["id", "created_at", "updated_at"]
|
|
|
|
|
|
class AgentConfigWriteSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = AgentConfig
|
|
fields = "__all__"
|
|
read_only_fields = ["id", "created_at", "updated_at"]
|
|
extra_kwargs = {
|
|
"api_key": {"write_only": True},
|
|
"api_secret": {"write_only": True},
|
|
}
|