Interroger avec l'agent Databricks SQL

Databricks avec le SDK Python

Avi Steinberg

Senior Software Engineer

Databricks Unity Catalog

  • Méthode principale pour stocker des données dans Databricks
  • Contient des schémas pouvant inclure plusieurs tables
  • Créez des tables dans un schéma à partir de nombreuses sources
  • Plusieurs schémas libres dans le catalogue « samples »

Databricks Unity Catalog

1 https://docs.databricks.com/aws/en/catalogs/
Databricks avec le SDK Python

LangChain

  • Bibliothèque pour créer et déployer des applications LLM
  • Permet de créer des agents d'IA qui utilisent SQL pour interroger des données LangChain
Databricks avec le SDK Python

Dépendances Python pour LangChain

Installer les dépendances Python :

pip install --upgrade databricks-langchain langchain-community langchain 
                      databricks-sql-connector databricks-sqlalchemy

Importer les bibliothèques :

from langchain_community.agent_toolkits import create_sql_agent
from langchain_community.agent_toolkits import SQLDatabaseToolkit
from langchain_community.utilities import SQLDatabase
from databricks_langchain import ChatDatabricks
Databricks avec le SDK Python

ID du Databricks SQL Warehouse

Paramètres de connexion au Databricks SQL Warehouse

Databricks avec le SDK Python

Authentifier LangChain au poste de travail Databricks

Exporter les variables d'environnement :

os.environ["DATABRICKS_TOKEN"] = "<Your-Access-Token>"
os.environ["DATABRICKS_HOST"] = "<your-workspace-id>.cloud.databricks.com"
Databricks avec le SDK Python

Agent Databricks SQL

  • Posez des questions à un agent d'IA sur les données d'un schéma de catalogue Databricks
  • L'agent d'IA peut répondre aux questions nécessitant du SQL
  • Indiquez verbose=True pour afficher ses étapes

Résultat de requête LangChain

Databricks avec le SDK Python

Utiliser l'agent Databricks SQL pour interroger le Catalogue

db = SQLDatabase.from_databricks(
    catalog="samples", 
    schema="nyctaxi",
    warehouse_id=warehouse_id)
llm = ChatDatabricks(
    endpoint="databricks-meta-llama-3-3-70b-instruct",
    temperature=0.1,
    max_tokens=100)
toolkit = SQLDatabaseToolkit(db=db, llm=llm)
agent = create_sql_agent(llm=llm, toolkit=toolkit, verbose=True)
# Interroger l'agent Databricks SQL
result = agent.run("What's the time and distance of the longest trip?")
print(result)
1 https://docs.databricks.com/aws/en/large-language-models/langchain#databricks-sql-agent
Databricks avec le SDK Python

Créer une base SQL LangChain à partir d'un catalogue Databricks

db = SQLDatabase.from_databricks(
    catalog="samples", 
    schema="nyctaxi",
    warehouse_id="<your-warehouse-id>"
)
1 api.python.langchain.com/en/latest/utilities/langchain_community.utilities.sql_database.SQLDatabase.html
Databricks avec le SDK Python

Créer un LLM LangChain avec un modèle fondamental

llm = ChatDatabricks(

endpoint="databricks-meta-llama-3-3-70b-instruct",
temperature=0.1, max_tokens=100, )
  • temperature : un flottant entre 0 et 1 qui règle l'aléatoire des réponses du modèle
  • max_tokens : nombre maximum de jetons dans la réponse
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Databricks avec le SDK Python

Créer une trousse SQL LangChain pour base de données

toolkit = SQLDatabaseToolkit(db=db, llm=llm)
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Databricks avec le SDK Python

Créer un agent Databricks SQL

agent = create_sql_agent(llm=llm, toolkit=toolkit, verbose=True)

result = agent.run("What's the time and distance of the longest trip?") display(result)
The average trip takes approximately 15 minutes.
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Databricks avec le SDK Python

Interrogeons des données Databricks !

Databricks avec le SDK Python

Preparing Video For Download...