(backend) add ai_proxy

Add AI proxy to handle AI related requests
to the AI service.
This commit is contained in:
Anthony LC
2025-06-05 16:06:30 +02:00
parent 1ac6b42ae3
commit 1ee313efb1
11 changed files with 783 additions and 0 deletions

View File

@@ -833,6 +833,41 @@ class AITranslateSerializer(serializers.Serializer):
return value
class AIProxySerializer(serializers.Serializer):
"""Serializer for AI proxy requests."""
messages = serializers.ListField(
required=True,
child=serializers.DictField(
child=serializers.CharField(required=True),
),
allow_empty=False,
)
model = serializers.CharField(required=True)
def validate_messages(self, messages):
"""Validate messages structure."""
# Ensure each message has the required fields
for message in messages:
if (
not isinstance(message, dict)
or "role" not in message
or "content" not in message
):
raise serializers.ValidationError(
"Each message must have 'role' and 'content' fields"
)
return messages
def validate_model(self, value):
"""Validate model value is the same than settings.AI_MODEL"""
if value != settings.AI_MODEL:
raise serializers.ValidationError(f"{value} is not a valid model")
return value
class MoveDocumentSerializer(serializers.Serializer):
"""
Serializer for validating input data to move a document within the tree structure.