from flask import Flask, request, jsonify from flask_cors import CORS from News import News from Gemma_Model import GemmaLLM print("Starting server...") app = Flask(__name__) CORS(app) news = News() gemma = GemmaLLM() # business entertainment general health science sports technology @app.get("/get_top_articles/") @app.get("/get_top_articles//") @app.get("/get_top_articles//") @app.get("/get_top_articles///") def get_top_articles(num_articles=5, category=None): if category is not None: category = category.lower() articles = news.get_top_headlines(num_headlines=num_articles, category=category) articles = news.get_articles_from_headlines(articles) return jsonify(articles) @app.get("/get_articles/") @app.get("/get_articles//") @app.get("/get_articles//") @app.get("/get_articles///") def get_articles(num_articles=5, query=None): if query is not None: query = query.lower() articles = news.get_headlines(num_headlines=num_articles, query=query) articles = news.get_articles_from_headlines(articles) return jsonify(articles) @app.post("/get_summary/") @app.post("/get_summary//") def get_summary(num_paragraphs=1): article = request.json message = gemma.get_summary_message(article, num_paragraphs) summary = gemma.get_summary(message) article["summary"] = summary return jsonify(article) @app.post("/get_questions/") @app.post("/get_questions//") @app.post("/get_questions//") @app.post("/get_questions///") def get_questions(num_questions=3, difficulty="average"): if "summary" in request.json: summary = request.json["summary"] questions = gemma.get_questions(gemma.get_questions_message(summary, num_questions, difficulty)) elif "summaries" in request.json: summaries = request.json["summaries"] messages = [gemma.get_questions_message(summary) for summary in summaries] questions = gemma.get_questions(messages) else: return jsonify({}) return jsonify(questions) if __name__ == "__main__": app.run()