Abfragen mit dem Databricks SQL-Agent

Databricks mit dem Python-SDK

Avi Steinberg

Senior Software Engineer

Databricks Unity Catalog

  • Primäre Methode zum Speichern von Daten in Databricks
  • Enthält Schemas, die mehrere Tabellen enthalten können
  • Tabellen im Schema aus vielen Quellen erstellen
  • Mehrere Open-Source-Schemas im Katalog samples

Databricks Unity Catalog

1 https://docs.databricks.com/aws/en/catalogs/
Databricks mit dem Python-SDK

LangChain

  • Bibliothek zum Erstellen und Bereitstellen von LLM-Anwendungen
  • Ermöglicht KI-Agenten, Daten per SQL abzufragen LangChain
Databricks mit dem Python-SDK

Python-LangChain-Abhängigkeiten

Python-Paketabhängigkeiten installieren:

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

Bibliotheken importieren:

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 mit dem Python-SDK

Databricks SQL-Warehouse-ID

Verbindungsdetails des Databricks SQL-Warehouse

Databricks mit dem Python-SDK

LangChain beim Databricks-Workspace authentifizieren

Umgebungsvariablen exportieren:

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

Databricks SQL-Agent

  • Einen KI-Agenten zu Daten in einem Databricks-Katalogschema befragen
  • Der KI-Agent beantwortet Datenfragen, die SQL erfordern
  • verbose=True zeigt die Herleitung des Agents

LangChain-Abfrageausgabe

Databricks mit dem Python-SDK

Mit dem Databricks SQL-Agent den Katalog abfragen

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 mit dem Python-SDK

LangChain-SQL-Datenbank aus einem Databricks-Katalog erstellen

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 mit dem Python-SDK

Ein LangChain-LLM mit einem Foundation-Modell erstellen

llm = ChatDatabricks(

endpoint="databricks-meta-llama-3-3-70b-instruct",
temperature=0.1, max_tokens=100, )
  • temperature: Float zwischen 0 und 1, steuert die Zufälligkeit der Antworten
  • max_tokens: maximale Tokenanzahl der Antwort
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Databricks mit dem Python-SDK

LangChain-SQL-Datenbank-Toolkit erstellen

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

Einen Databricks SQL-Agent erstellen

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)
Die durchschnittliche Fahrt dauert etwa 15 Minuten.
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Databricks mit dem Python-SDK

Lass uns Daten in Databricks abfragen!

Databricks mit dem Python-SDK

Preparing Video For Download...