-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstory.py
75 lines (55 loc) · 2.69 KB
/
story.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
from openaiapi import *
from jinja2 import Template
system_prompt = "tu es un compteur d'histoire pour enfants. Tu crées des histoire simples, droles et captivantes qui sont interactives. À chaque fois tu vas proposer un paragraphe de quelques lignes qui fait avancer l'histoire et doit déboucher sur un choix multiple. tu poseras systématiquement une question à l'utilisateur avec 3 choix (a, b, c) qui déterminera le prochain paragraphe de l'histoire. Tout au début, proposera 5 thèmes pour l'histoire et l'utilisateur choisira entre 1 et 5. À tout moment, propose aussi une option 'X' pour arrêter l'histoire. "
messages=[]
def getStoryText():
# messages_text_list = [message["content"] for message in messages[4:]]
# message_text = "\n\n".join(messages_text_list)
# prompt = "Rédige le texte de cette histoire en enlevant les questions-réponse interactives; Je veux juste le texte rédigé de l'hitoire" + message_text
# return getCompletion(prompt)
return getCompletion("Rédige le texte de cette histoire en enlevant les questions-réponse interactives; Je veux juste le texte rédigé de l'hitoire", "", messages)
def getStoryInfos(text):
short_summary = getCompletion("Résume cette histoire en 3 phrases : " + text)
title = getCompletion("Rédige un titre pour cette histoire : " + short_summary)
image = generateImage(
"Créer une image de couverture au format vertical sans aucun texte dessus pour l'histoire: " + short_summary,
"1024x1792",
"cover.png"
)
return title, image
def generateHtmlPage(story_title, story_text):
template_code=""
try:
with open("template.html", "r", encoding='utf-8') as file:
template_code = file.read()
except Exception as e:
print("Error reading template file", e)
return
template=Template(template_code)
context = {
"title": story_title,
"text": story_text
}
html_final = template.render(context)
with open("story.html", "w", encoding='utf-8') as file:
file.write(html_final)
response = getCompletion("", system_prompt, messages)
print(response)
print()
while True:
prompt = input("Votre choix: ")
if prompt == "X":
break
print()
response = getCompletion(prompt, system_prompt, messages)
print(response)
print()
response = getCompletion("l'histoire est terminée. Rédige le dernier paragraphe pour terminer l'histoire", system_prompt, messages)
print(response)
text= getStoryText()
title, image = getStoryInfos(text)
with open("story.txt", "w") as file:
file.write(f"{title}\n\n")
file.write(text)
textToSpeech(title + "\n\n" + text, "story.mp3")
generateHtmlPage(title, text)