8 changed files with 139 additions and 1 deletions
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
{ |
||||
// Use IntelliSense to learn about possible attributes. |
||||
// Hover to view descriptions of existing attributes. |
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 |
||||
"version": "0.2.0", |
||||
"configurations": [ |
||||
{ |
||||
"name": "Python Debugger: Current File", |
||||
"type": "debugpy", |
||||
"request": "launch", |
||||
"program": "${file}", |
||||
"console": "integratedTerminal" |
||||
} |
||||
] |
||||
} |
||||
|
Can't render this file because it has a wrong number of fields in line 2.
|
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
# Script python de génération de bulletins pour LibreOffice CALC |
||||
|
||||
#### Prérequis : |
||||
|
||||
Dépendances python : |
||||
`pip install openai` |
||||
|
||||
Pour les versions de python supérieures à 3.10, autoriser au préalable l'installation de dépôts sur le système sans venv. |
||||
`python3 -m pip config set global.break-system-packages true` |
||||
|
||||
Interface pour libre office : |
||||
`apt install libreoffice-script-provider-python` |
||||
|
||||
Pour pouvoir être utilisé, le script appreciations_Bulletins.py est à copier dans : |
||||
`~/.config/libreoffice/4/user/Scripts/python$` |
||||
|
||||
#### Utilisation : |
||||
|
||||
Voir structure du fichier sample.ods |
||||
L'exécution se fait via le menu Outils>Macro>Exécuter la macro |
||||
|
||||
Les variables promptCol et answerCol du fichier appreciations_Bulletins.py permettent de définir où sont générées les données dans la feuille de calcul active (-1 -> génération désactivée) |
||||
|
||||
@ -0,0 +1,43 @@
@@ -0,0 +1,43 @@
|
||||
import uno |
||||
from openai import OpenAI |
||||
|
||||
promptCol = -1 |
||||
answerCol = 9 |
||||
|
||||
client = OpenAI(api_key="sk-proj-hrV9Se3D3Vn6ro66AoMFT3BlbkFJ3kgB6P9xQFpcaymQQHFI") |
||||
|
||||
def Generation_Appreciations(): |
||||
|
||||
oDoc = XSCRIPTCONTEXT.getDocument() |
||||
sheet = oDoc.getCurrentController().getActiveSheet() |
||||
row = 1 |
||||
content = "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne trimestrielle et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée." |
||||
while sheet[row,0].String!="": |
||||
prompt = sheet[row,0].String+", moyenne du trimestre "+sheet[row,2].String+"/20, moyenne annuelle "+sheet[row,1].String+"/20, comportement en classe niveau "+sheet[row,7].String+"/3, participation orale niveau "+sheet[row,8].String+"/3" |
||||
if sheet[row,5].String!="": |
||||
if int(sheet[row,5].String)>2: |
||||
prompt += ", nombre oublis de matériel "+sheet[row,5].String |
||||
if sheet[row,6].String!="": |
||||
if int(sheet[row,6].String)>2: |
||||
prompt += ", nombre exercices non faits "+sheet[row,6].String |
||||
if sheet[row,3].String!="": |
||||
if int(sheet[row,3].String)>2: |
||||
prompt += ", nombre absences "+sheet[row,3].String |
||||
if sheet[row,4].String!="": |
||||
if int(sheet[row,4].String)>2: |
||||
prompt += ", nombre de retards "+sheet[row,4].String |
||||
if promptCol != -1: |
||||
sheet[row,promptCol].String = prompt |
||||
if answerCol != -1: |
||||
chat_completion = client.chat.completions.create( |
||||
messages=[ |
||||
{"role": "system","content": content}, |
||||
{"role": "user","content": prompt}], |
||||
model="ft:gpt-3.5-turbo-1106:personal:bulletins2:9S8U7KuE", |
||||
temperature=0.5, |
||||
presence_penalty=0.6, |
||||
frequency_penalty=0.6, |
||||
top_p=0.5); |
||||
sheet[row,answerCol].String = chat_completion.choices[0].message.content |
||||
row = row+1 |
||||
return None |
||||
Binary file not shown.
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
import os |
||||
import csv |
||||
|
||||
fichier = "Data bulletin tuning.csv" |
||||
fichier_out = "finetunning.jsonl" |
||||
|
||||
with open(fichier, 'r') as file: |
||||
reader = csv.reader(file) |
||||
data = list(reader) |
||||
|
||||
output = [] |
||||
|
||||
content = "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée." |
||||
for i in range(1, len(data)): |
||||
prompt = data[i][0]+", moyenne du trimestre "+data[i][2]+"/20, moyenne annuelle "+data[i][1]+"/20, comportement en classe niveau "+data[i][7]+"/3, participation orale niveau "+data[i][8]+"/3" |
||||
if data[i][5]!="": |
||||
if int(data[i][5])>2: |
||||
prompt += ", nombre oublis de matériel "+data[i][5] |
||||
if data[i][6]!="": |
||||
if int(data[i][6])>2: |
||||
prompt += ", nombre exercices non faits "+data[i][6] |
||||
if data[i][3]!="": |
||||
if int(data[i][3])>2: |
||||
prompt += ", nombre absences "+data[i][3] |
||||
if data[i][4]!="": |
||||
if int(data[i][4])>2: |
||||
prompt += ", nombre de retards "+data[i][4] |
||||
output.append('{"messages": [{"role": "system", "content": "'+content+'"},{"role": "user", "content": "'+prompt+'"},{"role": "assistant", "content": "'+data[i][9]+'"}]}') |
||||
|
||||
with open(fichier_out, 'w') as fp: |
||||
for item in output: |
||||
fp.write("%s\n" % item) |
||||
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "MATETA--KANDA Vanel, moyenne du trimestre 10/20, moyenne annuelle 10/20, comportement en classe niveau 1/3, participation orale niveau 0/3"},{"role": "assistant", "content": "Les résultats de Vanel sont moyens pour ce trimestre et plus généralement sur l’année entière. L’attitude en classe manque trop souvent de sérieux alors que la participation orale est absente."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "PANZO PEDRO ALFREDO Miguel, moyenne du trimestre 11/20, moyenne annuelle 13/20, comportement en classe niveau 1/3, participation orale niveau 1/3"},{"role": "assistant", "content": "Les résultats de Miguel ce trimestre sont corrects et satisfaisants sur l’année. Attention néanmoins au manque de concentration en classe, au trop faible investissement à l’oral et à la non réalisation de certains exercices demandés."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "BAHADOUR BRELEUR Jayanna, moyenne du trimestre 13/20, moyenne annuelle 13/20, comportement en classe niveau 1/3, participation orale niveau 1/3"},{"role": "assistant", "content": "Un ensemble trimestriel et annuel tout à fait correct. Néanmoins, les principaux défauts de Jayanna sont son manque de participation et de concentration en classe."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "DORGHAL Enzo, moyenne du trimestre 8/20, moyenne annuelle 9/20, comportement en classe niveau 1/3, participation orale niveau 2/3"},{"role": "assistant", "content": "Des résultats trimestriels et annuels très moyens pour Enzo. L’attitude peut quelquefois manquer de sérieux mais l’investissement à l’oral est plutôt constructif."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "AMRANI Ayoub, moyenne du trimestre 13/20, moyenne annuelle 13/20, comportement en classe niveau 1/3, participation orale niveau 3/3"},{"role": "assistant", "content": "Ayoub termine ce trimestre et cette année avec des résultats d’un bon niveau. Sa participation à l’oral est toujours aussi active et efficace même si le manque de concentration peut parfois encore se faire trop sentir."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "CHAMPENOIS Naïm, moyenne du trimestre 14/20, moyenne annuelle 9/20, comportement en classe niveau 2/3, participation orale niveau 0/3, nombre absences 6"},{"role": "assistant", "content": "Des résultats très fragiles pour ce trimestre et pour l’année. Naim a été absent de nombreuses fois ce trimestre et son attitude en classe peut manquer de sérieux. L’investissement à l’oral est inexistant."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "PACHECO CARDOSO Juliette, moyenne du trimestre 9/20, moyenne annuelle 10/20, comportement en classe niveau 2/3, participation orale niveau 0/3"},{"role": "assistant", "content": "Malgré des résultats assez moyens, la participation de Juliette est totalement inexistante et peut parfois manquer un peu de sérieux."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "CATALAN Ayron, moyenne du trimestre 12/20, moyenne annuelle 13/20, comportement en classe niveau 2/3, participation orale niveau 1/3"},{"role": "assistant", "content": "Les résultats d’Ayron sur le trimestre et l’année sont corrects tout comme l’attitude en classe. Reste la participation orale qui demeure trop faible."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "AGNES Thomas, moyenne du trimestre 20/20, moyenne annuelle 18/20, comportement en classe niveau 2/3, participation orale niveau 1/3"},{"role": "assistant", "content": "Des résultats excellents pour ce trimestre et pour l’ensemble de cette année. Pas de soucis sur l’attitude malgré quelques bavardages et une participation orale trop discrète."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "IDRISSI-ZAOUI Yasmine, moyenne du trimestre 6/20, moyenne annuelle 8/20, comportement en classe niveau 2/3, participation orale niveau 2/3"},{"role": "assistant", "content": "Les résultats de Yasmine pour ce trimestre et cette année sont très fragiles et ce malgré une bonne participation à l’oral et une attitude assez sérieuse. Quelques oublis de matériel sont également à déplorer."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "NEDEY Amine, moyenne du trimestre 17/20, moyenne annuelle 17/20, comportement en classe niveau 2/3, participation orale niveau 2/3"},{"role": "assistant", "content": "Amine finit ce trimestre et cette année avec des résultats très solides. Son attitude est sérieuse mis à part quelques bavardages et son implication à l’oral est correcte."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "DIABATE Bamory, moyenne du trimestre 14/20, moyenne annuelle 12/20, comportement en classe niveau 2/3, participation orale niveau 2/3"},{"role": "assistant", "content": "Avec une attitude plutôt sérieuse et une bonne participation orale Bamory termine ce trimestre avec des résultats solides. Le bilan annuel est correct."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "LEFEVRE Killian Joey, moyenne du trimestre 12/20, moyenne annuelle 11/20, comportement en classe niveau 2/3, participation orale niveau 2/3"},{"role": "assistant", "content": "Une fin de trimestre correcte côté résultats tout comme le reste de l’année. Killian Joey est assez sérieux en classe et participe activement."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "HAMOUDA Chehyne, moyenne du trimestre 20/20, moyenne annuelle 18/20, comportement en classe niveau 2/3, participation orale niveau 3/3, nombre absences 3"},{"role": "assistant", "content": "Les résultats de Chehyne pour ce trimestre et cette année sont très solides malgré quelques absences. Le comportement en classe est globalement sérieux et la participation en classe excellente"}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "RAMDANE Elyes, moyenne du trimestre 15/20, moyenne annuelle 13/20, comportement en classe niveau 2/3, participation orale niveau 3/3"},{"role": "assistant", "content": "Avec une attitude en classe sérieuse et une participation en classe excellente Elyes termine ce trimestre et cette année avec des résultats satisfaisants."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "SALMI Tina, moyenne du trimestre 19/20, moyenne annuelle 18/20, comportement en classe niveau 2/3, participation orale niveau 3/3"},{"role": "assistant", "content": "Tina termine ce trimestre et cette année en beauté avec des résultats excellents. Son attitude est toujours sérieuse malgré quelques bavardages et sa participation orale très pertinente."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "SERY Maxime, moyenne du trimestre 11/20, moyenne annuelle 11/20, comportement en classe niveau 3/3, participation orale niveau 0/3"},{"role": "assistant", "content": "Avec un comportement en classe exemplaire, Maxime termine ce trimestre et cette année avec des résultats moyens. La participation orale est en revanche complètement absente."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "PICHON Aymeric, moyenne du trimestre 16/20, moyenne annuelle 16/20, comportement en classe niveau 3/3, participation orale niveau 0/3"},{"role": "assistant", "content": "Avec son sérieux irréprochable, Aymeric termine ce trimestre et cette année avec des résultats très solides. Quel dommage que la participation orale soit absente de ce bel ensemble."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "RABIHI Yasmine, moyenne du trimestre 11/20, moyenne annuelle 13/20, comportement en classe niveau 3/3, participation orale niveau 0/3"},{"role": "assistant", "content": "Yasmine termine ce trimestre avec des résultats corrects mais plus faibles que ceux obtenus sur l’ensemble de l’année. L’attitude est très studieuse et la participation orale quasi absente. Quelques oublis de matériel sont à constater."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "JEREMIE DELAROCHE Jade, moyenne du trimestre 6/20, moyenne annuelle 8/20, comportement en classe niveau 3/3, participation orale niveau 0/3"},{"role": "assistant", "content": "Jade est une élève extrêmement sérieuse en classe mais dont les résultats pour ce trimestre et cette année sont bien trop faibles. L’absence de participation orale est également bien dommage. "}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "ALMEIDA RAMOS Anaisa, moyenne du trimestre 14/20, moyenne annuelle 9/20, comportement en classe niveau 3/3, participation orale niveau 1/3, nombre absences 6"},{"role": "assistant", "content": "Malgré de nombreuses absences ce trimestre, Anaisa le termine avec des résultats corrects même si le constat sur l’année reste très fragile. La participation orale est très timide mais le comportement en classe est très mature."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "DE SOUSA Lena, moyenne du trimestre 18/20, moyenne annuelle 15/20, comportement en classe niveau 3/3, participation orale niveau 2/3"},{"role": "assistant", "content": "Un bilan trimestriel et annuel remarquable du point de vue des résultats. Lena fait preuve de beaucoup de maturité et participe activement à l’oral. "}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "BEN-HAIDA Ouayess, moyenne du trimestre 11/20, moyenne annuelle 13/20, comportement en classe niveau 3/3, participation orale niveau 2/3"},{"role": "assistant", "content": "Ouayess termine cette année avec des résultats corrects même si une baisse est à constater pour ce trimestre et quelques travaux n’ont pas été réalisés. L’attitude est très positive et la participation orale assez soutenue."}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "LOCILLA Anthony, moyenne du trimestre 18/20, moyenne annuelle 18/20, comportement en classe niveau 3/3, participation orale niveau 2/3"},{"role": "assistant", "content": "Des résultats trimestriels et annuels qui frôlent l’excellence, un sérieux remarquable et une participation active. Bravo !"}]} |
||||
{"messages": [{"role": "system", "content": "rédige un commentaire de bulletin de fin d'année scolaire, maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre et éventuellement sur la moyenne annuelle, ne pas indiquer de valeur chiffrée."},{"role": "user", "content": "VERON Shaun, moyenne du trimestre 10/20, moyenne annuelle 8/20, comportement en classe niveau 3/3, participation orale niveau 3/3"},{"role": "assistant", "content": "Des résultats sur l’année très moyens qui deviennent faibles pour ce trimestre. Quel dommage au vu de la grande maturité dont fait preuve Shaun en classe et de la qualité de son oral."}]} |
||||
Binary file not shown.
Loading…
Reference in new issue