Poojashetty357 commited on
Commit
30a99ab
·
verified ·
1 Parent(s): 58025c6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -1
app.py CHANGED
@@ -1,6 +1,7 @@
1
  import os
2
  import json
3
  import re
 
4
  import pandas as pd
5
  from datetime import datetime
6
  from dotenv import load_dotenv
@@ -46,6 +47,17 @@ llm = ChatOpenAI(temperature=0.6, model_name="gpt-3.5-turbo", openai_api_key=ope
46
  teen_memory = ConversationBufferMemory()
47
  embed_model = HuggingFaceEmbedding(model_name="sentence-transformers/all-MiniLM-L6-v2")
48
 
 
 
 
 
 
 
 
 
 
 
 
49
  def load_youtube_links():
50
  path = os.path.join(os.path.dirname(__file__), "kids_youtube_links.csv")
51
  if os.path.exists(path):
@@ -157,7 +169,13 @@ def generate_kids(age, theme, tone, name, length):
157
  messages = kids_prompt.format_messages(age=age, theme=theme, tone=tone, name=name, length=length)
158
  story = llm(messages).content
159
  save_story_to_file(name, story, age_group="kids", tone=tone, theme=theme)
160
- video_html = get_youtube_link(age, theme) # from your CSV file
 
 
 
 
 
 
161
  return story, video_html
162
 
163
  def generate_kids_audio(story):
@@ -296,6 +314,15 @@ def generate_teen(genre, tone, name, length, uploaded_file=None, edited_text="",
296
  length=prompt_len
297
  )
298
  story = llm(messages).content.strip()
 
 
 
 
 
 
 
 
 
299
  last_story_text["story"] = story
300
  save_story_to_file(name, story, age_group="teen", tone=tone, theme=genre)
301
  return story, uploaded_preview
 
1
  import os
2
  import json
3
  import re
4
+ import openai
5
  import pandas as pd
6
  from datetime import datetime
7
  from dotenv import load_dotenv
 
47
  teen_memory = ConversationBufferMemory()
48
  embed_model = HuggingFaceEmbedding(model_name="sentence-transformers/all-MiniLM-L6-v2")
49
 
50
+ def moderate_output(text):
51
+ openai.api_key = openai_key # already loaded from env
52
+ try:
53
+ response = openai.Moderation.create(input=text)
54
+ flagged = response["results"][0]["flagged"]
55
+ categories = response["results"][0]["categories"]
56
+ return flagged, categories
57
+ except Exception as e:
58
+ print(f"❌ Moderation error: {e}")
59
+ return False, {}
60
+
61
  def load_youtube_links():
62
  path = os.path.join(os.path.dirname(__file__), "kids_youtube_links.csv")
63
  if os.path.exists(path):
 
169
  messages = kids_prompt.format_messages(age=age, theme=theme, tone=tone, name=name, length=length)
170
  story = llm(messages).content
171
  save_story_to_file(name, story, age_group="kids", tone=tone, theme=theme)
172
+ video_html = get_youtube_link(age, theme) # from your CSV file
173
+ flagged, categories = moderate_output(story)
174
+ if flagged:
175
+ return "⚠️ Story flagged by safety filters. Please try different inputs.", None
176
+
177
+ save_story_to_file(name, story, age_group="kids", tone=tone, theme=theme)
178
+ video_html = get_youtube_link(age, theme)
179
  return story, video_html
180
 
181
  def generate_kids_audio(story):
 
314
  length=prompt_len
315
  )
316
  story = llm(messages).content.strip()
317
+ # ✅ Check story with moderation filter
318
+ flagged, categories = moderate_output(story)
319
+ if flagged:
320
+ return (
321
+ "⚠️ This story was flagged by OpenAI's moderation system for safety concerns. "
322
+ "Please try using a different character name, tone, or inspiration.",
323
+ uploaded_preview
324
+ )
325
+
326
  last_story_text["story"] = story
327
  save_story_to_file(name, story, age_group="teen", tone=tone, theme=genre)
328
  return story, uploaded_preview