Use natural language to execute SQL queries

- Introduction: The article introduces NL2SQL, a sandbox that allows users to query their relational database using natural language expressions. It discusses the relevance of this capability and mentions existing projects in this area.
- Approach: The article explains the principles that guided the development of NL2SQL. It highlights the importance of not synchronizing the database to vector-storage and the need for the schema model to be platform-specific. An example schema model, AdventureWorksLT.yaml, is mentioned.
- Query Generation: The article describes how schema expressions are stored in semantic memory and how the GenerateQuery function generates the SQL query based on the schema and objective. It emphasizes that prompts should not be hard-coded to a specific database schema and that the objective can be expressed in different ways.
- Model's Reasoning: The article praises the model's ability to reason over the schema and mentions an example where the model applies numerical functions based on semantic understanding. It notes that the model can reject objectives that don't make sense but can also be forced to generate invalid SQL.
- Limitations and Best Practices: The article acknowledges that the model is limited to reasoning over the shape of the data and cannot reason over the data itself. It emphasizes the importance of following standard best practices, such as restricting access and utilizing security measures.
- Next Steps: The article encourages readers to explore NL2SQL in the sandbox and join the community to provide feedback. It provides links to the sandbox and the community page.
- Authors: The article credits Chris Rickman as the Principal Software Engineer of Semantic Kernel and mentions Nilesh Acharya.