miniAutoGen
miniAutoGen copied to clipboard
[Feature] Flexibility in ChatStorage Data Storage System
Detailed Description:
- Currently, the data storage system for messages in our project exclusively uses SQLite through SQLAlchemy. While efficient, this approach limits scalability and flexibility as it restricts the possibility of using other databases or even choosing not to use a database at all. The proposal is to modify the
ChatStorageclass to allow the use of different data storage systems, including the option of not using a database, depending on the specific project or environment needs.
Reproduction Steps (if applicable):
- Not applicable, as this is a proposal for improving the system architecture.
Solution Proposals:
- Generic Storage Interface: Create a generic storage interface that can be implemented by different storage systems, such as SQL and NoSQL databases, or even in-memory or file-based storage, such as JSON, Parquet, etc.
- Diverse Implementations: Develop multiple implementations of this interface to support different storage systems.
- Dynamic Configuration: Allow the storage type to be configured dynamically, possibly through a configuration file or environment variables.
- Documentation Update: Update the documentation to reflect the new storage capabilities and provide instructions on how to configure and use different storage systems.
Acceptance Criteria:
- The
ChatStorageclass should be able to support different storage systems. - It should be possible to configure the storage system without modifying the source code.
- Existing functionality should be maintained for users who continue to use SQLite.
- The documentation should be clear and guide how to use different storage systems.