-
-
Save anderl80/5a593cbfc6d44283864917743557d8da to your computer and use it in GitHub Desktop.
OPENAI_API_KEY= | |
OPENAI_API_BASE= | |
DATABASE_USERNAME= | |
DATABASE_PASSWORD= | |
DATABASE_SERVER= | |
DATABASE_DB= |
// PUT THIS IN .devcontainer FOLDER! | |
// For format details, see https://aka.ms/devcontainer.json. For config options, see the | |
// README at: https://github.com/devcontainers/templates/tree/main/src/python | |
{ | |
"name": "Python 3", | |
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile | |
"image": "mcr.microsoft.com/devcontainers/python:0-3.11", | |
"features": { | |
"ghcr.io/devcontainers/features/python:1": { | |
"installJupyterlab": true | |
}, | |
"ghcr.io/devcontainers/features/azure-cli:1": {} | |
}, | |
// Features to add to the dev container. More info: https://containers.dev/features. | |
// "features": {}, | |
// Use 'forwardPorts' to make a list of ports inside the container available locally. | |
// "forwardPorts": [], | |
// Use 'postCreateCommand' to run commands after the container is created. | |
"postCreateCommand": "pip3 install --user -r requirements.txt", | |
"customizations": { | |
"vscode": { | |
"extensions": [ | |
"ms-python.python", | |
"ms-toolsai.jupyter" | |
] | |
} | |
} | |
// Configure tool-specific properties. | |
// "customizations": {}, | |
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. | |
// "remoteUser": "root" | |
} |
import os | |
from langchain.llms import AzureOpenAI | |
import openai | |
from langchain.agents import create_sql_agent | |
from langchain.agents.agent_toolkits import SQLDatabaseToolkit | |
from langchain.sql_database import SQLDatabase | |
from dotenv import load_dotenv | |
load_dotenv() | |
# Configure OpenAI API | |
openai.api_type = "azure" | |
openai.api_version = "2022-12-01" | |
openai.api_base = os.getenv('OPENAI_API_BASE') | |
openai.api_key = os.getenv("OPENAI_API_KEY") | |
llm = AzureOpenAI(deployment_name="text-davinci-003", model_name="text-davinci-003") | |
database_user = os.getenv("DATABASE_USERNAME") | |
database_password = os.getenv("DATABASE_PASSWORD") | |
database_server = os.getenv("DATABASE_SERVER") | |
database_db = os.getenv("DATABASE_DB") | |
connection_string = f"mssql+pymssql://{database_user}:{database_password}@{database_server}.database.windows.net:1433/{database_db}" | |
db = SQLDatabase.from_uri(connection_string) | |
toolkit = SQLDatabaseToolkit(db=db, llm=llm, reduce_k_below_max_tokens=True) | |
agent_executor = create_sql_agent( | |
llm=llm, | |
toolkit=toolkit, | |
verbose=True | |
) | |
db = SQLDatabase.from_uri("mssql+pymssql://<username>:<password>@<server>.database.windows.net:1433/<database>") | |
toolkit = SQLDatabaseToolkit(db=db) | |
agent_executor = create_sql_agent( | |
llm=llm, | |
toolkit=toolkit, | |
verbose=True | |
) | |
agent_executor.run("Find the 5 most expensive records!") |
openai | |
langchain | |
pymssql | |
python-dotenv |
seems like by default, the LLM generate SQL with mysql syntax - for example SELECT * FROM cache_instances LIMIT 10. but that does't work in MS SQL database. MS SQL should be something like select top 10 * from cache_instances. Any idea how to specific database type?
Hello Andreas, I am getting error
openai\api_requestor.py", line 683, in _interpret_response_line
raise self.handle_error_response(
openai.error.InvalidRequestError: Resource not found
Yes I am also getting the same error.
@jshang11, doesn't it self-correct after the error? https://python.langchain.com/en/latest/modules/chains/examples/sqlite.html#sql-chain-example gives more information, probably setting the query checker does the trick.
@UriDimant @rajaniesh did you check that there's a deployment with "text-davinci-003" in you Azure OpenAI instance?
Hi, I was struggling with this too, but I could resolve it, on Azure AI Studio you can create a Deployment with a name different to the model name, if you do this, the code line llm = AzureOpenAI(deployment_name="deployment name", model_name="model name") fails with the Resource not found error, if you create the Deployment with a name exactly the same as the model name, it works. A bug? An expected behavior? Don't know but, in my case, that's the way I "fixed"
Create an Azure SQL database and upload some data! Suggest this one: https://github.com/lerocha/chinook-database