codeproject / CodeProject.AI-Server

CodeProject.AI Server is a self contained service that software developers can include in, and distribute with, their applications in order to augment their apps with the power of AI.
Other
635 stars 143 forks source link

Wish: Ability to specify module to use in post parameter #112

Open VorlonCD opened 4 months ago

VorlonCD commented 4 months ago

Hello!

First, if I have for example YOLOv5 6.2, YOLOv5 .NET and YOLOv8 modules installed, how is the module selected when I POST? I'm guessing if one is in use it will go to the next? Or is it like I see in your mesh code where it tried to always use the fastest one first?

Issue: When I post http://127.0.0.1:32168/v1/vision/custom/ipcam-animal I will (I think randomly) get this error response:

{"success":false,"error":"Unable to create YOLO detector for model ipcam-animal","moduleId":"ObjectDetectionYOLOv8","moduleName":"Object Detection (YOLOv8)","code":500,"command":"custom","requestId":"2538e33e-9a7f-4718-aeb2-8f1c6607a0cc","inferenceDevice":"GPU","analysisRoundTripMs":97,"processedBy":"localhost","timestampUTC":"Tue, 28 May 2024 19:14:40 GMT"}

This of course does not happen if I only have YOLOv5 6.2 module enabled.

If there is not already a way to accomplish this I missed (modulesettings.json?) I would like either:

  1. In addition to the existing min_confidence parameter, add the ability to specify moduleId in the post json. This could be a comma separated list of modules that CAN process ipcam-animal. (I think there is more than one that can, right?)
  2. Or a setting on the server to disallow ipcam-animal from being processed by modules it does not support

Using AITOOL I'll often wait for combined results of the regular detection + ipcam-animal for more accurate results. And its MUCH faster processing when multiple modules are enabled.

Thanks!