relay.go 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package router
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/labring/aiproxy/core/controller"
  5. "github.com/labring/aiproxy/core/middleware"
  6. )
  7. func SetRelayRouter(router *gin.Engine) {
  8. // https://platform.openai.com/docs/api-reference/introduction
  9. v1Router := router.Group("/v1")
  10. v1Router.Use(middleware.IPBlock, middleware.TokenAuth)
  11. v1betaRouter := router.Group("/v1beta")
  12. v1betaRouter.Use(middleware.IPBlock, middleware.TokenAuth)
  13. modelsRouter := v1Router.Group("/models")
  14. {
  15. modelsRouter.GET("", controller.ListModels)
  16. modelsRouter.GET("/:model", controller.RetrieveModel)
  17. }
  18. // gemini
  19. {
  20. v1Router.POST(
  21. "/models/*model",
  22. controller.Gemini()...,
  23. )
  24. v1betaRouter.POST(
  25. "/models/*model",
  26. controller.Gemini()...,
  27. )
  28. }
  29. dashboardRouter := v1Router.Group("/dashboard")
  30. {
  31. dashboardRouter.GET("/billing/subscription", controller.GetSubscription)
  32. dashboardRouter.GET("/billing/usage", controller.GetUsage)
  33. dashboardRouter.GET("/billing/quota", controller.GetQuota)
  34. }
  35. relayRouter := v1Router.Group("")
  36. {
  37. relayRouter.POST(
  38. "/completions",
  39. controller.Completions()...,
  40. )
  41. relayRouter.POST(
  42. "/chat/completions",
  43. controller.ChatCompletions()...,
  44. )
  45. relayRouter.POST(
  46. "/messages",
  47. controller.Anthropic()...,
  48. )
  49. relayRouter.POST(
  50. "/images/edits",
  51. controller.ImagesEdits()...,
  52. )
  53. relayRouter.POST(
  54. "/images/generations",
  55. controller.ImagesGenerations()...,
  56. )
  57. relayRouter.POST(
  58. "/embeddings",
  59. controller.Embeddings()...,
  60. )
  61. relayRouter.POST(
  62. "/engines/:model/embeddings",
  63. controller.Embeddings()...,
  64. )
  65. relayRouter.POST(
  66. "/audio/transcriptions",
  67. controller.AudioTranscription()...,
  68. )
  69. relayRouter.POST(
  70. "/audio/translations",
  71. controller.AudioTranslation()...,
  72. )
  73. relayRouter.POST(
  74. "/audio/speech",
  75. controller.AudioSpeech()...,
  76. )
  77. relayRouter.POST(
  78. "/rerank",
  79. controller.Rerank()...,
  80. )
  81. relayRouter.POST(
  82. "/moderations",
  83. controller.Moderations()...,
  84. )
  85. relayRouter.POST(
  86. "/parse/pdf",
  87. controller.ParsePdf()...,
  88. )
  89. relayRouter.POST(
  90. "/video/generations/jobs",
  91. controller.VideoGenerationsJobs()...,
  92. )
  93. relayRouter.GET(
  94. "/video/generations/jobs/:id",
  95. controller.VideoGenerationsGetJobs()...,
  96. )
  97. relayRouter.GET(
  98. "/video/generations/:id/content/video",
  99. controller.VideoGenerationsContent()...,
  100. )
  101. relayRouter.POST("/responses",
  102. controller.CreateResponse()...)
  103. relayRouter.GET("/responses/:response_id",
  104. controller.GetResponse()...)
  105. relayRouter.DELETE("/responses/:response_id",
  106. controller.DeleteResponse()...)
  107. relayRouter.POST("/responses/:response_id/cancel",
  108. controller.CancelResponse()...)
  109. relayRouter.GET(
  110. "/responses/:response_id/input_items",
  111. controller.GetResponseInputItems()...)
  112. relayRouter.POST("/images/variations", controller.RelayNotImplemented)
  113. relayRouter.GET("/files", controller.RelayNotImplemented)
  114. relayRouter.POST("/files", controller.RelayNotImplemented)
  115. relayRouter.DELETE("/files/:id", controller.RelayNotImplemented)
  116. relayRouter.GET("/files/:id", controller.RelayNotImplemented)
  117. relayRouter.GET("/files/:id/content", controller.RelayNotImplemented)
  118. relayRouter.POST("/fine_tuning/jobs", controller.RelayNotImplemented)
  119. relayRouter.GET("/fine_tuning/jobs", controller.RelayNotImplemented)
  120. relayRouter.GET("/fine_tuning/jobs/:id", controller.RelayNotImplemented)
  121. relayRouter.POST("/fine_tuning/jobs/:id/cancel", controller.RelayNotImplemented)
  122. relayRouter.GET("/fine_tuning/jobs/:id/events", controller.RelayNotImplemented)
  123. relayRouter.DELETE("/models/:model", controller.RelayNotImplemented)
  124. relayRouter.POST("/assistants", controller.RelayNotImplemented)
  125. relayRouter.GET("/assistants/:id", controller.RelayNotImplemented)
  126. relayRouter.POST("/assistants/:id", controller.RelayNotImplemented)
  127. relayRouter.DELETE("/assistants/:id", controller.RelayNotImplemented)
  128. relayRouter.GET("/assistants", controller.RelayNotImplemented)
  129. relayRouter.POST("/assistants/:id/files", controller.RelayNotImplemented)
  130. relayRouter.GET("/assistants/:id/files/:fileId", controller.RelayNotImplemented)
  131. relayRouter.DELETE("/assistants/:id/files/:fileId", controller.RelayNotImplemented)
  132. relayRouter.GET("/assistants/:id/files", controller.RelayNotImplemented)
  133. relayRouter.POST("/threads", controller.RelayNotImplemented)
  134. relayRouter.GET("/threads/:id", controller.RelayNotImplemented)
  135. relayRouter.POST("/threads/:id", controller.RelayNotImplemented)
  136. relayRouter.DELETE("/threads/:id", controller.RelayNotImplemented)
  137. relayRouter.POST("/threads/:id/messages", controller.RelayNotImplemented)
  138. relayRouter.GET("/threads/:id/messages/:messageId", controller.RelayNotImplemented)
  139. relayRouter.POST("/threads/:id/messages/:messageId", controller.RelayNotImplemented)
  140. relayRouter.GET(
  141. "/threads/:id/messages/:messageId/files/:filesId",
  142. controller.RelayNotImplemented,
  143. )
  144. relayRouter.GET("/threads/:id/messages/:messageId/files", controller.RelayNotImplemented)
  145. relayRouter.POST("/threads/:id/runs", controller.RelayNotImplemented)
  146. relayRouter.GET("/threads/:id/runs/:runsId", controller.RelayNotImplemented)
  147. relayRouter.POST("/threads/:id/runs/:runsId", controller.RelayNotImplemented)
  148. relayRouter.GET("/threads/:id/runs", controller.RelayNotImplemented)
  149. relayRouter.POST(
  150. "/threads/:id/runs/:runsId/submit_tool_outputs",
  151. controller.RelayNotImplemented,
  152. )
  153. relayRouter.POST("/threads/:id/runs/:runsId/cancel", controller.RelayNotImplemented)
  154. relayRouter.GET("/threads/:id/runs/:runsId/steps/:stepId", controller.RelayNotImplemented)
  155. relayRouter.GET("/threads/:id/runs/:runsId/steps", controller.RelayNotImplemented)
  156. }
  157. }