refactor: simplifica validação do JSON Schema da análise de redações - Remove limites min/max dos campos numéricos - Remove restrição minItems dos arrays - Simplifica validação para maior flexibilidade

This commit is contained in:
Lucas Santana 2025-02-07 10:04:54 -03:00
parent 756335f78f
commit 28ac3ef8cc
2 changed files with 78 additions and 78 deletions

View File

@ -264,3 +264,9 @@ e este projeto adere ao [Semantic Versioning](https://semver.org/lang/pt-BR/).
- Adicionadas políticas para tabelas relacionadas (feedback, pontos fortes, melhorias e notas) - Adicionadas políticas para tabelas relacionadas (feedback, pontos fortes, melhorias e notas)
- Melhorada a segurança com políticas específicas para cada operação - Melhorada a segurança com políticas específicas para cada operação
- Corrigido erro de permissão na inserção de análises pela Edge Function - Corrigido erro de permissão na inserção de análises pela Edge Function
### Técnico
- Removidas restrições de validação do JSON Schema da análise de redações:
- Removidos limites `minimum` e `maximum` dos campos numéricos
- Removida restrição `minItems` dos arrays de pontos fortes e melhorias
- Simplificada a validação para maior flexibilidade na Edge Function

View File

@ -213,88 +213,82 @@ Responda em formato JSON seguindo exatamente esta estrutura:
response_format: { response_format: {
type: "json_schema", type: "json_schema",
json_schema: { json_schema: {
type: "object", name: "essay_analysis",
required: ["overall_score", "suggestions", "feedback", "strengths", "improvements", "criteria_scores"], strict: true,
properties: { description: "Análise detalhada da redação",
overall_score: { schema: {
type: "number", type: "object",
minimum: 0, additionalProperties: false,
maximum: 100, required: ["overall_score", "suggestions", "feedback", "strengths", "improvements", "criteria_scores"],
description: "Pontuação geral da redação (0-100)" properties: {
}, overall_score: {
suggestions: { type: "number",
type: "string", description: "Pontuação geral da redação (0-100)"
description: "Sugestões específicas para aprimoramento" },
}, suggestions: {
feedback: { type: "string",
type: "object", description: "Sugestões específicas para aprimoramento"
required: ["structure", "content", "language"], },
properties: { feedback: {
structure: { type: "object",
type: "string", additionalProperties: false,
description: "Feedback sobre estrutura e organização" required: ["structure", "content", "language"],
}, properties: {
content: { structure: {
type: "string", type: "string",
description: "Feedback sobre conteúdo e ideias" description: "Feedback sobre estrutura e organização"
}, },
language: { content: {
type: "string", type: "string",
description: "Feedback sobre linguagem e gramática" description: "Feedback sobre conteúdo e ideias"
},
language: {
type: "string",
description: "Feedback sobre linguagem e gramática"
}
} }
}
},
strengths: {
type: "array",
items: {
type: "string",
description: "Ponto forte da redação"
}, },
minItems: 1, strengths: {
description: "Lista de pontos fortes da redação" type: "array",
}, items: {
improvements: { type: "string",
type: "array", description: "Ponto forte da redação"
items: { },
type: "string", description: "Lista de pontos fortes da redação"
description: "Ponto a melhorar na redação"
}, },
minItems: 1, improvements: {
description: "Lista de pontos a melhorar na redação" type: "array",
}, items: {
criteria_scores: { type: "string",
type: "object", description: "Ponto a melhorar na redação"
required: ["adequacy", "coherence", "cohesion", "vocabulary", "grammar"],
properties: {
adequacy: {
type: "number",
minimum: 0,
maximum: 100,
description: "Adequação ao tema/gênero (0-100)"
}, },
coherence: { description: "Lista de pontos a melhorar na redação"
type: "number", },
minimum: 0, criteria_scores: {
maximum: 100, type: "object",
description: "Coerência textual (0-100)" additionalProperties: false,
}, required: ["adequacy", "coherence", "cohesion", "vocabulary", "grammar"],
cohesion: { properties: {
type: "number", adequacy: {
minimum: 0, type: "number",
maximum: 100, description: "Adequação ao tema/gênero (0-100)"
description: "Coesão textual (0-100)" },
}, coherence: {
vocabulary: { type: "number",
type: "number", description: "Coerência textual (0-100)"
minimum: 0, },
maximum: 100, cohesion: {
description: "Vocabulário (0-100)" type: "number",
}, description: "Coesão textual (0-100)"
grammar: { },
type: "number", vocabulary: {
minimum: 0, type: "number",
maximum: 100, description: "Vocabulário (0-100)"
description: "Gramática e ortografia (0-100)" },
grammar: {
type: "number",
description: "Gramática e ortografia (0-100)"
}
} }
} }
} }