Marc de Falco commited on
Commit
25d90fc
·
1 Parent(s): 964d700
Files changed (1) hide show
  1. app.py +20 -9
app.py CHANGED
@@ -11,9 +11,9 @@ HF_TOKEN = os.getenv("HUGGINGFACE_TOKEN")
11
  login(token=HF_TOKEN)
12
  client = InferenceClient(token=HF_TOKEN)
13
 
14
- system_prompt = '''Voici le contenu d'un article ou d'une conférence scientifique. Je te demande de réaliser un résumé à destination d'experts à des fins de veille scientifique et technologique. Tu dois réaliser une analyse des principaux apports et tu dois les restituer sous la forme d'un paragraphe qui pourrait accompagner une notice sur ces documents. Tu écris en français avec des phrases courtes et précises.'''
15
 
16
- def summarizer(text):
17
  model = 'meta-llama/Llama-3.1-70B-Instruct'
18
 
19
  messages = [
@@ -24,7 +24,7 @@ def summarizer(text):
24
  response = client.chat_completion(
25
  messages=messages,
26
  model=model,
27
- max_tokens=1000,
28
  )
29
 
30
  return response["choices"][0]["message"]["content"]
@@ -32,7 +32,7 @@ def summarizer(text):
32
  return f"Erreur : {str(e)}"
33
 
34
  # Fonction pour résumer un article arXiv
35
- def summarize_arxiv(arxiv_id):
36
  try:
37
  if arxiv_id.startswith('https'):
38
  url = arxiv_id
@@ -47,13 +47,13 @@ def summarize_arxiv(arxiv_id):
47
  text += page.extract_text()
48
 
49
 
50
- summary = summarizer(text)
51
  return summary
52
  except Exception as e:
53
  return f"Erreur : {str(e)}"
54
 
55
  # Fonction pour résumer une vidéo YouTube
56
- def summarize_youtube(video_url):
57
  try:
58
  # Extraire l'ID de la vidéo
59
  if "watch?v=" in video_url:
@@ -65,7 +65,7 @@ def summarize_youtube(video_url):
65
  text = " ".join([t['text'] for t in transcript])
66
 
67
 
68
- summary = summarizer(text)
69
  return summary
70
  except Exception as e:
71
  return f"Erreur : {str(e)}"
@@ -73,17 +73,28 @@ def summarize_youtube(video_url):
73
  # Interface Gradio
74
  with gr.Blocks() as demo:
75
  gr.Markdown("# Résumé d'articles arXiv et de vidéos YouTube")
 
 
 
 
 
 
 
 
76
 
77
  with gr.Tab("arXiv"):
78
  arxiv_id = gr.Textbox(label="Entrez l'ID arXiv (par ex., 2101.00001)")
79
  arxiv_summary = gr.Textbox(label="Résumé")
80
  arxiv_button = gr.Button("Résumer")
81
- arxiv_button.click(summarize_arxiv, inputs=arxiv_id, outputs=arxiv_summary)
 
82
 
83
  with gr.Tab("YouTube"):
84
  youtube_url = gr.Textbox(label="Entrez l'URL de la vidéo YouTube")
85
  youtube_summary = gr.Textbox(label="Résumé")
86
  youtube_button = gr.Button("Résumer")
87
- youtube_button.click(summarize_youtube, inputs=youtube_url, outputs=youtube_summary)
 
 
88
 
89
  demo.launch()
 
11
  login(token=HF_TOKEN)
12
  client = InferenceClient(token=HF_TOKEN)
13
 
14
+ system_prompt_base = '''Voici le contenu d'un article ou d'une conférence scientifique. Je te demande de réaliser un résumé à destination d'experts à des fins de veille scientifique et technologique. Tu dois réaliser une analyse des principaux apports et tu dois les restituer sous la forme d'un paragraphe qui pourrait accompagner une notice sur ces documents. Tu écris en français avec des phrases courtes et précises.'''
15
 
16
+ def summarizer(text, system_prompt, max_length):
17
  model = 'meta-llama/Llama-3.1-70B-Instruct'
18
 
19
  messages = [
 
24
  response = client.chat_completion(
25
  messages=messages,
26
  model=model,
27
+ max_tokens=max_length,
28
  )
29
 
30
  return response["choices"][0]["message"]["content"]
 
32
  return f"Erreur : {str(e)}"
33
 
34
  # Fonction pour résumer un article arXiv
35
+ def summarize_arxiv(arxiv_id, system_prompt, max_length):
36
  try:
37
  if arxiv_id.startswith('https'):
38
  url = arxiv_id
 
47
  text += page.extract_text()
48
 
49
 
50
+ summary = summarizer(text, system_prompt, max_length)
51
  return summary
52
  except Exception as e:
53
  return f"Erreur : {str(e)}"
54
 
55
  # Fonction pour résumer une vidéo YouTube
56
+ def summarize_youtube(video_url, system_prompt, max_length):
57
  try:
58
  # Extraire l'ID de la vidéo
59
  if "watch?v=" in video_url:
 
65
  text = " ".join([t['text'] for t in transcript])
66
 
67
 
68
+ summary = summarizer(text, system_prompt, max_length)
69
  return summary
70
  except Exception as e:
71
  return f"Erreur : {str(e)}"
 
73
  # Interface Gradio
74
  with gr.Blocks() as demo:
75
  gr.Markdown("# Résumé d'articles arXiv et de vidéos YouTube")
76
+
77
+ max_length_slider= gr.Slider(
78
+ minimum=50, maximum=3000, step=50, value=500,
79
+ label="Longueur maximale du résumé (tokens)"
80
+ )
81
+
82
+ system_prompt = gr.Textbox(label="Le prompt système",
83
+ value=system_prompt_base)
84
 
85
  with gr.Tab("arXiv"):
86
  arxiv_id = gr.Textbox(label="Entrez l'ID arXiv (par ex., 2101.00001)")
87
  arxiv_summary = gr.Textbox(label="Résumé")
88
  arxiv_button = gr.Button("Résumer")
89
+ arxiv_button.click(summarize_arxiv, inputs=[arxiv_id, system_prompt,
90
+ max_length_slider], outputs=arxiv_summary)
91
 
92
  with gr.Tab("YouTube"):
93
  youtube_url = gr.Textbox(label="Entrez l'URL de la vidéo YouTube")
94
  youtube_summary = gr.Textbox(label="Résumé")
95
  youtube_button = gr.Button("Résumer")
96
+ youtube_button.click(summarize_youtube, inputs=[youtube_url,
97
+ system_prompt,
98
+ max_length_slider], outputs=youtube_summary)
99
 
100
  demo.launch()