AIModelService.php 1009 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Services;
  3. use App\Models\AiModel;
  4. use App\Http\Resources\AiModelResource;
  5. use App\Tools\RedisClusters;
  6. class AIModelService
  7. {
  8. public function getModelsById($id)
  9. {
  10. $table = AiModel::whereIn('uid', $id);
  11. $result = $table->get();
  12. return AiModelResource::collection(resource: $result);
  13. }
  14. public function getModelById($id)
  15. {
  16. $result = AiModel::where('uid', $id)
  17. ->first();
  18. return new AiModelResource(resource: $result);
  19. }
  20. public function getSysModels($type = null)
  21. {
  22. if (empty($type)) {
  23. $types = ['wbw', 'chat', 'summarize'];
  24. } else {
  25. $types = [$type];
  26. }
  27. $sysModels = [];
  28. foreach ($types as $key => $type) {
  29. $sysModels[$type] = $this->getModelsById(RedisClusters::get('/ai/model/system/' . $type) ?? []);
  30. }
  31. if (!empty($type)) {
  32. return $sysModels[$type];
  33. }
  34. return $sysModels;
  35. }
  36. }