-
由 Onur ULUSOY 创作于
* New gca * chore: Update run_uv_commands.yml to run servers in the background * feat: Add environment variable setup for OpenAI API key in GitHub Actions workflow * chore: Update run_uv_commands.yml to run tools server and main server concurrently before pre-commit checks * fix: Increase timeout for tool requests to improve reliability * fix: Increase HTTP client timeout from 60s to 600s in function_client.py and mcp_client.py to enhance request reliability * fix: Ensure proper closure of HTTP client session in mcp_tools.py to prevent resource leaks * fix: Improve session management in mcp_tools.py by adding error handling and cleanup for client sessions * fix: Refactor session management in mcp_tools.py to improve error handling and ensure proper cleanup on session termination * refactor: Enhance session management in mcp_tools.py by implementing async context manager for better resource handling and error management * chore: Change GitHub Actions runner from ubuntu-latest to macos-latest for improved compatibility * refactor: Remove timeout decorators from list_tools and call_tool functions in mcp_tools.py to streamline request handling * Enhance timeout handling in mcp_tools.py by adding 30-second timeout decorators to list_tools and call_tool functions, and update GitHub Actions workflow to include a sleep command before running pre-commit checks for improved reliability. * refactor: Remove redundant test cases from test_mcp_client.py to streamline testing process and improve maintainability * test: Normalize string comparisons in test_call.py and add sleep in test_mcp_client.py for improved reliability * Enhance logging and error handling in call_tool function of mcp_tools.py by adding detailed print statements for session initialization and request cancellation. This improves traceability and debugging capabilities during tool calls. * Enhance logging in timeout decorator of api.py by adding print statements to track execution start, success, and timeout events. This improves debugging and traceability for asynchronous function calls. * fix: Update test_mcp_client.py to use localhost URL for tool testing, enhancing test reliability by avoiding external dependencies. * feat: Add /status endpoint to api.py and update test_mcp_client.py to check server status. This enhances the API functionality and improves test reliability by ensuring the correct endpoint is used for tool testing. * test: Update test_call_tool to use localhost URL and assert server status response. This change improves test reliability by ensuring it checks the correct server response instead of an external URL. * feat: Add dill dependency and refactor UpsonicClient to UpsonicServer. Update call method to support enhanced response formats and improve type handling. Remove outdated GitHub Actions workflow and clean up related tests. * fix: Update GitHub Actions workflow to ensure server test commands end with a trailing slash. This change improves consistency in test execution for both server and client tests. * fix: Update GitHub Actions workflow to use pytest for running server and client tests, improving test execution consistency and reliability. * fix: Update test_call_with_env_variable to include environment variable in mcp_servers configuration, enhancing test accuracy and ensuring proper tool execution. * feat: Introduce ToolList response format in test_call.py and enhance tool validation in tests. This update improves the structure of tool responses and ensures accurate assertions for tool presence in the results. * chore: Update pyproject.toml to include TestPyPI configuration and modify GitHub Actions workflow to use a new publishing token. This enhances the package publishing process and allows for testing on TestPyPI. * refactor: Remove UV sync step from GitHub Actions workflow to streamline the publishing process. This change simplifies the workflow by eliminating unnecessary steps, focusing on the build process. * chore: Add PyPI index configuration to pyproject.toml for improved package publishing. This update includes the addition of the main PyPI repository alongside the existing TestPyPI configuration, streamlining the publishing process. * refactor: Rename package from "upsonicai" to "upsonic" and update version to 0.35.0. This change includes modifications across multiple files, including the main server and client scripts, configuration files, and test cases, ensuring consistency in naming and improving overall project structure. * refactor: Simplify server startup by introducing run_server and run_tools_server functions in upsonic.server module. This change replaces the previous main function calls in run_main_server.py and run_tools_server.py, enhancing code clarity and maintainability. Additionally, update uv.lock to ensure consistent package source URLs by appending a trailing slash. * chore: Update dependencies in pyproject.toml and uv.lock to include new packages and versions. Added 'poetry' to the development dependencies and introduced several new packages such as 'build', 'cachecontrol', 'cffi', 'cleo', 'crashtest', 'cryptography', 'dulwich', 'fastjsonschema', 'installer', 'jaraco-classes', 'jaraco-context', 'requests-toolbelt', 'secretstorage', 'tomlkit', 'trove-classifiers', and 'xattr' with their respective versions. This enhances the project's dependency management and ensures compatibility with the latest libraries. * chore: Enhance GitHub Actions workflow for Test Publish process. Updated job names for clarity, added steps for generating a randomized alpha version using Poetry, and streamlined the installation and publishing steps. This improves the overall structure and functionality of the CI/CD pipeline. * chore: Update GitHub Actions workflow to improve development installation step. Changed the build step to use 'uv pip install' with requirements from pyproject.toml, enhancing clarity and ensuring proper dependency installation for development. This aligns with the overall goal of streamlining the CI/CD process. * chore: Update GitHub Actions workflow to include virtual environment setup in development installation step. Changed the installation command to create a virtual environment before installing dependencies from pyproject.toml, improving the development setup process. * chore: Remove 'poetry' from development dependencies in pyproject.toml and update GitHub Actions workflow to install dependencies using 'pip' instead. This change streamlines the development setup process and ensures compatibility with the latest package management practices. * chore: Add optional dependencies section in pyproject.toml for server setup. This update introduces a new section for optional dependencies, including 'fastapi' and 'mcp', enhancing the project's configuration for server-related functionalities. * Update pyproject.toml * Refactor uv.lock to reorganize dependencies. Moved 'server' dependencies to an optional section and restructured 'dev' dependencies for clarity. Added new optional dependencies for server functionality, enhancing project configuration. * Refactor server functionality by renaming run_server to run_main_server for clarity. Introduce a new Storage class for managing configuration values, and implement endpoints for getting and setting configuration in the storage server. This enhances the server's configuration management capabilities and improves code organization. * Add /status endpoint to API for server health check This commit introduces a new endpoint to the FastAPI application that allows users to check the server's status. The endpoint makes an asynchronous HTTP request to a local server and returns a JSON response indicating whether the server is running. If the server is unreachable, it raises an HTTPException with the appropriate status code. This enhancement improves the monitoring capabilities of the server. * Update dependencies and configuration files - Added 'sentry-sdk[opentelemetry]' as a new dependency in pyproject.toml to enhance error tracking and monitoring capabilities. - Introduced optional dependencies for 'sentry-sdk' in the project configuration. - Updated uv.lock to include new packages: 'deprecated', 'importlib-metadata', 'opentelemetry-api', 'opentelemetry-distro', 'opentelemetry-instrumentation', 'opentelemetry-sdk', and 'opentelemetry-semantic-conventions' with their respective versions. - Modified .gitignore to include 'notes.txt' for better file management. * Enhance project configuration and functionality - Added 'toml' and 'pickledb' as dependencies in pyproject.toml to support configuration management. - Introduced new configuration management system using 'pickledb' for storing and retrieving configuration values. - Implemented version retrieval from pyproject.toml in a new get_version.py module. - Added system ID generation and retrieval functionality in system_id.py. - Integrated Sentry SDK for error tracking and monitoring in client and server calls. - Refactored call methods to include Sentry transaction and span for better observability. - Updated imports for consistency across modules. - Removed obsolete test file for cleaner codebase. These changes improve the project's configuration management, error tracking, and overall code organization. * Refactor API client and server configuration handling - Removed debug print statements from the API client in base.py to clean up the code. - Simplified the get_config function in server.py by removing the HTTPException for missing keys, allowing for a more graceful handling of non-existent configuration values. These changes enhance code clarity and improve the handling of configuration retrieval in the server. * Refactor Sentry SDK imports for improved error tracking - Moved Sentry SDK imports to function scope in call.py and storage.py to enhance modularity and reduce global namespace clutter. - This change ensures that Sentry is only imported when needed, improving code organization and potentially reducing startup time. These updates contribute to better observability and maintainability of the codebase. * Update project configuration and server settings - Added 'httpx' as a new dependency in pyproject.toml and updated uv.lock to include it, enhancing HTTP client capabilities. - Modified .gitignore to exclude 'test2.py' for better file management. - Updated server port configurations in __init__.py and test_call.py to improve server accessibility. - Changed localhost references in API client and tools to ensure consistent server communication. These changes improve dependency management, enhance server configuration, and streamline the development process. * Enhance unit test workflow by adding options for syncing all groups and extras - Updated the 'Run UV Sync' command in the unit_tests.yml workflow to include '--all-groups' and '--all-extras' flags, improving the synchronization process for unit tests. This change ensures a more comprehensive testing environment by including all relevant components during the sync operation. * Update GitHub Actions workflow to refine Docker build process - Changed the job name in the test_publisher.yml workflow from "Build and Publish for ARM and AMD" to "Build and Publish for AMD", reflecting a focus on AMD architecture only. This update streamlines the workflow and clarifies the build target. * Enhance unit test workflow by updating UV Sync command - Modified the 'Run UV Sync' command in the unit_tests.yml workflow to include '--all-groups' and '--all-extras' flags. This change improves the synchronization process for unit tests, ensuring a more comprehensive testing environment by including all relevant components during the sync operation. * fix * Update Docker build workflow to target AMD architecture only - Modified the GitHub Actions workflow in test_publisher.yml to focus exclusively on the linux/amd64 platform by removing support for linux/arm64. This change streamlines the build process and clarifies the intended architecture for the Docker image. * Refactor Docker build workflow to include parent directory context - Updated the GitHub Actions workflow in test_publisher.yml to change the working directory to the parent directory before executing the Docker build commands for both AMD and ARM64 platforms. This adjustment ensures that the build context is correctly set, allowing for successful image creation and pushing to the specified tags. * a * fix * Fix * Update Docker build workflow to use 'server_test' tag for both AMD and ARM64 platforms - Modified the GitHub Actions workflow in test_publisher.yml to change the Docker image tags from 'upsonic/server:$VERSION' and 'upsonic/server:$VERSION-ARM64' to 'upsonic/server_test:$VERSION' and 'upsonic/server_test:$VERSION-ARM64', respectively. This change clarifies the purpose of the images being built and ensures consistency in tagging for testing purposes. * Refactor UpsonicServer to UpsonicClient and update imports - Changed the class name from `UpsonicServer` to `UpsonicClient` in `base.py` to better reflect its functionality. - Updated the import statements in `__init__.py` and `test_call.py` to use `UpsonicClient`. - Removed unnecessary print statements in `call.py` to clean up the code. - Added `BaseModel` import to `__init__.py` for better data validation support. * Add TimeoutException and handle request timeout in UpsonicClient * Add LLM model support and exception handling in Upsonic client and server - Introduced NoAPIKeyException and UnsupportedLLMModelException in the client to handle specific error cases. - Updated the Call class to accept an llm_model parameter and pass it in the request data. - Enhanced the server's CallManager to support multiple LLM models (OpenAI and Anthropic) with appropriate API key checks. - Modified the GPT4ORequest model and run_sync_gpt4o function to include llm_model as an optional parameter for better flexibility in requests. * Enhance Upsonic client with task management and response handling - Introduced a new Task class to encapsulate task descriptions and response formats. - Added various response types (ObjectResponse, StrResponse, IntResponse, FloatResponse, BoolResponse, StrInListResponse) for better response handling. - Updated the Call class to accept a Task object instead of a prompt string, improving clarity and structure. - Refactored tests to utilize the new Task class for making calls, ensuring consistency in response handling. * Fix * Update .gitignore and enhance Upsonic client with Tools integration - Added test3.py to .gitignore to exclude it from version control. - Integrated Tools class into UpsonicClient for improved functionality. - Updated import statements in various modules to include Tools, enhancing the overall structure and capabilities of the Upsonic client. * Fix * Fix * Enhance Upsonic client and server with tool registration functionality - Added a decorator to the Tools class for registering functions as tools, allowing for dynamic tool management. - Introduced new API endpoints for adding tools and installing libraries in the server. - Updated the ToolManager to support adding tools via HTTP requests. - Refactored existing functions to improve clarity and maintainability, including changes to library installation commands. - Enhanced response handling in the Task class to return None when no response is available. * fix * Fix * Fix * fix * Fix * Fix * Fix * fix * fix * Fix * Fix * fix * fix * fix * fix * Fix * Fix * Fix * Fix * Fİx * Fix * Fix * Fix * Fix * Fix * Fix * Add context feature * Update call method to accept a list of tasks in addition to a single task * Fix * Fİx * Fix * Fix * Fix * Fix * Fix * Fix * fix * Fix * Fix * Added aws bedrock support * Added computer use tools * Fix * Fix * Fix * Fix * fix * Fix * fix * fix * Fix * Fİx * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * fix * Fix * Fix * Fİx * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Fix * Update README.md * Update README.md * Update README.md * Fix * fix * Update README.md * Update dependency versions in pyproject.toml and uv.lock; specify exact version for psutil and add uv package * Fix * Update README.md * fixes * Update README.md * Update README.md * Update README.md
该项目在 MIT License下获得许可。
进一步了解