Spaces:
Runtime error
Runtime error
| import google.generativeai as palm | |
| import pandas as pd | |
| import os | |
| import io | |
| from flask import Flask, request, jsonify | |
| from flask_cors import CORS, cross_origin | |
| import pandas as pd | |
| import firebase_admin | |
| from firebase_admin import credentials, firestore, auth | |
| import requests | |
| import pandas as pd | |
| from datetime import datetime | |
| import os | |
| from pandasai.llm import GoogleGemini | |
| from pandasai import SmartDataframe, SmartDatalake | |
| from pandasai.responses.response_parser import ResponseParser | |
| import matplotlib.pyplot as plt | |
| from wordcloud import WordCloud | |
| import random | |
| from dotenv import load_dotenv | |
| import json | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| app = Flask(__name__) | |
| cors = CORS(app) | |
| class FlaskResponse(ResponseParser): | |
| def __init__(self,context) -> None: | |
| super().__init__(context) | |
| def format_dataframe(self,result): | |
| st.dataframe(result['value']) | |
| return | |
| def format_plot(self,result): | |
| st.image(result['value']) | |
| return | |
| def format_other(self, result): | |
| st.write(result['value']) | |
| return | |
| gemini_api_key = os.environ['Gemini'] | |
| def home(): | |
| return "Hello Qx!" | |
| llm = GoogleGemini(api_key=gemini_api_key) | |
| # Initialize Firebase app | |
| if not firebase_admin._apps: | |
| cred = credentials.Certificate("quant-app-99d09-firebase-adminsdk-6prb1-37f34e1c91.json") | |
| firebase_admin.initialize_app(cred) | |
| db = firestore.client() | |
| def bot(): | |
| user_id = request.json.get("user_id") | |
| user_question = request.json.get("user_question") | |
| load_dotenv() | |
| inventory_ref = db.collection("users").document(user_id).collection('inventory') | |
| sales_ref = db.collection("users").document(user_id).collection('sales') | |
| inventory_list = [] | |
| for doc in inventory_ref.stream(): | |
| a = doc.to_dict() | |
| inventory_list.append(a) | |
| sales_list = [] | |
| for doc in sales_ref.stream(): | |
| a = doc.to_dict() | |
| sales_list.append(a) | |
| inventory_df = pd.DataFrame(inventory_list) | |
| sales_df = pd.DataFrame(sales_list) | |
| lake = SmartDatalake([inventory_df, sales_df], config={"llm":llm, "response_parser":FlaskResponse, "enable_cache": False}) | |
| response = lake.chat(user_question) | |
| print(user_question) | |
| return jsonify(response) | |
| if __name__ == "__main__": | |
| app.run(debug=True,host="0.0.0.0", port=7860) | |