การสืบค้นด้วย Databricks SQL agent

Databricks กับ Python SDK

Avi Steinberg

Senior Software Engineer

Databricks Unity Catalog

  • วิธีหลักในการเก็บข้อมูลใน Databricks
  • ประกอบด้วย schema ซึ่งสามารถมีได้หลายตาราง
  • สร้างตารางใน schema จากแหล่งข้อมูลที่หลากหลาย
  • มี schema โอเพนซอร์สหลายรายการใน samples catalog

Databricks Unity Catalog

1 https://docs.databricks.com/aws/en/catalogs/
Databricks กับ Python SDK

LangChain

  • ไลบรารีสำหรับสร้างและนำใช้งานแอปพลิเคชัน LLM
  • ช่วยสร้าง AI agent ที่ใช้ SQL สืบค้นข้อมูลได้ LangChain
Databricks กับ Python SDK

Python LangChain dependencies

ติดตั้ง Python package ที่จำเป็น:

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

นำเข้าไลบรารี:

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 กับ Python SDK

Databricks SQL Warehouse ID

รายละเอียดการเชื่อมต่อ Databricks SQL Warehouse

Databricks กับ Python SDK

ยืนยันตัวตน LangChain กับ Databricks Workspace

ส่งออกตัวแปรสภาพแวดล้อม:

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

Databricks SQL agent

  • ถาม AI agent เกี่ยวกับข้อมูลใน Databricks catalog schema
  • AI agent ตอบคำถามที่ต้องใช้ SQL ในการสืบค้นได้
  • ระบุ verbose=True เพื่อให้ AI agent แสดงขั้นตอนการทำงาน

ผลลัพธ์การสืบค้น LangChain

Databricks กับ Python SDK

ใช้ Databricks SQL agent สืบค้น 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 กับ Python SDK

สร้าง LangChain SQL database จาก 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 กับ Python SDK

สร้าง LangChain LLM จาก foundational model

llm = ChatDatabricks(

endpoint="databricks-meta-llama-3-3-70b-instruct",
temperature=0.1, max_tokens=100, )
  • temperature: ค่า float ระหว่าง 0 ถึง 1 สำหรับกำหนดระดับความสุ่มในการตอบสนองของโมเดล
  • max_tokens: กำหนดจำนวนโทเคนสูงสุดในการตอบสนอง
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Databricks กับ Python SDK

สร้าง LangChain SQL database toolkit

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

สร้าง 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 กับ Python SDK

มาฝึกสืบค้นข้อมูล Databricks กันเถอะ!

Databricks กับ Python SDK

Preparing Video For Download...