Commit Graph

172 Commits

Author SHA1 Message Date
Mahmoud Emad
9ecc2444aa feat: Add Jina client training and classification features
- Added `train` function to the Jina client for training
  classifiers.
- Added `ClassificationTrain` struct to define training
  parameters.
- Added `TrainingExample` struct to represent training data.
- Added `ClassificationTrainOutput` struct for the training
  response.
- Added a new `classification_api.v` module for classifier
  training functionalities.
- Added a new `classify` function to the Jina client for
  classification tasks (currently commented out).
2025-03-11 20:17:35 +02:00
Mahmoud Emad
0e1836c5d0 feat: Add reranking functionality to Jina client
- Added a new `rerank` function to the Jina client for reranking documents.
- Added a new `RerankParams` struct to define parameters for reranking.
- Added unit tests for the new `rerank` function.
- Updated the example script to demonstrate reranking.
- Improved error handling and added more comprehensive logging.
2025-03-11 19:27:01 +02:00
Mahmoud Emad
7965883744 feat: Enhance Jina client with additional embedding parameters
- Add `type_`, `truncate`, and `late_chunking` parameters to the
  `create_embeddings` function for finer control over embedding
  generation. This allows users to specify embedding type,
  truncation method, and whether to apply late chunking.
- Rename model parameter to `model` for clarity and consistency.
- Improve model enum naming for better readability and API consistency.
- Add unit tests for the `create_embeddings` function to ensure
  correct functionality and handle potential errors.
2025-03-11 17:45:55 +02:00
Mahmoud Emad
b006bb1e41 feat: Add create_embeddings function to Jina client
- Added a `create_embeddings` function to the Jina client to
  generate embeddings for given input texts.
- Improved the `create_embeddings` function input parameters
  for better flexibility and error handling.
- Updated `TextEmbeddingInput` struct to handle optional
  parameters for embedding type, truncation type, and late
  chunking.  This improves the flexibility of the embedding
  generation process.
2025-03-11 17:18:47 +02:00
Mahmoud Emad
27c9018c48 fix: Ensure the code compiles and add a test example
- Fixed compilation issues and ensured the code builds successfully
- Created an example to test the client functionality
- Started implementing additional endpoints
2025-03-11 16:49:39 +02:00
9448ae85cf ... 2025-03-11 14:07:16 +01:00
b1453e3580 jina specs 2025-03-11 11:23:58 +01:00
Mahmoud Emad
1f58676278 Merge branch 'development' into development_vfs 2025-02-24 15:32:30 +02:00
0880823576 Merge branch 'development_installers' of github.com:freeflowuniverse/herolib into development_installers 2025-02-19 05:10:45 +03:00
60d6474a42 ... 2025-02-17 08:29:57 +03:00
Mahmoud Emad
ee1ac54dde refactor: Rename crystallib to herolib
- Updated import paths to reflect the renaming of the
  `crystallib` module to `herolib`. This change improves
  consistency and clarity in the project structure.
2025-02-16 13:01:50 +00:00
Mahmoud Emad
147c889b53 feat: Add ZeroDB installer
- Add a new ZeroDB installer to the installers.
2025-02-12 13:44:52 +00:00
timurgordon
f1a4547961 Merge branch 'development' of https://github.com/freeflowuniverse/herolib into development 2025-02-09 17:55:25 +00:00
timurgordon
8ae56a8df6 new 2025-02-09 17:53:16 +00:00
7a6660ebd8 ... 2025-02-09 13:32:34 +01:00
3e309b6379 ... 2025-02-09 12:24:12 +01:00
7b69719f0e ... 2025-02-09 08:55:01 +01:00
1d631fec21 ... 2025-02-09 08:52:42 +01:00
eff269e911 Merge branch 'development' into development_hetzner 2025-02-07 12:55:30 +03:00
e34d804dda ... 2025-02-07 11:59:52 +03:00
133a8c7441 Merge branch 'development_kristof10' into development
# Conflicts:
#	.github/workflows/build_and_test.yml
#	.github/workflows/hero_build_linux.yml
#	.github/workflows/hero_build_macos.yml
#	install_herolib.vsh
#	install_v.sh
#	workflows/hero_build_macos.yml
2025-02-07 11:20:20 +03:00
a66ef2e8b3 ... 2025-02-06 21:09:20 +03:00
f4f5eb06a4 location fixed for postgresql client 2025-02-06 07:15:32 +03:00
54cfd4c353 feat: add ip-api client
- Add a new ip-api client to the project.
- This client uses the ip-api.com API to get IP information.
- An example is provided in `examples/develop/ipapi`.

Co-authored-by: mahmmoud.hassanein <mahmmoud.hassanein@gmail.com>
2025-02-02 18:04:00 +02:00
749fa94312 feat: Add WireGuard installer
- Add a new WireGuard installer to the project.
- This installer handles installation and uninstallation of WireGuard.

Co-authored-by: mahmmoud.hassanein <mahmmoud.hassanein@gmail.com>
2025-02-02 15:20:57 +02:00
c27fcc6983 fix: WireGuard client improvements
- Updated WireGuard client to use `wg-quick` instead of `sudo wg-quick`.
- Improved error handling in WireGuard client.
- Added `sudo` to `wg show` command for proper permissions.
- Updated example `wireguard.vsh` script to reflect changes.
- Added a new `wg0.conf` file for the WireGuard configuration.
- Resolved the issue where the script wasn't finding the configuration file.

Co-authored-by: mahmmoud.hassanein <mahmmoud.hassanein@gmail.com>
2025-02-02 14:59:05 +02:00
Mahmoud Emad
7bd997e368 feat: Add WireGuard client
- Add a WireGuard client to the project.
- New utility functions have been added to parse the output of `wg show` command and improve error handling.
- Add start, down, show, show_config, generate_private_key, and get_public_key method to interact with the wg binary.
- Created a new example file to offer more clear usage.

Co-authored-by: mariobassem12 <mariobassem12@gmail.com>
2025-02-02 14:41:21 +02:00
Mahmoud Emad
d803a49a85 feat: Add WireGuard client support
- Add a new WireGuard client to the project.
- Includes a factory, model, and basic client functionality.

Co-authored-by: mariobassem12 <mariobassem12@gmail.com>
2025-02-02 12:52:42 +02:00
74ab68d05f ... 2025-01-31 15:39:44 +03:00
Mahmoud Emad
77809423fd feat: add VastAI instance management functions
- Added functions to manage VastAI instances:
- `attach_sshkey_to_instance`
- `stop_instance`
- `destroy_instance`
- `launch_instance`
- `start_instances`
- `start_instance`
- Updated example to demonstrate new functions.

Co-authored-by: mariobassem12 <mariobassem12@gmail.com>
2025-01-26 12:44:52 +02:00
34b1aad175 feat: Add VastAI client
- Add a new VastAI client to the project.
- This client allows users to search for and create GPU instances on VastAI.
- It uses the VastAI API to interact with the platform.
- Includes functionality for searching offers, getting top offers, and creating instances.

Co-authored-by: mahmmoud.hassanein <mahmmoud.hassanein@gmail.com>
2025-01-23 19:22:39 +02:00
d4d3713cad Merge pull request #33 from freeflowuniverse/development_runpod
Development runpod
2025-01-23 17:23:47 +02:00
01fff39e41 refactor: improve runpod client
- Refactor RunPod client to use environment variables for API key.
- Update RunPod example script to reflect changes.
- Remove unused gql_builder.v file.
- Update README.md to reflect changes.
- Improve error handling and logging.
- Use json2 for JSON encoding/decoding.
- Update dependencies.
- Implemented more endpoints for managing pods.

Co-authored-by: mahmmoud.hassanein <mahmmoud.hassanein@gmail.com>
2025-01-23 16:17:12 +02:00
timurgordon
ac19671469 add env vars for livekit tests 2025-01-23 13:07:35 +00:00
timurgordon
02128e69ba fix livekit compilation 2025-01-23 00:59:02 +00:00
timurgordon
885c4d9b32 remove inline sum types 2025-01-23 00:52:19 +00:00
timurgordon
12db34ddb0 remove panic from test 2025-01-23 00:31:05 +00:00
timurgordon
915951d84f fix mailclient compilation 2025-01-22 23:56:13 +00:00
timurgordon
b3509611a2 move livekit client to herolib 2025-01-22 23:55:18 +00:00
Mahmoud Emad
6f9d570a93 WIP: refactor RunPod client
- Refactor RunPod client to use a new GraphQL builder.
- This improves the readability and maintainability of the code.
- The old `build_query` function was removed, and the new
- `QueryBuilder` struct is now used.  This allows for a more
- flexible and extensible approach to constructing GraphQL
- queries.  The example in `runpod_example.vsh` is now
- commented out until the new GraphQL builder is fully
- implemented.

Co-authored-by: mariobassem12 <mariobassem12@gmail.com>
2025-01-22 20:35:50 +02:00
Mahmoud Emad
7486d561ec feat: update runpod example and client
- Update the RunPod example to use a new API key and
- reduce resource allocation for pods.
- Added stop pod functionality to the RunPod client and example.
- Updated the RunPod client to use new API endpoints.
- Updated the base URL for the RunPod client.
- Added authorization header to HTTP client.

Co-authored-by: mariobassem12 <mariobassem12@gmail.com>
2025-01-21 15:54:48 +02:00
Mahmoud Emad
50116651de feat: Add spot pod start and improved error handling
- Added functionality to start spot pods using the RunPod API.
- Improved error handling and clarity in the RunPod client.
- Added more detailed comments to the code for better readability.
- Refactored the HTTP client and utils to improve modularity.
- Updated example to demonstrate spot pod creation and starting.

Co-authored-by: mariobassem12 <mariobassem12@gmail.com>
2025-01-21 12:38:25 +02:00
Mahmoud Emad
3fe350abe9 feat: Add RunPod start and improved pod creation
- Added a new `start_on_demand_pod` function to the RunPod client.
- Improved the `create_on_demand_pod` function to handle nested machine structure in the response.
- Updated the example to use the new functions and handle the new response structure.
- Updated the API key for the example.
- Added more descriptive field names in the `create_on_demand_pod` input.

Co-authored-by: mariobassem12 <mariobassem12@gmail.com>
2025-01-21 11:32:38 +02:00
Mahmoud Emad
9e51604286 feat: enhance RunPod example with detailed pod creation
- Added more options to the RunPod example, including:
- `cloud_type`, `gpu_count`, `volume_in_gb`,
- `container_disk_in_gb`, `min_vcpu_count`,
- `min_memory_in_gb`, `gpu_type_id`, `ports`, and
- `volume_mount_path`.  This provides a more
- comprehensive demonstration of RunPod's capabilities.
- Updated the example to create an on-demand pod with
- specified resources and settings.  The spot pod
- creation remains largely unchanged.  Improved the
- clarity and completeness of the example.  Removed
- commented-out code for better readability.  Also
- updated the `PodFindAndDeployOnDemandRequest` struct
- to remove default values, allowing for more flexible
- pod configurations.

Co-authored-by: mariobassem12 <mariobassem12@gmail.com>
2025-01-21 11:03:33 +02:00
Mahmoud Emad
309496ef5d feat: Add RunPod client
- Added a new RunPod client to the project.
- Updated the example to use the new client.
- Improved error handling in the client.
- Refactored the code for better readability.

Co-authored-by: mariobassem12 <mariobassem12@gmail.com>
2025-01-21 10:50:07 +02:00
4422d67701 wip: add spot pod creation
- Add support for creating spot pods using the RunPod API.
- Implement `create_spot_pod` function in the `RunPod` client.
- Refactor RunPod client to handle different query types and response structures.
- Improve error handling and logging for GraphQL requests.
- Update example to demonstrate spot pod creation.

Co-authored-by: mahmmoud.hassanein <mahmmoud.hassanein@gmail.com>
2025-01-20 21:34:16 +02:00
Mahmoud Emad
d54a1e5a34 refactor: improve RunPod client
- Refactor RunPod client to use generics for requests and
responses.
- This improves code readability and maintainability.
- Remove redundant code for building GraphQL queries and
handling HTTP requests.
- Add support for environment variables in pod creation.
- Update example with new API key and environment variables.

Co-authored-by: supermario <mariobassem12@gmail.com>
2025-01-20 15:02:05 +02:00
Mahmoud Emad
0d2307acc8 feat: add RunPod client
- Add a new RunPod client to the project.
- This client allows users to interact with the RunPod API to create and manage pods.
- Includes example usage and configuration options.
2025-01-19 22:20:47 +02:00
da2881f973 refactor: improve rclone client factory
- Refactor the rclone client factory to improve its
  organization and functionality.
- Add support for multiple rclone instances with named
  instances.

Co-authored-by: mahmmoud.hassanein <mahmmoud.hassanein@gmail.com>
2025-01-12 18:31:16 +02:00
67fc3b4a99 feat: improve OpenAI client
- Updated the OpenAI client to use environment variables for API keys.
- Improved the configuration and management of OpenAI clients.
- Added retry mechanism to HTTP requests for improved reliability.

Co-authored-by: mahmmoud.hassanein <mahmmoud.hassanein@gmail.com>
2025-01-12 16:33:48 +02:00