Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Agents #5

Merged
merged 16 commits into from
Jan 17, 2025
Merged

Agents #5

merged 16 commits into from
Jan 17, 2025

Conversation

MaiaJP-AIXplain
Copy link
Collaborator

@MaiaJP-AIXplain MaiaJP-AIXplain commented Jan 17, 2025

Overview

This merge request introduces several enhancements, fixes, and refactoring efforts to improve the functionality and reliability of the aiXplainKit. Key changes include enabling interaction with Agents and Agent Teams, refining the error handling mechanism, expanding functionality in Models and UtilityModels, and improving test coverage and documentation.

Key Changes

  1. Agent and Agent Team Interaction

• [8e92e0b] Enabled interaction with Agents and Agent Teams via aiXplainKit.

• [d99ddfb] Added the capability to list all Agents associated with a user.

  1. Error Handling Enhancements

• [933ec0c] Enhanced error handling within the Agents module and updated corresponding tests.

• [a27adb9] Added a new utility model and refined error handling mechanisms.

• [4f23a46] Improved error handling and documentation for Agents and UtilityModels.

  1. Functionality Expansion

• [7e78746] Expanded Agent and Model functionality with additional tools and error handling improvements.

• [598e482] Enhanced Model and UtilityModel functionality by introducing new parameters and refining error handling.

• [bb1c2da] Improved ModelQuery and networking functionality, including sorting and function retrieval features.

• [0698889] Refactored UtilityModel and input handling for enhanced usability.

  1. Code Refactoring and Accessibility

• [8b4a853] Made FunctionResponse properties public for better accessibility.

• [8e51934] Updated Function properties to be public and removed unused FunctionResponse struct for code simplification.

• [7dcc711] Refactored APIKeyManager and tool structures to improve flexibility and documentation.

  1. Test Updates and Maintenance

• [92c81eb] Fixed unit tests for Models.

• [b494433] Updated tests for Agents and Models to include new identifiers and descriptions.

  1. Integration Updates

• [d708d3e] Merged changes from ENG-1458-Improve-Search-Interface.

• [9f11f08] Merged changes from ENG-1320-Build-Deploy-Agents.

Additional Notes

• This merge request provides a solid foundation for future enhancements, with improved functionality, better test coverage, and streamlined error handling.

• The changes aim to ensure a more robust and flexible experience for users interacting with aiXplainKit.

Testing and Validation

• Unit tests were updated and fixed to cover the new and existing functionality.

• Comprehensive validation was performed to ensure seamless interaction with Agents, Models, and UtilityModels.

Related Issues

• ENG-1320: Build and Deploy Agents

• ENG-1458: Improve Search Interface

MaiaJP-AIXplain and others added 16 commits November 22, 2024 16:20
- Added `invalidInput` case to `AgentsError` enum to handle invalid input scenarios.
- Updated the `run` method in the `Agent` class to throw `invalidInput` errors for exceeding content limits and empty queries.
- Removed outdated `AgentsFunctionTests` and added new tests for agent functionality, including input validation and error handling.
- Introduced `AgentOutputTests` to validate decoding and encoding of agent output, ensuring robustness against various input scenarios.
- Updated `ModelFunctionalTests` to reflect changes in model identifiers and pricing structure.
- Adjusted mock responses to align with recent API changes.
- Introduced new `UtilityModel` and `UtilityModelInput` classes to represent utility models and their inputs.
- Added new error cases in `ModelError` for better error handling: `noResponse`, `missingModelUtilityID`, and `modelUtilityCreationError`.
- Updated `Networking` to include a new endpoint for utilities.
- Implemented `createUtilityModel` method in `ModelProvider` for creating utility models with proper error handling.
- Enhanced localized error descriptions for improved debugging and user feedback.
…error handling

- Added `ModelParameter` struct to represent model parameters with properties and constraints.
- Updated `Model` class to include mutable properties for `name`, `supplier`, and `version`.
- Introduced `UtilityModelInputInformation` class to replace `UtilityModelInput`, enhancing input representation.
- Enhanced `UtilityModel` to initialize from `Model`, mapping parameters to inputs.
- Added new error case `failToCallModelExecuteFromUtility` in `ModelError` for improved error handling during model execution.
- Updated `ModelOutput` to include `stdout` and `stderr` for capturing execution output and errors.
- Adjusted `createUtilityModel` method in `ModelProvider` to accommodate new input structure.
- Introduced `UtilityModelInput` enum to represent different input types (text, number, boolean) with an encoding method.
- Updated `UtilityModel` initializer to accept `UtilityModelInput` instead of `UtilityModelInputInformation`, enhancing input flexibility.
- Adjusted `createUtilityModel` method in `ModelProvider` to accommodate the new input structure, ensuring better integration with the updated model design.
- Introduced `unableToUpdateModelUtility` error case in `ModelError` for improved error reporting during model updates.
- Updated `Agent` class to include a mutable `status` property and added `assets` array to manage associated tools.
- Implemented CRUD operations for `Agent` in a new `Agents+CRUD` extension, allowing for deployment, addition of tools, and updates.
- Created `CreateAgentTool` enum to facilitate the conversion of various tool types into a standardized `Tool` format.
- Added `convertToTool` methods in `Model`, `Pipeline`, and `UtilityModel` to support tool conversion.
- Enhanced `UtilityModel` with an `update` method for better management of utility model updates.
- Introduced `AgentProvider` and `ModelProvider` classes for backend interaction, including fetching and creating agents and models.
- Added comprehensive error handling and logging throughout the new functionalities for better debugging and user feedback.
- Added new error cases `errorOnDelete` and `errorOnUpdate` to `AgentsError` for improved error reporting during agent deletion and update operations.
- Updated `Agents+CRUD` extension with detailed documentation for `deploy`, `appendTools`, `update`, and `delete` methods, enhancing clarity on their functionality and usage.
- Improved `Tool` struct with additional properties and documentation for better representation of tools used by agents.
- Refactored `UtilityModelInput` and `UtilityModelInputInformation` to include comprehensive documentation, clarifying their roles in input handling for utility models.
- Enhanced error handling in `UtilityModel` and `UtilityModelInput` to ensure robust interaction with the server and improved user feedback.
…nd documentation

- Updated `APIKeyManager` to load backend and models run URLs from environment variables, with fallbacks to default values.
- Made `id` property in `Tool` struct public for better accessibility.
- Enhanced documentation for methods and properties across the affected files to clarify functionality and usage.
- Added new functional tests for agent creation and model interactions to ensure robust functionality and error handling.
- Changed asset IDs in `AgentBuildingTests` to reflect updated resources.
- Enhanced input descriptions in `createUtilityModel` method for clarity.
- Updated agent retrieval in `AgentsFunctionTests` with a new identifier.
- Improved input descriptions in `ModelUtilityFunctionTests` for better understanding of test parameters.
… features

- Updated `ModelQuery` to include optional sorting parameters (`sortBy` and `sortOrder`) for enhanced query customization.
- Refactored the initializer of `ModelQuery` to accommodate new sorting options and improved documentation for clarity.
- Added new `SortByParameter` and `SortOrderParameter` enums to define sorting criteria and order.
- Introduced a new endpoint in `Networking` for functions, allowing retrieval of available functions.
- Implemented `listFunctions` method in `ModelProvider` to fetch and decode a list of functions from the backend, enhancing functionality for model interactions.
Enhance ModelQuery and Networking with sorting and function retrieval…
@MaiaJP-AIXplain MaiaJP-AIXplain merged commit dc897c2 into main Jan 17, 2025
@MaiaJP-AIXplain MaiaJP-AIXplain self-assigned this Jan 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant