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.
https://codeproject.github.io/codeproject.ai
Other
730 stars 159 forks source link

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

Open VorlonCD opened 5 months ago

VorlonCD commented 5 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!