Spaces:
Running
Running
NicolasGaudemet
commited on
Commit
•
1ef0daf
0
Parent(s):
Duplicate from NicolasGaudemet/WritingAssistant
Browse files- .gitattributes +34 -0
- README.md +13 -0
- debut_par_defaut.txt +1 -0
- instructions.txt +3 -0
- requirements.txt +1 -0
- suite_par_defaut.txt +1 -0
- writing_assistant_app.py +57 -0
.gitattributes
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
32 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
title: WritingAssistant
|
3 |
+
emoji: 📚
|
4 |
+
colorFrom: yellow
|
5 |
+
colorTo: indigo
|
6 |
+
sdk: gradio
|
7 |
+
sdk_version: 3.27.0
|
8 |
+
app_file: writing_assistant_app.py
|
9 |
+
pinned: true
|
10 |
+
duplicated_from: NicolasGaudemet/WritingAssistant
|
11 |
+
---
|
12 |
+
|
13 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
debut_par_defaut.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
Longtemps, je me suis couché de bonne heure. Parfois, à peine ma bougie éteinte, mes yeux se fermaient si vite que je n’avais pas le temps de me dire : « Je m’endors. » Et, une demi-heure après, la pensée qu’il était temps de chercher le sommeil m’éveillait ; je voulais poser le volume que je croyais avoir encore dans les mains et souffler ma lumière ; je n’avais pas cessé en dormant de faire des réflexions sur ce que je venais de lire, mais ces réflexions avaient pris un tour un peu particulier ; il me semblait que j’étais moi-même ce dont parlait l’ouvrage : une église, un quatuor, la rivalité de François Ier et de Charles Quint. Cette croyance survivait pendant quelques secondes à mon réveil ; elle ne choquait pas ma raison mais pesait comme des écailles sur mes yeux et les empêchait de se rendre compte que le bougeoir n’était plus allumé. Puis elle commençait à me devenir inintelligible, comme après la métempsycose les pensées d’une existence antérieure ; le sujet du livre se détachait de moi, j’étais libre de m’y appliquer ou non ; aussitôt je recouvrais la vue et j’étais bien étonné de trouver autour de moi une obscurité, douce et reposante pour mes yeux, mais peut-être plus encore pour mon esprit, à qui elle apparaissait comme une chose sans cause, incompréhensible, comme une chose vraiment obscure. Je me demandais quelle heure il pouvait être ; j’entendais le sifflement des trains qui, plus ou moins éloigné, comme le chant d’un oiseau dans une forêt, relevant les distances, me décrivait l’étendue de la campagne déserte où le voyageur se hâte vers la station prochaine ; et le petit chemin qu’il suit va être gravé dans son souvenir par l’excitation qu’il doit à des lieux nouveaux, à des actes inaccoutumés, à la causerie récente et aux adieux sous la lampe étrangère qui le suivent encore dans le silence de la nuit, à la douceur prochaine du retour.
|
instructions.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
Peux-tu réécrire SUITE en reprenant exactement le style littéraire de DEBUT
|
2 |
+
(ton, rythme, registre de vocabulaire, type de mots, taille des phrases, ponctuation...) ?
|
3 |
+
N'ajoute pas d'autres éléments narratifs que ceux mentionnés dans SUITE.
|
requirements.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
openai
|
suite_par_defaut.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
je bois du thé avec ma tante. je bouffe une madeleine.
|
writing_assistant_app.py
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import openai
|
2 |
+
import os
|
3 |
+
import gradio as gr
|
4 |
+
|
5 |
+
# Configure votre clé API
|
6 |
+
openai.api_key = os.environ['OpenaiKey']
|
7 |
+
|
8 |
+
def writing_assistant(debut, suite, instructions):
|
9 |
+
# Construction de la requête
|
10 |
+
|
11 |
+
with open('instructions.txt', 'r') as fichier:
|
12 |
+
# Lecture du contenu du fichier
|
13 |
+
instructions = fichier.read() + "\n" + instructions
|
14 |
+
|
15 |
+
prompt = f"DEBUT = '{debut}'\n SUITE = '{suite}' \n INSTRUCTIONS = {instructions}"
|
16 |
+
|
17 |
+
messages = [
|
18 |
+
{"role": "system", "content": f"Tu es un assistant d'écriture. Tu aides un auteur contemporain à écrire, en t'inspirant de son style littéraire."},
|
19 |
+
{"role": "user", "content": prompt}
|
20 |
+
]
|
21 |
+
|
22 |
+
# Call GPT-3.5-turbo API
|
23 |
+
response = openai.ChatCompletion.create(
|
24 |
+
model="gpt-3.5-turbo",
|
25 |
+
messages=messages,
|
26 |
+
temperature=0.9
|
27 |
+
)
|
28 |
+
|
29 |
+
# Get generated text
|
30 |
+
texte_reecrit = response.choices[0].message['content'].strip()
|
31 |
+
|
32 |
+
return texte_reecrit
|
33 |
+
|
34 |
+
# Définition d'inputs par défaut
|
35 |
+
with open('debut_par_defaut.txt', 'r') as fichier:
|
36 |
+
# Lecture du contenu du fichier
|
37 |
+
debut_par_defaut = fichier.read()
|
38 |
+
|
39 |
+
with open('suite_par_defaut.txt', 'r') as fichier:
|
40 |
+
# Lecture du contenu du fichier
|
41 |
+
suite_par_defaut = fichier.read()
|
42 |
+
|
43 |
+
# Création de l'interface Gradio
|
44 |
+
iface = gr.Interface(
|
45 |
+
fn=writing_assistant,
|
46 |
+
inputs=[
|
47 |
+
gr.inputs.Textbox(lines=5, label="Début", default = debut_par_defaut),
|
48 |
+
gr.inputs.Textbox(lines=5, label="Suite", default = suite_par_defaut),
|
49 |
+
gr.inputs.Textbox(lines=2, label="Instructions additionnelles")
|
50 |
+
],
|
51 |
+
outputs=gr.outputs.Textbox(label="Texte réécrit"),
|
52 |
+
title="Assistant d'écriture",
|
53 |
+
description="par Nicolas \nRéécrit un brouillon en respectant un début avec un style donné."
|
54 |
+
)
|
55 |
+
|
56 |
+
# Lancer l'interface
|
57 |
+
iface.launch()
|