from flask import Flask, render_template, request, jsonify from duckduckgo_search import DDGS import os app = Flask(__name__) app.secret_key = os.getenv("API_KEY") STORY_PROMPT = os.getenv("PROMPT") @app.route('/') def home(): return render_template('index.html') @app.route('/generate', methods=['POST']) def generate_story(): topic = request.json.get('topic', '') previous_chapter = request.json.get('previous_chapter', '') chapter_number = request.json.get('chapter_number', 1) if not topic: return jsonify({'error': 'Topic is required'}), 400 try: prompt = STORY_PROMPT.replace('{$TOPIC}', topic) prompt = prompt.replace('{$PREVIOUS_CHAPTER}', previous_chapter if previous_chapter else '') with DDGS() as ddgs: response = ddgs.chat(prompt, model='claude-3-haiku') return jsonify({ 'story': response, 'chapter_number': chapter_number }) except Exception as e: return jsonify({'error': str(e)}), 500 if __name__ == '__main__': app.run(host='0.0.0.0', port=7860)