Spaces:
Sleeping
Sleeping
Marc de Falco
commited on
Commit
·
25d90fc
1
Parent(s):
964d700
Controles
Browse files
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 |
-
|
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=
|
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,
|
|
|
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,
|
|
|
|
|
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()
|