Frågor med Databricks SQL-agenten

Databricks med Python SDK

Avi Steinberg

Senior Software Engineer

Databricks Unity Catalog

  • Det primära sättet att lagra data i Databricks
  • Innehåller scheman, som kan innehålla flera tabeller
  • Skapa tabeller i schema från en mängd olika källor
  • Flera öppna scheman finns i samples-katalogen

Databricks Unity Catalog

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

LangChain

  • Bibliotek för att bygga och driftsätta LLM-applikationer
  • Gör det möjligt att skapa AI-agenter som använder SQL för att fråga data LangChain
Databricks med Python SDK

Python LangChain-beroenden

Installera Python-paketberoenden:

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

Importera bibliotek:

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 med Python SDK

Databricks SQL Warehouse-ID

Databricks SQL Warehouse-anslutningsinformation

Databricks med Python SDK

Autentisera LangChain mot Databricks Workspace

Exportera miljövariabler:

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

Databricks SQL-agenten

  • Ställ frågor till en AI-agent om data i ett Databricks-katalogschema
  • AI-agenten kan besvara frågor om data som kräver SQL
  • Ange verbose=True för att se hur AI-agenten arbetar

LangChain Query output

Databricks med Python SDK

Använd Databricks SQL-agenten för att fråga katalogen

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)
# Query the Databricks SQL Agent
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 med Python SDK

Skapa en LangChain SQL-databas från en Databricks-katalog

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 med Python SDK

Skapa en LangChain LLM med en grundmodell

llm = ChatDatabricks(

endpoint="databricks-meta-llama-3-3-70b-instruct",
temperature=0.1, max_tokens=100, )
  • temperature: ett flyttal mellan 0 och 1 som styr slumpmässigheten i modellens svar
  • max_tokens: anger det maximala antalet tokens i svaret
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Databricks med Python SDK

Skapa ett LangChain SQL-databasverktyg

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

Skapa en Databricks SQL-agent

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 med Python SDK

Nu kör vi en övning!

Databricks med Python SDK

Preparing Video For Download...