You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

40 lines
2.3 KiB

import uno
from openai import OpenAI
client = OpenAI(api_key="sk-proj-hrV9Se3D3Vn6ro66AoMFT3BlbkFJ3kgB6P9xQFpcaymQQHFI")
def Generation_Appreciations( ):
promptCol = -1
answerCol = 8
oDoc = XSCRIPTCONTEXT.getDocument()
sheet = oDoc.getCurrentController().getActiveSheet()
row = 1
content_t1 = "rédige un commentaire de bulletin de collégien pour la fin du trimestre 2 de l'année (3 trimestres en tout), maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne trimestrielle, ne pas indiquer de valeur chiffrée."
content_t2 = "rédige un commentaire de bulletin de collégien pour la fin du trimestre 2 de l'année (3 trimestres en tout), maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre 2, ne pas indiquer de valeur chiffrée, indiquer évolution avec trimestre 1."
content_t3 = "rédige un commentaire de bulletin de collégien pour la fin du trimestre 3 de l'année (3 trimestres en tout), maximum 300 caractères, tutoiement de l'élève, commentaire sur la moyenne du trimestre 3, ne pas indiquer de valeur chiffrée, indiquer évolution avec trimestre 2 et faire un commentaire éventuel sur la moyenne annuelle."
#A modifier en fonction du trimestre
content=content_t3
while sheet[row,0].String!="":
prompt = sheet[row,0].String+", moyenne annuelle "+sheet[row,1].String+"/20, moyenne trimestre 1 "+sheet[row,2].String+"/20, moyenne trimestre 2 "+sheet[row,3].String+"/20, moyenne trimestre 3 "+sheet[row,4].String+", comportement en classe niveau "+sheet[row,5].String+"/3, participation orale niveau "+sheet[row,6].String+"/3, travail fourni niveau "+sheet[row,7].String+"/3"
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-4o-2024-08-06:personal:appreciatios-v2-1:AY8UPkjm",
temperature=0.7,
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