-
Notifications
You must be signed in to change notification settings - Fork 93
Expand file tree
/
Copy pathNewsRoutes.py
More file actions
83 lines (68 loc) · 2.63 KB
/
Copy pathNewsRoutes.py
File metadata and controls
83 lines (68 loc) · 2.63 KB
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
from flask import *
from controllers.NewsController import NewsController
routes = Blueprint("routes", __name__)
# news_controller = NewsController("mistralai") # default model name
"""
home page route
"""
@routes.route("/", methods=["GET"])
def home_route():
return render_template("home.html")
"""
set route for different LLM models
"""
@routes.route("/<llm_name>", methods=["GET"])
def set_llm_route(llm_name):
if llm_name == "favicon.ico":
return "", 204 # No Content response for favicon requests
g.news_controller = NewsController(llm_name)
return render_template("llm.html", llm_name=llm_name)
"""
return news without considering keywords
"""
@routes.route("/<llm_name>/news", methods=["GET"])
def getNews_route(llm_name):
g.news_controller = NewsController(llm_name)
news = g.news_controller.getNews()
return render_template("news.html", data=news)
"""
return news based on certain keywords
"""
@routes.route("/<llm_name>/news_keywords", methods=["GET"])
def getNewsWithKeywords_route(llm_name):
g.news_controller = NewsController(llm_name)
user_keywords = request.args.getlist("keywords")
if not user_keywords or not user_keywords[0]:
return jsonify({"error": "Missing keywords parameter"}), 400
data = g.news_controller.getNewsWithKeywords(user_keywords[0])
return render_template("news_key.html", data=data, keyword=user_keywords[0])
"""
return news without considering keywords (NO LLM)
"""
@routes.route("/raw/news", methods=["GET"])
def getNews_raw_route():
# Instantiate without a model to bypass LLM initialization entirely
g.news_controller = NewsController(None)
news = g.news_controller.getNews()
return render_template("news.html", data=news, llm_name="raw")
"""
return news based on certain keywords (NO LLM)
"""
@routes.route("/raw/news_keywords", methods=["GET"])
def getNewsWithKeywords_raw_route():
# Instantiate without a model to bypass LLM initialization entirely
g.news_controller = NewsController(None)
user_keywords = request.args.getlist("keywords")
if not user_keywords or not user_keywords[0]:
return jsonify({"error": "Missing keywords parameter"}), 400
data = g.news_controller.getNewsWithKeywords(user_keywords[0])
return render_template("news_key.html", data=data, keyword=user_keywords[0], llm_name="raw")
"""
deal requests with wrong route
"""
@routes.errorhandler(404)
def notFound_route(error):
# Ensure g.news_controller exists before trying to call it
if hasattr(g, 'news_controller'):
return g.news_controller.notFound(error)
return jsonify({"error": "Resource not found"}), 404