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.
42 lines
1.2 KiB
42 lines
1.2 KiB
from PyPDF2 import PdfReader |
|
from openai import OpenAI |
|
|
|
def getEleve(value): |
|
sub1 = "Trimestre" |
|
sub2 = "Né" |
|
idx1 = value.index(sub1) |
|
idx2 = value.index(sub2) |
|
res = '' |
|
# récupération du nom |
|
for idx in range(idx1 + len(sub1) + 1, idx2): |
|
res = res + value[idx] |
|
return res |
|
|
|
client = OpenAI(api_key="sk-proj-hrV9Se3D3Vn6ro66AoMFT3BlbkFJ3kgB6P9xQFpcaymQQHFI") |
|
current_eleve = '' |
|
|
|
reader = PdfReader("sample.pdf") |
|
#number_of_pages = len(reader.pages) |
|
|
|
for page in reader.pages: |
|
|
|
text = page.extract_text() |
|
|
|
#évite les doublons dans les exports pdf |
|
if getEleve(text) != current_eleve: |
|
|
|
current_eleve = getEleve(text) |
|
print("\r\n"+current_eleve) |
|
|
|
completion = client.chat.completions.create( |
|
model="ft:gpt-4o-2024-08-06:personal:app-gen-gangneux2:AYJecsON", |
|
messages=[ |
|
{"role": "system", "content": "Rédige une appréciation générale (500 caractères max) en utilisant la liste suivante."}, |
|
{"role": "user", "content": text} |
|
], |
|
temperature=0.7, |
|
presence_penalty=0.6, |
|
frequency_penalty=0.6, |
|
top_p=0.5) |
|
|
|
print(completion.choices[0].message.content)
|
|
|