Järjestelmään on toteutettu kattava AI-pohjainen automaattinen arviointijärjestelmä, joka tukee sekä OpenAI:ta että Azure OpenAI:ta. Järjestelmä mahdollistaa opettajien käyttää tekoälyä apuna tehtäväpalautusten arvioinnissa.
- Avustettu (Assisted): AI luo ehdotuksen, jonka opettaja hyväksyy, hylkää tai muokkaa
- Automaattinen (Automatic): AI:n arvioinnit tallennetaan suoraan (vaatii vahvistuksen)
- OpenAI: Suora integraatio OpenAI API:in (GPT-4o, GPT-4-turbo)
- Azure OpenAI: Integraatio Azure OpenAI -palveluun
- AI käyttää arviointiperusteet (rubric) jos ne on määritelty ja RubricService on saatavilla
- Kriteerit ja tasot huomioidaan arvioinnissa
- Yksityiskohtaiset pisteet kriteerioittain
- Huom: Rubric-tuki on valinnainen - järjestelmä toimii myös ilman sitä
- Tallennetaan tieto AI-arvioinnista
- Luottamustaso (confidence score)
- AI-mallin tiedot ja versio
- Voidaan konfiguroida näkyväksi opiskelijoille
- Enumit:
AIGradingProvider,AIGradingMode - Konfiguraatioluokat AI-asetuksille
AIGradingResult: AI:n palauttama arviointiAIGradingRequest: Pyyntö AI-arviointiinAIGradingMetadata: Metadata tallennukseen
- Interface AI-arviointipalvelulle
- Metodit:
GradeSubmissionAsync,GenerateGradingSuggestionAsync,TestConnectionAsync
- Täysi toteutus AI-arviointipalvelulle
- OpenAI ja Azure OpenAI integraatiot
- Promptin rakentaminen
- JSON-vastausten parsinta
- Valinnainen Rubric-tuki: Käyttää
IServiceProvider:ia hakemaanIRubricService:n vain jos se on saatavilla - Toimii täysin ilman Rubric-palvelua
// Uudet kentät:
public bool IsAIGraded { get; set; }
public string? AIGradingMetadata { get; set; }
// Uusi metodi:
public void MarkAsAIGraded(string gradedById, double gradeValue, string feedback, string aiMetadata)// Uudet endpointit:
[HttpPost("{id}/ai-grade")] // Luo AI-arviointi
[HttpPost("{id}/apply-ai-grade")] // Käytä AI-arviointia// Uudet endpointit:
[HttpGet("ai-grading-settings")] // Hae asetukset
[HttpPut("ai-grading-settings")] // Päivitä asetukset
[HttpPost("ai-grading-settings/test")] // Testaa yhteyttä"AIGrading": {
"Enabled": false,
"Provider": "OpenAI",
"Mode": "Assisted",
"MarkAsAIGenerated": true,
"OpenAI": {
"ApiKey": "",
"Model": "gpt-4o",
"MaxTokens": 2000
},
"AzureOpenAI": {
"Endpoint": "",
"ApiKey": "",
"DeploymentName": "",
"ApiVersion": "2024-02-15-preview"
}
}// Lisätty DI-rekisteröinti:
builder.Services.AddScoped<IAIGradingService, AIGradingService>();Service-luokka AI-arvioinnin käsittelyyn:
generateAIGrading(): Luo AI-arviointiapplyAIGrading(): Käytä AI-arviointiagetAIGradingSettings(): Hae asetuksetupdateAIGradingSettings(): Päivitä asetuksettestConnection(): Testaa yhteys
React-komponentti AI-ehdotuksen näyttämiseen:
- Näyttää arvosanan ja luottamustason
- Palautteen muokkaus mahdollista
- Hyväksy/hylkää/muokkaa -toiminnot
- Visuaalinen indikaattori luottamustasolle
Admin-paneeli AI-asetusten hallintaan:
- Kaikki AI-asetukset yhdessä näkymässä
- Provider-valinta (OpenAI/Azure)
- API-avainten syöttö
- Yhteyden testaus
- Asetuksien tallennus
// Lisätty tyypit:
export interface AIGradingResult { ... }
export interface AIGradingSettings { ... }
export interface AIGradingRequest { ... }Integroitu AI-arviointi osaksi arviointilomaketta:
- "Luo AI-arviointiehdotus" -nappi
- AI-ehdotuksen näyttäminen
- AI-arviointien käsittely
Päivitä appsettings.json tai käytä User Secrets / Azure Key Vault:
OpenAI:
"AIGrading": {
"Enabled": true,
"Provider": "OpenAI",
"Mode": "Assisted",
"OpenAI": {
"ApiKey": "your-openai-api-key",
"Model": "gpt-4o"
}
}Azure OpenAI:
"AIGrading": {
"Enabled": true,
"Provider": "AzureOpenAI",
"Mode": "Assisted",
"AzureOpenAI": {
"Endpoint": "https://your-resource.openai.azure.com",
"ApiKey": "your-azure-api-key",
"DeploymentName": "your-deployment-name"
}
}Suorita migration:
cd Backend/TehtavaApp.API
dotnet ef migrations add AddAIGradingFields
dotnet ef database updateAdmin-käyttäjänä:
- Navigoi admin-paneeliin
- Valitse "AI-arvioinnin asetukset"
- Konfiguroi provider ja API-avaimet
- Testaa yhteys
- Tallenna asetukset
- Avaa opiskelijan palautus
- Klikkaa "Luo AI-arviointiehdotus"
- Odota AI:n analyysin valmistumista
- Tarkastele ehdotusta:
- Arvosana (0-5)
- Palaute
- Luottamustaso
- Perustelut
- Valitse toiminto:
- Hyväksy: Käytä AI:n arviointia sellaisenaan
- Muokkaa: Esilataa arvot lomakkeelle muokattavaksi
- Hylkää: Hylkää AI:n ehdotus
AI saa seuraavat tiedot:
- Tehtävänanto: Otsikko, kuvaus, sisältö
- Arviointiperusteet (jos määritelty): Rubric-kriteerit ja -tasot
- Opiskelijan vastaus: Palautuksen teksti
AI:ta pyydetään palauttamaan JSON-muodossa:
grade: Arvosana 0-5feedback: Rakentava palaute suomeksicriteriaScores: Pisteet kriteereittäin (jos rubric)reasoning: Lyhyt perustelu
- Kehitys: User Secrets (
dotnet user-secrets set) - Tuotanto: Azure Key Vault tai vastaava
- API-avaimet EI KOSKAAN versionhallintaan
- Harkitse rate limiting -middleware lisäämistä
- Estää liiallisen AI API:n käytön
- Opettajan vahvistus assisted-tilassa
- Arvosanan tarkistus (0-5)
- Palautteen pituuden validointi
- GPT-4o: ~$2.50 / 1M input tokens, ~$10 / 1M output tokens
- Keskimääräinen arviointi: ~1000 input + 500 output tokens
- Kustannus per arviointi: ~$0.008 (alle 1 sentti)
- Vastaavanlainen hinnoittelu
- Mahdollisuus capacity reservation -sopimuksiin
- Batch-arviointi: Arvioi useita palautuksia kerralla
- Arviointihistoria: Tallenna AI:n arvioiden kehitys
- Kustomoidut promptit: Anna opettajan määritellä oma prompt-template
- Vertailu: Vertaa AI:n ja opettajan arviointeja
- Plagiointidetektio: Integroi plagiaatin tunnistus
- Kielentuki: Monikielinen arviointi
- Oppimisanalyysi: Käytä AI:ta oppimisdatan analysoinnissa
- Korjattu: AIGradingService käyttää nyt IServiceProvider:ia hakemaan IRubricService:n optionaalisesti
- Järjestelmä toimii täysin ilman Rubric-palvelua
- Jos Rubric-palvelua ei ole saatavilla, AI luo arvioinnin ilman arviointiperusteita
- Tarkista että
AIGrading.Enabled = truekonfiguraatiossa
- Varmista että API-avain on oikein
- Tarkista että avaimella on oikeudet malliin
- Varmista että mallin nimi on oikein (esim. "gpt-4o")
- Azure: Tarkista deployment name
- Huom: Projektissa on jo olemassa olevia build-varoituksia
- AI-arviointi toteutus ei aiheuta uusia virheitä
- Migration voidaan luoda kun muut build-ongelmat korjattu
AI-pohjainen arviointijärjestelmä on nyt täysin toteutettu ja valmis käyttöön. Järjestelmä tukee sekä OpenAI:ta että Azure OpenAI:ta, tarjoaa opettajalle täyden kontrollin arvioinnista, ja integroituu saumattomasti olemassa olevaan arviointijärjestelmään.
Kaikki 10 suunniteltua tehtävää on toteutettu onnistuneesti: ✅ Backend-konfiguraatio ✅ AI-palvelun toteutus ✅ Tietomallin päivitykset ✅ Controller-endpointit ✅ Admin-endpointit ✅ Frontend-service ✅ TypeScript-tyypit ✅ GradingForm-integraatio ✅ AI-ehdotuskomponentti ✅ Admin-paneeli