Хотите создать приложение, которое может быстро и точно переводить запросы на естественном языке в сценарии SQL? Не смотрите дальше! Наше пошаговое руководство проведет вас через процесс создания собственного приложения с использованием Streamlit и API OpenAI. Вам интересно посмотреть, как выглядит конечный продукт? Проверьте мое приложение по ссылке ниже:

приложение для преобразования текста в SQL

ШАГ 1:

Чтобы приступить к созданию приложения для SQL-запросов на естественном языке, вам сначала необходимо настроить учетную запись OpenAI. Это легко — просто зайдите на https://platform.openai.com/ и следуйте инструкциям, чтобы создать учетную запись. Затем в своем аккаунте перейдите в раздел Личные данные → API-ключи → Создать новый секретный ключ. Имейте в виду, что этот ключ не должен быть общедоступным, так как он предназначен только для вас. Когда вы будете готовы развернуть свое приложение, просто добавьте секретный ключ в поле секретный ключ в дополнительных настройках Streamlit. Вот и все! Имея учетную запись OpenAI и секретный ключ, вы будете готовы создать приложение, которое сможет быстро и точно переводить запросы на естественном языке в сценарии SQL.

Перед развертыванием нашего приложения Streamlit нам необходимо протестировать его локально. Для этого мы создадим новую папку в каталоге нашего проекта с именем .streamlit. Внутри этой папки мы создадим скрипт и включим наш секретный ключ, который мы можем сохранить как переменную. Например, мы можем установить переменную «pass» равной нашему секретному ключу: pass = ‘kjhihjYsFydr4MoWaLShegZoVjnijbjbj’. Затем мы сохраним этот файл как secrets.toml. Этот файл является безопасным способом ссылки на наш секретный ключ в нашем приложении. Как только это будет сделано, мы можем начать кодировать наше приложение!

# Save this file as secrets.toml
pass="kjhihjYsFydr4MoWaLShegZoVjnijbjbj"

ШАГ 2:

На этом этапе мы обсудим сценарий Python, который использует API-интерфейсы Streamlit и OpenAI для преобразования запросов на естественном языке в операторы SQL. Сценарий предоставляет интерактивный пользовательский интерфейс через Streamlit и использует API OpenAI для перевода ввода на естественном языке в операторы SQL.

# import librairies
import openai
import numpy as np
import streamlit as st

# Load OpenAI API key from secrets file
openai.api_key=st.secrets["pass"]


# Adding some texts to explain the purpose of the app
#_______________Optionnal_______________________
st.sidebar.header('Natural language to SQL queries. ')

st.sidebar.image("sql.png", use_column_width=True)

st.sidebar.write("""
         ######  This app uses streamlit and OpenAI APIs to translate natural 
            language queries into SQL statements with ease. Simply input your natural language query, and our app will generate the corresponding SQL statement for you to execute, saving you valuable time and effort.
         """)
st.sidebar.write("""
         ######  Made by Lamis Ghoualmi  [LinkedIn](https://www.linkedin.com/in/lamisghoualmi/), [Github](https://lamisghoualmi.github.io/)
         """)
st.header('Translate natural language to SQL queries.')
#___________________________________________________




# Text input where the user enter the text to be translated to SQL query
query= st.text_input('Enter you text to generate SQL query', '')

#The query is sent to the OpenAI API  throught the prompt variable using 
#the "text-davinci-002" engine, and the generated response is returned as 
#a string.
#These  parameters configuration where based on the ones provided by openai
def generate_sql(query):
    model_engine = "text-davinci-002"
    prompt = (
        f"Translate the following natural language query to SQL:\n"
        f"{query}\n"
        f"SQL:"
    )
    response = openai.Completion.create(
        engine=model_engine,
        prompt=prompt,
        temperature=0,
        max_tokens=150,
        top_p=1.0,
        frequency_penalty=0.0,
        presence_penalty=0.0,
        stop=["#", ";"]
    )
    return response.choices[0].text.strip()

#if the Generate SQL query if clicked 
if st.button('Generate SQL query'):
  #if text input is not empty
  if len(query) > 0:
    #Generate sql query
    Respo=generate_sql(query)
    #print sql query
    st.write(Respo)

Чтобы запустить приложение на локальном хосте, откройте командную строку (cmd.exe) в Windows и перейдите в каталог, в котором находится ваше приложение, введя cd, а затем путь к каталогу (например, cd C:\Users\lamis \Desktop\App\NLP-To-SQL). Затем запустите свое приложение, введя streamlit run FileName.py в командной строке, где FileName — это имя вашего скрипта. Это запустит локальный сервер, и вы сможете просмотреть свое веб-приложение, открыв браузер и перейдя по адресу http://localhost:8501.

Чтобы развернуть приложение Streamlit и сделать его общедоступным для всех, сначала вам нужно загрузить свой код на GitHub. Не забудьте включить файл requirements.txt, содержащий имена библиотек, используемых в вашем коде. Затем перейдите на https://share.streamlit.io/, создайте новое приложение и добавьте ссылку на репозиторий GitHub вашего приложения. После этого перейдите в дополнительные настройки и добавьте свой секретный ключ, вставив его так: pass="kjhihjYsFydr4MoWaLShegZoVjnijbjbj". Наконец, нажмите Развернуть, и ваше приложение будет доступно в Интернете, чтобы поделиться им с другими.

Я очень рада, что поделилась с вами этим уроком! Готовы ли вы создать собственное приложение прямо сейчас? Дайте мне знать в комментариях, я не могу дождаться, чтобы увидеть, что вы создаете! И не стесняйтесь задавать мне любые вопросы, которые могут у вас возникнуть, я здесь, чтобы помочь. И эй, пока вы это делаете, не забудьте подписаться на меня в LinkedIn, чтобы получать больше интересных технических руководств и обновлений! Удачного кодирования!