Spaces:
Running
Running
File size: 2,273 Bytes
1d0b89a ffa3445 1d0b89a ffa3445 1d0b89a ffa3445 1d0b89a ffa3445 1d0b89a ffa3445 1d0b89a ffa3445 1d0b89a ffa3445 1d0b89a ffa3445 1d0b89a ffa3445 1d0b89a ffa3445 1d0b89a ffa3445 1d0b89a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
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/<string:category>/")
@app.get("/get_top_articles/<int:num_articles>/")
@app.get("/get_top_articles/<int:num_articles>/<string:category>/")
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/<string:query>/")
@app.get("/get_articles/<int:num_articles>/")
@app.get("/get_articles/<int:num_articles>/<string:query>/")
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/<int:num_paragraphs>/")
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/<string:difficulty>/")
@app.post("/get_questions/<int:num_questions>/")
@app.post("/get_questions/<int:num_questions>/<string:difficulty>/")
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()
|