acadiaway commited on
Commit
5356085
·
1 Parent(s): 092b9cc

app.py original

Browse files
Files changed (1) hide show
  1. app.py +21 -82
app.py CHANGED
@@ -1,87 +1,26 @@
1
  import streamlit as st
2
- import os
3
- import psycopg2
4
- from sqlalchemy import create_engine, text
5
- from dotenv import load_dotenv
6
 
7
- # Load environment variables
8
- load_dotenv()
9
 
10
- st.title("Database Connection Test")
11
 
12
- def test_db_connection():
13
- """Test database connection and basic query"""
14
- try:
15
- conn_str = os.getenv("SUPABASE_CONN_STR")
16
- if not conn_str:
17
- return False, "SUPABASE_CONN_STR environment variable not found"
18
-
19
- st.write(f"Connection string configured: {bool(conn_str)}")
20
-
21
- # Test basic connection
22
- conn = psycopg2.connect(conn_str)
23
- cursor = conn.cursor()
24
-
25
- # Test simple query
26
- cursor.execute("SELECT version();")
27
- version = cursor.fetchone()
28
-
29
- # Test schema access
30
- cursor.execute("""
31
- SELECT table_name, column_name, data_type
32
- FROM information_schema.columns
33
- WHERE table_schema = 'public'
34
- ORDER BY table_name, ordinal_position
35
- LIMIT 10;
36
- """)
37
- schema_sample = cursor.fetchall()
38
-
39
- # Test vessels table specifically
40
- cursor.execute("SELECT COUNT(*) FROM vessels;")
41
- vessel_count = cursor.fetchone()[0]
42
-
43
- cursor.close()
44
- conn.close()
45
-
46
- return True, {
47
- "version": version[0] if version else "Unknown",
48
- "schema_sample": schema_sample,
49
- "vessel_count": vessel_count
50
- }
51
-
52
- except Exception as e:
53
- return False, str(e)
54
-
55
- if st.button("Test Database Connection"):
56
- success, result = test_db_connection()
57
-
58
- if success:
59
- st.success("✅ Database connection successful!")
60
- st.write("**Database Version:**", result["version"])
61
- st.write("**Total vessels:**", result["vessel_count"])
62
- st.write("**Schema Sample (first 10 columns):**")
63
- for table, column, dtype in result["schema_sample"]:
64
- st.write(f"- {table}.{column} ({dtype})")
65
- else:
66
- st.error(f"❌ Database connection failed: {result}")
67
-
68
- # Manual SQL test
69
- st.subheader("Manual SQL Test")
70
- manual_sql = st.text_area("Enter SQL to test:", value="SELECT name, vessel_type FROM vessels LIMIT 5;")
71
-
72
- if st.button("Execute SQL"):
73
- try:
74
- conn_str = os.getenv("SUPABASE_CONN_STR")
75
- conn = psycopg2.connect(conn_str)
76
- cursor = conn.cursor()
77
- cursor.execute(manual_sql)
78
- results = cursor.fetchall()
79
- cursor.close()
80
- conn.close()
81
-
82
- st.success(f"Query executed successfully! Found {len(results)} rows:")
83
- for i, row in enumerate(results):
84
- st.write(f"Row {i+1}: {row}")
85
 
86
- except Exception as e:
87
- st.error(f"SQL execution failed: {e}")
 
 
 
 
 
 
 
 
 
 
1
  import streamlit as st
2
+ from pipeline import text_to_sql
 
 
 
3
 
4
+ st.title("SQLCoder Text-to-SQL App")
 
5
 
6
+ nl_query = st.text_input("Enter your query:", value="List 11 names of ships type schooner")
7
 
8
+ if st.button("Generate & Execute"):
9
+ if nl_query:
10
+ with st.spinner("Generating SQL and executing query..."):
11
+ sql, results = text_to_sql(nl_query)
12
+
13
+ st.write("**Generated SQL:**")
14
+ st.code(sql, language="sql")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
+ st.write("**Results:**")
17
+ if isinstance(results, list) and results:
18
+ st.write(f"Found {len(results)} rows:")
19
+ for i, row in enumerate(results[:20]): # Show first 20
20
+ st.write(f"Row {i+1}: {row}")
21
+ if len(results) > 20:
22
+ st.info(f"Showing first 20 rows out of {len(results)} total results.")
23
+ else:
24
+ st.write(results)
25
+ else:
26
+ st.error("Enter a query.")