Langchain sql代理未连接到databricks统一目录表

问题描述 投票:0回答:1

我正在尝试使用 Langchain sql 代理连接到 databricks unity 目录中的表。 我收到错误InvalidRequestError:找不到资源

这是我迄今为止编写的代码...

%pip install langchain==0.0.279 databricks-sql-connector openai==0.28.0

from langchain.agents import create_sql_agent
from langchain.agents.agent_toolkits import SQLDatabaseToolkit
from langchain.sql_database import SQLDatabase
from langchain import OpenAI
from langchain.chat_models import ChatOpenAI
import os
from langchain.agents.agent_types import AgentType
from langchain.chat_models import AzureChatOpenAI


db = SQLDatabase.from_databricks(catalog="dslakehouse", schema="default")
api_key = "XXX" 


MY_ENDPOINT = "https://XXX.azure.com/"
MY_DEPLOYMENT_NAME = "XXX"

llm = AzureChatOpenAI(
                  deployment_name=MY_DEPLOYMENT_NAME,
                  model_name='gpt-4o',
                  model_version='2024-05-13',
                  temperature = 0,
                  openai_api_key= api_key,
                  openai_api_base=MY_ENDPOINT,
                  openai_api_type='azure',
                  openai_api_version='2024-05-13',
                  max_retries=4,
)

toolkit = SQLDatabaseToolkit(db=db, llm=llm)

agent_executor = create_sql_agent(
    llm=llm,
    toolkit=toolkit,
    verbose=True,
    agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    engine="openai-ds-test-4o", 
)

我想要询问的表称为“training_data”,位于 dslakehouse 的默认位置。

当我尝试使用查询数据库时

agent_executor.run("Question asked?") 

我收到的回复是 InvalidRequestError:找不到资源

我做错了什么?

python-3.x openai-api py-langchain sql-agent
1个回答
0
投票

下面的代码对我有用 - 连接数据块统一目录中的数据

from langchain_community.agent_toolkits import create_sql_agent
from langchain_community.utilities.sql_database import SQLDatabase
from langchain_openai import AzureChatOpenAI
from langchain_openai import AzureOpenAIEmbeddings
        
    

    llm = AzureChatOpenAI(
                  openai_api_version= "",
                  azure_endpoint= "",
                  deployment_name= "",
                  api_key="",
                  temperature=0,
              )
            
            
            api_token = ""
            host = ""
            http_path = ""
            catalog = ""
            schema = ""
            
            uri = (
                f"databricks://token:{api_token}@{host}?"
                f"http_path={http_path}&catalog={catalog}&schema={schema}"
            )
            
            
            db = SQLDatabase.from_uri(
                database_uri=uri,
                include_tables=[""],
                sample_rows_in_table_info=5,
            )
        
        agent_executor = create_sql_agent(
            llm=llm,
            db=db,
            verbose=False,
            agent_executor_kwargs={
                "handle_parsing_errors": True,
            },
        )



agent_executor.invoke(
    {
        "input": "<quesion>"
    }
)
© www.soinside.com 2019 - 2024. All rights reserved.