65 lines
2.2 KiB
Python
65 lines
2.2 KiB
Python
import os
|
|
from openai import OpenAI
|
|
|
|
client = OpenAI()
|
|
client.api_key = os.getenv('OPENAI_API_KEY')
|
|
|
|
def transcrire_audio(fichier_audio):
|
|
"""
|
|
Transcrit un fichier audio en texte.
|
|
:param fichier_audio: Chemin vers le fichier audio.
|
|
:return: Texte transcrit.
|
|
"""
|
|
reponse = client.audio.transcriptions.create(
|
|
model="whisper-1",
|
|
file=open(fichier_audio, "rb"),
|
|
language="fr"
|
|
)
|
|
return reponse.text
|
|
|
|
def resumer_texte(texte):
|
|
"""
|
|
Résume le texte donné.
|
|
:param texte: Texte à résumer.
|
|
:return: Texte résumé.
|
|
"""
|
|
completion = client.chat.completions.create(
|
|
model="gpt-4",
|
|
messages=[
|
|
{"role": "system", "content": "Tu es un assistant personnel compétent, utile et pertinent."},
|
|
{"role": "user", "content": """
|
|
Tu dois résumer un texte qui est une transcription d'un enregistrement audio.
|
|
|
|
Tu dois d'abord proposer un titre court, en maximum trois mots, pour identifier cette intervention orale.
|
|
Puis, tu dois proposer un court paragraphe de résumé du contexte global de l'intervention.
|
|
Enfin, tu dois proposer une synthèse de l'intervention sous forme d'une liste à puces.
|
|
La liste à puces doit être organisée sur au maximum 2 niveaux hiérarchiques.
|
|
Les entrées de la liste à puces doivent être très synthétiques, exprimées en quelques mots.
|
|
Il est très important que le résumé n'omette pas d'informations importantes.
|
|
Tu dois bien mettre en relief les données chiffrées mentionnés durant le discours.
|
|
|
|
Le résultat doit être au format Markdown. La réponse doit contenir uniquement le code Markdown et rien d'autre.
|
|
Voici le modèle de réponse au format Markdown :
|
|
|
|
# Titre (maximum 3 mots)
|
|
## Contexte
|
|
Court paragraphe qui résume le contexte de l'intervention.
|
|
## Synthèse
|
|
- Premier point important
|
|
- Premier détail sur le premier point important.
|
|
- Second détail sur le premier point important.
|
|
- Etc. Etc.
|
|
- Second point important
|
|
- Premier détail sur le second point important.
|
|
- Etc. Etc.
|
|
- Etc. Etc.
|
|
-Etc. Etc.
|
|
- Etc. Etc.
|
|
|
|
Voici le texte que tu dois résumer :
|
|
|
|
""" + texte}
|
|
]
|
|
)
|
|
return completion.choices[0].message.content
|