grok_test / app.py
broadfield-dev's picture
Update app.py
b9891ea verified
raw
history blame
1.73 kB
import os
from flask import Flask, render_template, request
from rss_processor import fetch_rss_feeds, process_and_store_articles, vector_db
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
articles = fetch_rss_feeds()
process_and_store_articles(articles)
stored_docs = vector_db.similarity_search("news", k=len(articles))
enriched_articles = [
{
"title": doc.metadata["title"],
"link": doc.metadata["link"],
"summary": doc.page_content,
"category": doc.metadata["category"],
"sentiment": doc.metadata["sentiment"],
"published": doc.metadata["published"],
}
for doc in stored_docs
]
if request.method == 'POST':
query = request.form.get('search')
if query:
results = vector_db.similarity_search(query, k=10)
enriched_articles = [
{
"title": doc.metadata["title"],
"link": doc.metadata["link"],
"summary": doc.page_content,
"category": doc.metadata["category"],
"sentiment": doc.metadata["sentiment"],
"published": doc.metadata["published"],
}
for doc in results
]
categorized_articles = {}
for article in enriched_articles:
cat = article["category"]
if cat not in categorized_articles:
categorized_articles[cat] = []
categorized_articles[cat].append(article)
return render_template("index.html", categorized_articles=categorized_articles)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)