genaibeauty's picture
Create app.py
42f6bbe verified
raw
history blame
1.54 kB
import os
from utils.pdf_processing import extract_text_from_pdf, extract_text_from_scanned_pdf
from utils.vector_store import add_document, search
from utils.stock_data import get_stock_data
from utils.sentiment import analyze_sentiment
# Define PDF folder
PDF_FOLDER = "data"
# Process and index all PDFs
def process_pdfs():
for pdf_file in os.listdir(PDF_FOLDER):
pdf_path = os.path.join(PDF_FOLDER, pdf_file)
# Extract text from normal or scanned PDFs
text = extract_text_from_pdf(pdf_path) or extract_text_from_scanned_pdf(pdf_path)
# Store in FAISS vector store
add_document(text, pdf_file)
# Query the system
def query_system(query):
results = search(query)
print("πŸ“Œ Top Matching Documents:")
for res in results:
print(f"\nπŸ“„ Document: {res.metadata['id']}\n{text[:500]}...")
# Perform sentiment analysis
print("\nπŸ“Š Sentiment Analysis:")
for res in results:
sentiment = analyze_sentiment(res.page_content)
print(f"πŸ“„ Document: {res.metadata['id']}, Sentiment: {sentiment}")
# Fetch stock data
def get_stock_info(ticker):
stock_data = get_stock_data(ticker)
print(f"\nπŸ“ˆ Stock Price for {ticker}: ${stock_data['price']}")
# Run the application
if __name__ == "__main__":
print("πŸ”„ Indexing PDFs...")
process_pdfs()
query = input("\nπŸ” Enter your query: ")
query_system(query)
ticker = input("\nπŸ“Š Enter a stock ticker (e.g., AAPL, TSLA): ")
get_stock_info(ticker)