imeeting/backend/src/main/java/com/imeeting/controller/android/AndroidLlmModelController.java

58 lines
2.5 KiB
Java

package com.imeeting.controller.android;
import com.imeeting.dto.android.AndroidAuthContext;
import com.imeeting.dto.biz.AiModelVO;
import com.imeeting.service.android.AndroidAuthService;
import com.imeeting.service.biz.AiModelService;
import com.imeeting.support.AndroidRequestLogHelper;
import com.unisbase.common.ApiResponse;
import com.unisbase.dto.PageResult;
import com.unisbase.security.LoginUser;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Tag(name = "Android模型接口")
@RestController
@RequestMapping("/api/android/llm-models")
@RequiredArgsConstructor
@Slf4j
public class AndroidLlmModelController {
private final AndroidAuthService androidAuthService;
private final AiModelService aiModelService;
@Operation(summary = "查询启用的大模型列表")
@ApiResponses({
@io.swagger.v3.oas.annotations.responses.ApiResponse(
responseCode = "200",
description = "返回当前租户下启用的大语言模型列表",
content = @Content(array = @ArraySchema(schema = @Schema(implementation = AiModelVO.class)))
)
})
@GetMapping("/active")
public ApiResponse<List<AiModelVO>> activeModels(HttpServletRequest request) {
AndroidRequestLogHelper.logRequest(log, "Android模型", "查询启用大模型列表接口");
AndroidAuthContext authContext = androidAuthService.authenticateHttp(request);
LoginUser loginUser = AndroidLoginUserSupport.requireLoginUser(authContext);
PageResult<List<AiModelVO>> result = aiModelService.pageModels(1, 1000, null, "LLM", loginUser.getTenantId(), false);
List<AiModelVO> enabledModels = result.getRecords() == null
? List.of()
: result.getRecords().stream()
.filter(item -> Integer.valueOf(1).equals(item.getStatus()))
.toList();
return ApiResponse.ok(enabledModels);
}
}