1.1.41
kyegomez/swarms1.1.41Aug 3, 2023by kyegomez
AI Summary
Focus on stability, testing, and tools. Added CodeInterpreterTool and improved error handling.
Key Highlights
- CodeInterpreterTool class added
- Enhanced GooglePalm with retry logic
- Comprehensive unit tests added
- GitHub Actions CI pipeline added
New Features
- CodeInterpreterTool (sync/async)
- GooglePalm enhancements (optional params, retry logic)
- Unit tests for OmniWorkerAgent and MultiModalVisualAgentTool
- WorkerNode argument fixes
- WorkerUltraNode error handling improvements
Full Release Notes
# Changelog ## [Unreleased] ### Added - Added `CodeInterpreterTool` class to adhere to the provided `Tool` abstract base class. This new tool has flexible and reliable error handling and supports both synchronous and asynchronous operations. - Enhanced `GooglePalm` class by making optional parameters for user inputs. This improves customization and flexibility. - Comprehensive unit tests for the `OmniWorkerAgent` class have been added. - Pytest fixtures and parameterization in unit tests to improve code reuse and readability. - Improved code readability in the `MultiModalVisualAgentTool` class and added comprehensive unit tests. - Enhanced the `WorkerUltraNode` and `WorkerUltraNodeInitializer` classes' test coverage by adding more test cases and edge cases. - A GitHub Actions workflow file has been added to automatically run pytest tests upon each `push` event. This CI pipeline ensures the reliability of the codebase by preventing merging of breaking changes into the main branch. ### Fixed - Improved error handling for the `GooglePalm` class by incorporating exponential backoff retry logic to handle network and API-related issues. - Fixed missing prompt arguments by transforming message objects to the dictionary format in `GooglePalm`. - Unexpected Argument Error in `WorkerNode` has been fixed. The `WorkerNode` class was not expecting a `worker_name` argument which was passed to it during the initialization of the `HierarchicalSwarm` class. This bug was fixed by either removing the `worker_name` argument from the `WorkerNode` initialization in the `HierarchicalSwarm` class or by modifying the `__init__` method of the `WorkerNode` class to accept the `worker_name` argument. - Fixed incorrect parameter type checking in `OmniWorkerAgent` class, methods now correctly validate types for required arguments. The method `chat` also now properly checks for `api_key`, `api_endpoint`, and `api_type`. - Updated `MultiModalVisualAgentTool` class tests, the `_run` method was not being properly tested, as it was not being invoked with correct arguments. - Fixed `WorkerUltraNode` class to handle invalid initialization arguments properly. Added appropriate type checking and error handling for better robustness. - Improved error handling in `WorkerUltraNodeInitializer` class. Now, all methods have try-catch blocks to handle unexpected errors gracefully and provide useful error messages. ## [1.1.2] - 2023-07-30 ### Added - Initial creation of the `GooglePalm` class, a wrapper around the Google's PaLM Chat API. - `Tool` abstract base class for creating tool-like objects with a consistent interface. - `CodeInterpreterSession` example usage in both synchronous and asynchronous manners. ### Improvements - Better error messages and exception handling have been added to inform the user about issues more precisely. For example, included checks and corresponding error messages for invalid inputs for API keys, invalid objectives, failed vectorstore initialization, and so on. - The documentation and descriptions for classes and methods have been improved, providing a clearer understanding of what each class and method does, and what arguments they accept. - Improved the initialization of resources like `llm_class` and `tools` in the `WorkerNode` class, making the code more robust and easy to understand.