Consultando com o agente Databricks SQL

Databricks com o SDK em Python

Avi Steinberg

Senior Software Engineer

Databricks Unity Catalog

  • Método principal para armazenar dados no Databricks
  • Contém schemas, que podem ter várias tabelas
  • Crie tabelas no schema a partir de diversas fontes
  • Vários schemas open source no catálogo samples

Databricks Unity Catalog

1 https://docs.databricks.com/aws/en/catalogs/
Databricks com o SDK em Python

LangChain

  • Biblioteca para criar e implantar apps com LLM
  • Permite criar agentes de IA que usam SQL para consultar dados LangChain
Databricks com o SDK em Python

Dependências Python do LangChain

Instale as dependências Python:

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

Importe as bibliotecas:

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 com o SDK em Python

ID do Databricks SQL Warehouse

Detalhes de conexão do Databricks SQL Warehouse

Databricks com o SDK em Python

Autenticar o LangChain no Workspace do Databricks

Exporte as variáveis de ambiente:

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

Agente Databricks SQL

  • Faça perguntas a um agente de IA sobre dados em um schema do catálogo Databricks
  • O agente pode responder perguntas que exigem SQL
  • Defina verbose=True para o agente mostrar o raciocínio

Saída de consulta do LangChain

Databricks com o SDK em Python

Usar o agente Databricks SQL para consultar o Catálogo

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)
# Consultar o Agente 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 com o SDK em Python

Criar um banco SQL do LangChain a partir de um Catálogo 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 com o SDK em Python

Criar um LLM do LangChain usando um modelo base

llm = ChatDatabricks(

endpoint="databricks-meta-llama-3-3-70b-instruct",
temperature=0.1, max_tokens=100, )
  • temperature: float entre 0 e 1 que controla a aleatoriedade das respostas
  • max_tokens: define o número máximo de tokens na resposta
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Databricks com o SDK em Python

Criar um toolkit de banco SQL do LangChain

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

Criar um Agente 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 com o SDK em Python

Vamos consultar dados no Databricks!

Databricks com o SDK em Python

Preparing Video For Download...