Truy vấn với tác tử Databricks SQL

Databricks với Python SDK

Avi Steinberg

Senior Software Engineer

Databricks Unity Catalog

  • Phương thức chính để lưu trữ dữ liệu trong Databricks
  • Chứa các schema, mỗi schema có thể có nhiều bảng
  • Tạo bảng trong schema từ nhiều nguồn khác nhau
  • Nhiều schema mã nguồn mở trong catalog samples

Databricks Unity Catalog

1 https://docs.databricks.com/aws/en/catalogs/
Databricks với Python SDK

LangChain

  • Thư viện để xây dựng và triển khai ứng dụng LLM
  • Cho phép tạo tác tử AI dùng SQL để truy vấn dữ liệu LangChain
Databricks với Python SDK

Phụ thuộc Python cho LangChain

Cài đặt các gói Python:

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

Nhập thư viện:

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 với Python SDK

ID Databricks SQL Warehouse

Chi tiết kết nối Databricks SQL Warehouse

Databricks với Python SDK

Xác thực LangChain với Databricks Workspace

Xuất biến môi trường:

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

Tác tử Databricks SQL

  • Hỏi tác tử AI về dữ liệu trong schema của Databricks catalog
  • Tác tử AI có thể trả lời các câu hỏi về dữ liệu cần SQL
  • Đặt verbose=True để xem quá trình suy luận của tác tử

Kết quả truy vấn LangChain

Databricks với Python SDK

Dùng tác tử Databricks SQL để truy vấn Catalog

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 với Python SDK

Tạo cơ sở dữ liệu SQL LangChain từ Databricks Catalog

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 với Python SDK

Tạo LLM LangChain bằng mô hình nền tảng

llm = ChatDatabricks(

endpoint="databricks-meta-llama-3-3-70b-instruct",
temperature=0.1, max_tokens=100, )
  • temperature: số thực từ 0 đến 1 điều chỉnh độ ngẫu nhiên của phản hồi
  • max_tokens: số lượng tối đa token trong phản hồi
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Databricks với Python SDK

Tạo bộ công cụ cơ sở dữ liệu SQL cho LangChain

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

Tạo tác tử 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 với Python SDK

Hãy truy vấn dữ liệu Databricks!

Databricks với Python SDK

Preparing Video For Download...