|
import json |
|
import openai |
|
|
|
class ContentAgent: |
|
def __init__(self, api_key=None): |
|
if api_key: |
|
openai.api_key = api_key |
|
|
|
def generate_content(self, outline): |
|
if not openai.api_key: |
|
return self._mock_content(outline) |
|
|
|
try: |
|
response = openai.ChatCompletion.create( |
|
model="gpt-4", |
|
messages=[ |
|
{"role": "system", "content": "You create detailed workshop content from outlines"}, |
|
{"role": "user", "content": ( |
|
f"Create workshop content from this outline: {json.dumps(outline)}. " |
|
"Include: 1) Detailed scripts, 2) Speaker notes, 3) 3 quiz questions per module, " |
|
"4) Hands-on exercises. Output as JSON." |
|
)} |
|
] |
|
) |
|
return json.loads(response.choices[0].message.content) |
|
except: |
|
return self._mock_content(outline) |
|
|
|
def _mock_content(self, outline): |
|
return { |
|
"workshop_title": f"Mastering {outline['topic']}", |
|
"modules": [ |
|
{ |
|
"title": module["title"], |
|
"script": f"Comprehensive script for {module['title']}...", |
|
"speaker_notes": f"Key talking points: {', '.join(module['learning_points'])}", |
|
"exercises": [f"Exercise about {point}" for point in module["learning_points"]], |
|
"quiz": [ |
|
{ |
|
"question": f"Question about {module['title']}", |
|
"options": ["A", "B", "C", "D"], |
|
"answer": "A" |
|
} |
|
] |
|
} for module in outline["modules"] |
|
] |
|
} |