File size: 2,052 Bytes
815cfd4 bed9222 4a4eae5 09a9a2e 589c127 815cfd4 09a9a2e 815cfd4 963c94c 815cfd4 589c127 963c94c 4a4eae5 815cfd4 09a9a2e 815cfd4 09a9a2e 815cfd4 09a9a2e 60dbf47 7fd53e3 815cfd4 09a9a2e 815cfd4 589c127 963c94c 589c127 815cfd4 589c127 815cfd4 589c127 815cfd4 |
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 |
from io import StringIO
import streamlit as st
import os
from loguru import logger
from client import OpenAIService, SQLService, FacebookLLAMAService, GoogleT5Service
st.set_page_config(
page_title=' A SQL Generative Pre-trained Transformer',
layout='wide',
initial_sidebar_state='expanded'
)
databases = ['Oracle', 'SQLServer', 'MySQL', 'DB2', 'PostgreSQL', 'Snowflake', 'Redshift']
models = ['openai-text-david-003', 'google-t5', 'facebook-llama']
# -------------
st.sidebar.header('๐ A SQL Transformer for Migration')
model = st.sidebar.selectbox(label='Model', options=models, index=0)
openai_key = os.environ.get("OPEN-KEY", None)
source_database = st.sidebar.selectbox(
label='๐ Source Database',
options=databases,
index=0
)
target_database = st.sidebar.selectbox(
label='๐Target Database',
options=databases,
index=4
)
input_text = st.sidebar.text_area(
label='๐ Insert SQL',
height=200,
placeholder='select id from customer where rownum <= 100'
)
input_file = st.sidebar.file_uploader(
label=" ๐ Choose a SQL file",
accept_multiple_files=False)
def transform():
client: SQLService = None
if model == "openai-text-david-003":
client = OpenAIService(openai_key)
elif model == "google-t5":
client = GoogleT5Service()
elif model == "facebook-llama":
client = FacebookLLAMAService()
logger.info(f"Using Model:{model}")
code = input_text
source = source_database
target = target_database
if code:
solutions = client.translate(source, target, code)
st.code(solutions[0], language='sql')
else:
if input_file is not None:
# To convert to a string based IO:
stringio = StringIO(input_file.getvalue().decode("utf-8"))
# To read file as string:
sql = stringio.read()
solutions = client.translate(source, target, sql)
st.code(solutions[0], language='sql')
# ---------------------------------------
transform()
|