Spaces:
Running
Running
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 | |
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) | |
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) | |
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) | |
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() | |