feat(ideas.py): add support for generating ideas for a specific subject

feat(ideas.py): add support for appending new ideas to existing ideas.json file
This commit is contained in:
Paillat
2023-05-15 11:50:33 +02:00
parent 5410752853
commit be20abb833
2 changed files with 22 additions and 9 deletions

View File

@@ -1,5 +1,6 @@
import openai
import os
import json
from dotenv import load_dotenv
load_dotenv()
@@ -10,16 +11,22 @@ with open('prompts/ideas.txt') as f:
f.close()
async def generate_ideas():
with open('ideas/ideas.json', 'r') as f:
async def generate_ideas(path):
with open(f'{path}/ideas.json', 'r') as f:
ideas = f.read()
ides_json = json.loads(ideas)
f.close()
prmpt = prompt.replace('[existing ideas]', ideas)
print(prmpt)
response = await openai.ChatCompletion.acreate(
model="gpt-3.5-turbo",
messages=[
{"role":"user","content":prmpt},
],
)
return response['choices'][0]['message']['content']
json_in_str= response['choices'][0]['message']['content']
json_obj = json.loads(json_in_str)
for idea in json_obj:
ides_json.append(idea)
with open(f'{path}/ideas.json', 'w') as f:
f.write(json.dumps(ides_json))
f.close()

16
main.py
View File

@@ -11,11 +11,17 @@ from generators.miniature import generate_miniature
logging.basicConfig(level=logging.INFO)
async def main():
with open('env/subjects.txt', 'r', encoding='utf-8') as f:
subjects = f.read().splitlines()
f.close()
for i in range(len(subjects)):
print(str(i) + ". " + subjects[i])
subject = int(input("Which subject do you want to generate ideas for? (enter the number): "))
subject = subjects[subject]
subjectdirpath = subject[:25].replace(" ", "_").replace(":", "")
if not os.path.exists(subjectdirpath): os.makedirs(subjectdirpath)
if input("Do you want to generate new ideas? (y/n)") == "y":
ideas = await generate_ideas()
if not os.path.exists('ideas'): os.makedirs('ideas')
with open('ideas/ideas.json', 'w', encoding='utf-8') as f:
f.write(ideas)
await generate_ideas(subjectdirpath)
with open('ideas/ideas.json', 'r', encoding='utf-8') as f:
ideas = json.load(f)
f.close()
@@ -26,7 +32,7 @@ async def main():
title = idea['title']
title = title[:25]
i = 0
path = "videos/" + title
path = subjectdirpath + "/" + title
path = path.replace(" ", "_").replace(":", "")
if not os.path.exists(path + "/script.json"):
script = await generate_script(idea['title'], idea['description'])