Spaces:
Sleeping
Sleeping
File size: 2,489 Bytes
9a19c9e b7c24ab 9a19c9e ca1820c 9a19c9e |
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 84 85 86 87 88 |
import pymysql
import streamlit as st
import logging
import json
import pandas as pd
import re
import os
from langchain_community.utilities.sql_database import SQLDatabase
db_params = {"host": os.getenv("DB_HOST"),
"user": os.getenv("DB_USER"),
"password": os.getenv("DB_PASSWORD"),
"port": 3306,
"database":os.getenv("DB")
}
def initialize_database():
try:
# Database Connection
db = pymysql.connect(**db_params)
st.success("Database connection successful!")
return db
except Exception as e:
st.error(f"Database connection failed: {e}")
return None
def get_db():
try:
db = SQLDatabase.from_uri(
f"mysql+pymysql://{db_params['user']}:{db_params['password']}@{db_params['host']}/{db_params['database']}",
include_tables=['term_details_modified', 'veda_content_details', 'veda_content_modified']
)
#st.success("Database connection successful!")
return db
except Exception as e:
st.error(f"Database connection failed: {e}")
return None
def execute_query(query):
db = initialize_database()
cursor = db.cursor()
try:
cursor.execute(query)
description = cursor.description
result = cursor.fetchall() # Fetch all rows from the result set
db.commit()
return description, result
except Exception as e:
print("Error executing query:", e)
db.rollback()
return None # Return None if an error occurs
finally:
db.close()
def execute_sql_query(query, parameters=None):
# Establish database connection and execute SQL query
db = initialize_database()
cursor = db.cursor(pymysql.cursors.DictCursor) # Use dictionary cursor to retrieve data as dictionaries
try:
if parameters:
cursor.execute(query, parameters)
else:
cursor.execute(query)
results = cursor.fetchall()
return results
except Exception as e:
logging.error(f"Error executing SQL query: {e}")
return None
finally:
db.close()
def get_details_mantra_json(query):
description, data = execute_query(query)
df = pd.DataFrame(data)
df.columns = [x[0] for x in description]
mantra_json = df['mantra_json'].values[0]
cleaned_data = re.sub('<[^<]+?>', '', mantra_json)
return json.loads(cleaned_data)
|