modelconfig.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package controller
  2. import (
  3. "net/http"
  4. "github.com/gin-gonic/gin"
  5. "github.com/labring/sealos/service/aiproxy/middleware"
  6. "github.com/labring/sealos/service/aiproxy/model"
  7. )
  8. func GetModelConfigs(c *gin.Context) {
  9. page, perPage := parsePageParams(c)
  10. _model := c.Query("model")
  11. configs, total, err := model.GetModelConfigs(page, perPage, _model)
  12. if err != nil {
  13. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  14. return
  15. }
  16. middleware.SuccessResponse(c, gin.H{
  17. "configs": configs,
  18. "total": total,
  19. })
  20. }
  21. func GetAllModelConfigs(c *gin.Context) {
  22. configs, err := model.GetAllModelConfigs()
  23. if err != nil {
  24. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  25. return
  26. }
  27. middleware.SuccessResponse(c, configs)
  28. }
  29. type GetModelConfigsByModelsContainsRequest struct {
  30. Models []string `json:"models"`
  31. }
  32. func GetModelConfigsByModelsContains(c *gin.Context) {
  33. request := GetModelConfigsByModelsContainsRequest{}
  34. err := c.ShouldBindJSON(&request)
  35. if err != nil {
  36. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  37. return
  38. }
  39. configs, err := model.GetModelConfigsByModels(request.Models)
  40. if err != nil {
  41. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  42. return
  43. }
  44. middleware.SuccessResponse(c, configs)
  45. }
  46. func SearchModelConfigs(c *gin.Context) {
  47. keyword := c.Query("keyword")
  48. page, perPage := parsePageParams(c)
  49. _model := c.Query("model")
  50. owner := c.Query("owner")
  51. configs, total, err := model.SearchModelConfigs(keyword, page, perPage, _model, model.ModelOwner(owner))
  52. if err != nil {
  53. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  54. return
  55. }
  56. middleware.SuccessResponse(c, gin.H{
  57. "configs": configs,
  58. "total": total,
  59. })
  60. }
  61. type SaveModelConfigsRequest struct {
  62. CreatedAt int64 `json:"created_at"`
  63. UpdatedAt int64 `json:"updated_at"`
  64. *model.ModelConfig
  65. }
  66. func SaveModelConfigs(c *gin.Context) {
  67. var configs []*SaveModelConfigsRequest
  68. if err := c.ShouldBindJSON(&configs); err != nil {
  69. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  70. return
  71. }
  72. modelConfigs := make([]*model.ModelConfig, len(configs))
  73. for i, config := range configs {
  74. modelConfigs[i] = config.ModelConfig
  75. }
  76. err := model.SaveModelConfigs(modelConfigs)
  77. if err != nil {
  78. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  79. return
  80. }
  81. middleware.SuccessResponse(c, nil)
  82. }
  83. func SaveModelConfig(c *gin.Context) {
  84. var config SaveModelConfigsRequest
  85. if err := c.ShouldBindJSON(&config); err != nil {
  86. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  87. return
  88. }
  89. err := model.SaveModelConfig(config.ModelConfig)
  90. if err != nil {
  91. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  92. return
  93. }
  94. middleware.SuccessResponse(c, nil)
  95. }
  96. func DeleteModelConfig(c *gin.Context) {
  97. _model := c.Param("model")
  98. err := model.DeleteModelConfig(_model)
  99. if err != nil {
  100. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  101. return
  102. }
  103. middleware.SuccessResponse(c, nil)
  104. }
  105. func DeleteModelConfigs(c *gin.Context) {
  106. models := []string{}
  107. err := c.ShouldBindJSON(&models)
  108. if err != nil {
  109. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  110. return
  111. }
  112. err = model.DeleteModelConfigsByModels(models)
  113. if err != nil {
  114. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  115. return
  116. }
  117. middleware.SuccessResponse(c, nil)
  118. }
  119. func GetModelConfig(c *gin.Context) {
  120. _model := c.Param("model")
  121. config, err := model.GetModelConfig(_model)
  122. if err != nil {
  123. middleware.ErrorResponse(c, http.StatusOK, err.Error())
  124. return
  125. }
  126. middleware.SuccessResponse(c, config)
  127. }