PandasAI v1 is here 🎉
We are thrilled to unveil a significant milestone – the release of PandasAI version 1! This achievement is the culmination of weeks of dedicated effort. In this version, we've introduced numerous changes, some of which may be breaking. The primary goal is to streamline the analysis process, allowing for more concise code and an even more user-friendly experience with PandasAI. Beyond its immediate enhancements, this release also lays the groundwork for an array of exciting upcoming features. Stay tuned for what's in store!
What's Changed
👉 Added `SmartDataframe` and `SmartDatalake`. A `SmartDataframe` is a wrapper around either a pandas or polars dataframes that inherits all the properties and methods from the original dataframe, but also extends it with a `.chat()` method and all the shortcuts to allow conversational data analysis. In a similar way, a `SmartDatalake` accepts multiple dataframes.
👉 Add support for polars dataframes (beta)
👉 Add support for memory and multi-turn capability. The smart dataframe keeps track of the previous questions.
👉 Easily import from file or url as one instantiate a SmartDataframe
👉 Refactored the prompt to use "programmatic prompt", a technique that passes a skeleton of a python method and instructs the model about how to generate the code to answer the query
👉 Refactored the code to be more domain-specific classes. For example, the code generated is now manager by a dedicate `CodeManager` class. Same for the logs.
👉 Unified the prompt for single and multiple dfs, so that now only one prompt fits both the use cases.
👉 Support for project settings. You can now configure your LLMs and default settings on a `pandasai.json` configuration file, so that you can easily use PandasAI without having to pass all the configurations every time.
**Full Changelog**: https://github.com/gventuri/pandas-ai/compare/v0.8.3...v1.0