Documentation
¶
Index ¶
- Constants
- Variables
- func AddChannel(c *gin.Context)
- func AddChannels(c *gin.Context)
- func AddGroupToken(c *gin.Context)
- func AddOneAPIChannel(ch OneAPIChannel) error
- func AudioSpeech() []gin.HandlerFunc
- func AudioTranscription() []gin.HandlerFunc
- func AudioTranslation() []gin.HandlerFunc
- func AutoTestBannedModels()
- func BuiltinModels(c *gin.Context)
- func ChannelBuiltinModels(c *gin.Context)
- func ChannelBuiltinModelsByType(c *gin.Context)
- func ChannelDefaultModelsAndMapping(c *gin.Context)
- func ChannelDefaultModelsAndMappingByType(c *gin.Context)
- func ChannelTypeMetas(c *gin.Context)
- func ChannelTypeNames(c *gin.Context)
- func ChatCompletions() []gin.HandlerFunc
- func ClearAllModelErrors(c *gin.Context)
- func ClearChannelAllModelErrors(c *gin.Context)
- func ClearChannelModelErrors(c *gin.Context)
- func Completions() []gin.HandlerFunc
- func CreateGroup(c *gin.Context)
- func DeleteChannel(c *gin.Context)
- func DeleteChannels(c *gin.Context)
- func DeleteGroup(c *gin.Context)
- func DeleteGroupModelConfig(c *gin.Context)
- func DeleteGroupModelConfigs(c *gin.Context)
- func DeleteGroupToken(c *gin.Context)
- func DeleteGroupTokens(c *gin.Context)
- func DeleteGroups(c *gin.Context)
- func DeleteHistoryLogs(c *gin.Context)
- func DeleteModelConfig(c *gin.Context)
- func DeleteModelConfigs(c *gin.Context)
- func DeleteToken(c *gin.Context)
- func DeleteTokens(c *gin.Context)
- func Edits() []gin.HandlerFunc
- func Embeddings() []gin.HandlerFunc
- func EnabledModels(c *gin.Context)
- func GetAllBannedModelChannels(c *gin.Context)
- func GetAllChannelModelErrorRates(c *gin.Context)
- func GetAllChannels(c *gin.Context)
- func GetAllModelConfigs(c *gin.Context)
- func GetChannel(c *gin.Context)
- func GetChannelModelErrorRates(c *gin.Context)
- func GetChannels(c *gin.Context)
- func GetDashboard(c *gin.Context)
- func GetGroup(c *gin.Context)
- func GetGroupDashboard(c *gin.Context)
- func GetGroupDashboardModels(c *gin.Context)
- func GetGroupLogDetail(c *gin.Context)
- func GetGroupLogs(c *gin.Context)
- func GetGroupModelConfig(c *gin.Context)
- func GetGroupModelConfigs(c *gin.Context)
- func GetGroupModelCostRank(c *gin.Context)
- func GetGroupToken(c *gin.Context)
- func GetGroupTokens(c *gin.Context)
- func GetGroupUsedModels(c *gin.Context)
- func GetGroupUsedTokenNames(c *gin.Context)
- func GetGroups(c *gin.Context)
- func GetIPGroupList(c *gin.Context)
- func GetLogDetail(c *gin.Context)
- func GetLogs(c *gin.Context)
- func GetModelConfig(c *gin.Context)
- func GetModelConfigs(c *gin.Context)
- func GetModelConfigsByModelsContains(c *gin.Context)
- func GetModelCostRank(c *gin.Context)
- func GetModelsErrorRate(c *gin.Context)
- func GetOption(c *gin.Context)
- func GetOptions(c *gin.Context)
- func GetRandomChannel(mc *model.ModelCaches, availableSet []string, modelName string, ...) (*model.Channel, []*model.Channel, error)
- func GetStatus(c *gin.Context)
- func GetSubscription(c *gin.Context)
- func GetToken(c *gin.Context)
- func GetTokens(c *gin.Context)
- func GetUsage(c *gin.Context)
- func GetUsedModels(c *gin.Context)
- func GetUsedTokenNames(c *gin.Context)
- func ImagesGenerations() []gin.HandlerFunc
- func ImportChannelFromOneAPI(c *gin.Context)
- func ListModels(c *gin.Context)
- func Moderations() []gin.HandlerFunc
- func NewMetaByContext(c *gin.Context, channel *model.Channel, mode mode.Mode, opts ...meta.Option) *meta.Meta
- func NewRelay(mode mode.Mode) func(c *gin.Context)
- func ParsePdf() []gin.HandlerFunc
- func RelayHelper(meta *meta.Meta, c *gin.Context, handel RelayHandler) (*controller.HandleResult, bool)
- func RelayNotImplemented(c *gin.Context)
- func Rerank() []gin.HandlerFunc
- func RetrieveModel(c *gin.Context)
- func SaveGroupModelConfig(c *gin.Context)
- func SaveGroupModelConfigs(c *gin.Context)
- func SaveModelConfig(c *gin.Context)
- func SaveModelConfigs(c *gin.Context)
- func SearchChannels(c *gin.Context)
- func SearchConsumeError(c *gin.Context)
- func SearchGroupLogs(c *gin.Context)
- func SearchGroupTokens(c *gin.Context)
- func SearchGroups(c *gin.Context)
- func SearchLogs(c *gin.Context)
- func SearchModelConfigs(c *gin.Context)
- func SearchTokens(c *gin.Context)
- func SortBuiltinModelConfigsFunc(i, j *BuiltinModelConfig) int
- func TestAllChannels(c *gin.Context)
- func TestChannel(c *gin.Context)
- func TestChannelModels(c *gin.Context)
- func UpdateAllChannelsBalance(c *gin.Context)
- func UpdateChannel(c *gin.Context)
- func UpdateChannelBalance(c *gin.Context)
- func UpdateChannelStatus(c *gin.Context)
- func UpdateChannelsBalance(frequency time.Duration)
- func UpdateGroup(c *gin.Context)
- func UpdateGroupModelConfig(c *gin.Context)
- func UpdateGroupModelConfigs(c *gin.Context)
- func UpdateGroupRPMRatio(c *gin.Context)
- func UpdateGroupStatus(c *gin.Context)
- func UpdateGroupTPMRatio(c *gin.Context)
- func UpdateGroupToken(c *gin.Context)
- func UpdateGroupTokenName(c *gin.Context)
- func UpdateGroupTokenStatus(c *gin.Context)
- func UpdateGroupsStatus(c *gin.Context)
- func UpdateOption(c *gin.Context)
- func UpdateOptionByKey(c *gin.Context)
- func UpdateOptions(c *gin.Context)
- func UpdateToken(c *gin.Context)
- func UpdateTokenName(c *gin.Context)
- func UpdateTokenStatus(c *gin.Context)
- type AddChannelRequest
- type AddTokenRequest
- type BuiltinModelConfig
- type ChannelConfig
- type CreateGroupRequest
- type GetModelConfigsByModelsContainsRequest
- type GetRequestPrice
- type GetRequestUsage
- type GroupResponse
- type ImportChannelFromOneAPIRequest
- type OneAPIChannel
- type OpenAIModelPermission
- type OpenAIModels
- type RelayController
- type RelayHandler
- type SaveGroupModelConfigRequest
- type SaveModelConfigsRequest
- type StatusData
- type TestResult
- type TokenResponse
- type UpdateChannelStatusRequest
- type UpdateGroupRPMRatioRequest
- type UpdateGroupStatusRequest
- type UpdateGroupTPMRatioRequest
- type UpdateGroupsStatusRequest
- type UpdateTokenNameRequest
- type UpdateTokenStatusRequest
Constants ¶
const ( OneAPIOpenAI = iota + 1 OneAPIAPI2D OneAPIAzure OneAPICloseAI OneAPIOpenAISB OneAPIOpenAIMax OneAPIOhMyGPT OneAPICustom OneAPIAils OneAPIAIProxy OneAPIPaLM OneAPIAPI2GPT OneAPIAIGC2D OneAPIAnthropic OneAPIBaidu OneAPIZhipu OneAPIAli OneAPIXunfei OneAPIAI360 OneAPIOpenRouter OneAPIAIProxyLibrary OneAPIFastGPT OneAPITencent OneAPIGemini OneAPIMoonshot OneAPIBaichuan OneAPIMinimax OneAPIMistral OneAPIGroq OneAPIOllama OneAPILingYiWanWu OneAPIStepFun OneAPIAwsClaude OneAPICoze OneAPICohere OneAPIDeepSeek OneAPICloudflare OneAPIDeepL OneAPITogetherAI OneAPIDoubao OneAPINovita OneAPIVertextAI OneAPIProxy OneAPISiliconFlow OneAPIXAI OneAPIReplicate OneAPIBaiduV2 OneAPIXunfeiV2 OneAPIAliBailian OneAPIOpenAICompatible OneAPIGeminiOpenAICompatible )
https://github.com/songquanpeng/one-api/blob/main/relay/channeltype/define.go
Variables ¶
var ( ErrChannelsNotFound = errors.New("channels not found") ErrChannelsExhausted = errors.New("channels exhausted") )
var OneAPIChannelType2AIProxyMap = map[int]int{ OneAPIOpenAI: 1, OneAPIAzure: 3, OneAPIAnthropic: 14, OneAPIBaidu: 15, OneAPIZhipu: 16, OneAPIAli: 17, OneAPIAI360: 19, OneAPIOpenRouter: 20, OneAPITencent: 23, OneAPIGemini: 24, OneAPIMoonshot: 25, OneAPIBaichuan: 26, OneAPIMinimax: 27, OneAPIMistral: 28, OneAPIGroq: 29, OneAPIOllama: 30, OneAPILingYiWanWu: 31, OneAPIStepFun: 32, OneAPIAwsClaude: 33, OneAPICoze: 34, OneAPICohere: 35, OneAPIDeepSeek: 36, OneAPICloudflare: 37, OneAPIDoubao: 40, OneAPINovita: 41, OneAPIVertextAI: 42, OneAPISiliconFlow: 43, OneAPIBaiduV2: 13, OneAPIXunfeiV2: 18, OneAPIAliBailian: 17, OneAPIGeminiOpenAICompatible: 12, OneAPIXAI: 45, }
Functions ¶
func AddChannel ¶
AddChannel godoc
@Summary Add a single channel @Description Adds a new channel to the system @Tags channel @Accept json @Produce json @Security ApiKeyAuth @Param channel body AddChannelRequest true "Channel information" @Success 200 {object} middleware.APIResponse @Router /api/channel [post]
func AddChannels ¶
AddChannels godoc
@Summary Add multiple channels @Description Adds multiple channels in a batch operation @Tags channels @Accept json @Produce json @Security ApiKeyAuth @Param channels body []AddChannelRequest true "Channel information" @Success 200 {object} middleware.APIResponse @Router /api/channels [post]
func AddGroupToken ¶
AddGroupToken godoc
@Summary Add group token @Description Adds a new token to a specific group @Tags token @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param auto_create_group query bool false "Auto create group" @Param token body AddTokenRequest true "Token information" @Success 200 {object} middleware.APIResponse{data=TokenResponse} @Router /api/token/{group} [post]
func AddOneAPIChannel ¶
func AddOneAPIChannel(ch OneAPIChannel) error
func AudioSpeech ¶ added in v0.1.5
func AudioSpeech() []gin.HandlerFunc
AudioSpeech godoc
@Summary AudioSpeech @Description AudioSpeech @Tags relay @Produce json @Security ApiKeyAuth @Param request body model.TextToSpeechRequest true "Request" @Param Aiproxy-Channel header string false "Optional Aiproxy-Channel header" @Success 200 {file} file "audio binary" @Header all {integer} X-RateLimit-Limit-Requests "X-RateLimit-Limit-Requests" @Header all {integer} X-RateLimit-Limit-Tokens "X-RateLimit-Limit-Tokens" @Header all {integer} X-RateLimit-Remaining-Requests "X-RateLimit-Remaining-Requests" @Header all {integer} X-RateLimit-Remaining-Tokens "X-RateLimit-Remaining-Tokens" @Header all {string} X-RateLimit-Reset-Requests "X-RateLimit-Reset-Requests" @Header all {string} X-RateLimit-Reset-Tokens "X-RateLimit-Reset-Tokens" @Router /v1/audio/speech [post]
func AudioTranscription ¶ added in v0.1.5
func AudioTranscription() []gin.HandlerFunc
AudioTranscription godoc
@Summary AudioTranscription @Description AudioTranscription @Tags relay @Produce json @Security ApiKeyAuth @Param model formData string true "Model" @Param file formData file true "File" @Param Aiproxy-Channel header string false "Optional Aiproxy-Channel header" @Success 200 {object} model.SttJSONResponse @Header all {integer} X-RateLimit-Limit-Requests "X-RateLimit-Limit-Requests" @Header all {integer} X-RateLimit-Limit-Tokens "X-RateLimit-Limit-Tokens" @Header all {integer} X-RateLimit-Remaining-Requests "X-RateLimit-Remaining-Requests" @Header all {integer} X-RateLimit-Remaining-Tokens "X-RateLimit-Remaining-Tokens" @Header all {string} X-RateLimit-Reset-Requests "X-RateLimit-Reset-Requests" @Header all {string} X-RateLimit-Reset-Tokens "X-RateLimit-Reset-Tokens" @Router /v1/audio/transcription [post]
func AudioTranslation ¶ added in v0.1.5
func AudioTranslation() []gin.HandlerFunc
AudioTranslation godoc
@Summary AudioTranslation @Description AudioTranslation @Tags relay @Produce json @Security ApiKeyAuth @Param model formData string true "Model" @Param file formData file true "File" @Param Aiproxy-Channel header string false "Optional Aiproxy-Channel header" @Success 200 {object} model.SttJSONResponse @Header all {integer} X-RateLimit-Limit-Requests "X-RateLimit-Limit-Requests" @Header all {integer} X-RateLimit-Limit-Tokens "X-RateLimit-Limit-Tokens" @Header all {integer} X-RateLimit-Remaining-Requests "X-RateLimit-Remaining-Requests" @Header all {integer} X-RateLimit-Remaining-Tokens "X-RateLimit-Remaining-Tokens" @Header all {string} X-RateLimit-Reset-Requests "X-RateLimit-Reset-Requests" @Header all {string} X-RateLimit-Reset-Tokens "X-RateLimit-Reset-Tokens" @Router /v1/audio/translation [post]
func AutoTestBannedModels ¶
func AutoTestBannedModels()
func BuiltinModels ¶
BuiltinModels godoc
@Summary Get builtin models @Description Returns a list of builtin models @Tags model @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse{data=[]BuiltinModelConfig} @Router /api/models/builtin [get]
func ChannelBuiltinModels ¶
ChannelBuiltinModels godoc
@Summary Get channel builtin models @Description Returns a list of channel builtin models @Tags model @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse{data=map[int][]BuiltinModelConfig} @Router /api/models/builtin/channel [get]
func ChannelBuiltinModelsByType ¶
ChannelBuiltinModelsByType godoc
@Summary Get channel builtin models by type @Description Returns a list of channel builtin models by type @Tags model @Produce json @Security ApiKeyAuth @Param type path string true "Channel type" @Success 200 {object} middleware.APIResponse{data=[]BuiltinModelConfig} @Router /api/models/builtin/channel/{type} [get]
func ChannelDefaultModelsAndMapping ¶
ChannelDefaultModelsAndMapping godoc
@Summary Get channel default models and mapping @Description Returns a list of channel default models and mapping @Tags model @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse{data=map[string]any{models=[]string,mapping=map[string]string}} @Router /api/models/default [get]
func ChannelDefaultModelsAndMappingByType ¶
ChannelDefaultModelsAndMappingByType godoc
@Summary Get channel default models and mapping by type @Description Returns a list of channel default models and mapping by type @Tags model @Produce json @Security ApiKeyAuth @Param type path string true "Channel type" @Success 200 {object} middleware.APIResponse{data=map[string]any{models=[]string,mapping=map[string]string}} @Router /api/models/default/{type} [get]
func ChannelTypeMetas ¶
ChannelTypeMetas godoc
@Summary Get channel type metadata @Description Returns metadata for all channel types @Tags channels @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse{data=map[int]channeltype.AdaptorMeta} @Router /api/channels/type_metas [get]
func ChannelTypeNames ¶
ChannelTypeNames godoc
@Summary Get all channel type names @Description Returns a list of all available channel type names @Tags channels @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse{data=map[int]string} @Router /api/channels/type_names [get]
func ChatCompletions ¶ added in v0.1.5
func ChatCompletions() []gin.HandlerFunc
ChatCompletions godoc
@Summary ChatCompletions @Description ChatCompletions @Tags relay @Produce json @Security ApiKeyAuth @Param request body model.GeneralOpenAIRequest true "Request" @Param Aiproxy-Channel header string false "Optional Aiproxy-Channel header" @Success 200 {object} model.TextResponse | model.ChatCompletionsStreamResponse @Header all {integer} X-RateLimit-Limit-Requests "X-RateLimit-Limit-Requests" @Header all {integer} X-RateLimit-Limit-Tokens "X-RateLimit-Limit-Tokens" @Header all {integer} X-RateLimit-Remaining-Requests "X-RateLimit-Remaining-Requests" @Header all {integer} X-RateLimit-Remaining-Tokens "X-RateLimit-Remaining-Tokens" @Header all {string} X-RateLimit-Reset-Requests "X-RateLimit-Reset-Requests" @Header all {string} X-RateLimit-Reset-Tokens "X-RateLimit-Reset-Tokens" @Router /v1/chat/completions [post]
func ClearAllModelErrors ¶
ClearAllModelErrors godoc
@Summary Clear all model errors @Description Clears all model errors @Tags monitor @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse @Router /api/monitor [delete]
func ClearChannelAllModelErrors ¶
ClearChannelAllModelErrors godoc
@Summary Clear channel all model errors @Description Clears all model errors for a specific channel @Tags monitor @Produce json @Security ApiKeyAuth @Param id path int true "Channel ID" @Success 200 {object} middleware.APIResponse @Router /api/monitor/{id} [delete]
func ClearChannelModelErrors ¶
ClearChannelModelErrors godoc
@Summary Clear channel model errors @Description Clears model errors for a specific channel and model @Tags monitor @Produce json @Security ApiKeyAuth @Param id path int true "Channel ID" @Param model path string true "Model name" @Success 200 {object} middleware.APIResponse @Router /api/monitor/{id}/{model} [delete]
func Completions ¶ added in v0.1.5
func Completions() []gin.HandlerFunc
Completions godoc
@Summary Completions @Description Completions @Tags relay @Produce json @Security ApiKeyAuth @Param request body model.GeneralOpenAIRequest true "Request" @Param Aiproxy-Channel header string false "Optional Aiproxy-Channel header" @Success 200 {object} model.TextResponse @Header all {integer} X-RateLimit-Limit-Requests "X-RateLimit-Limit-Requests" @Header all {integer} X-RateLimit-Limit-Tokens "X-RateLimit-Limit-Tokens" @Header all {integer} X-RateLimit-Remaining-Requests "X-RateLimit-Remaining-Requests" @Header all {integer} X-RateLimit-Remaining-Tokens "X-RateLimit-Remaining-Tokens" @Header all {string} X-RateLimit-Reset-Requests "X-RateLimit-Reset-Requests" @Header all {string} X-RateLimit-Reset-Tokens "X-RateLimit-Reset-Tokens" @Router /v1/completions [post]
func CreateGroup ¶
CreateGroup godoc
@Summary Create a new group @Description Creates a new group with the given information @Tags group @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param data body CreateGroupRequest true "Group information" @Success 200 {object} middleware.APIResponse{data=model.Group} @Router /api/group/{group} [post]
func DeleteChannel ¶
DeleteChannel godoc
@Summary Delete a channel @Description Deletes a channel by its ID @Tags channel @Produce json @Security ApiKeyAuth @Param id path int true "Channel ID" @Success 200 {object} middleware.APIResponse @Router /api/channel/{id} [delete]
func DeleteChannels ¶
DeleteChannels godoc
@Summary Delete multiple channels @Description Deletes multiple channels by their IDs @Tags channels @Accept json @Produce json @Security ApiKeyAuth @Param ids body []int true "Channel IDs" @Success 200 {object} middleware.APIResponse @Router /api/channels/batch_delete [post]
func DeleteGroup ¶
DeleteGroup godoc
@Summary Delete a group @Description Deletes a group by its name @Tags group @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Success 200 {object} middleware.APIResponse @Router /api/group/{group} [delete]
func DeleteGroupModelConfig ¶ added in v0.1.5
DeleteGroupModelConfig godoc
@Summary Delete group model config @Description Delete group model config @Tags group @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param model path string true "Model name" @Success 200 {object} middleware.APIResponse @Router /api/group/{group}/model_config/{model} [delete]
func DeleteGroupModelConfigs ¶ added in v0.1.5
DeleteGroupModelConfigs godoc
@Summary Delete group model configs @Description Delete group model configs @Tags group @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param models body []string true "Model names" @Success 200 {object} middleware.APIResponse @Router /api/group/{group}/model_configs/ [delete]
func DeleteGroupToken ¶
DeleteGroupToken godoc
@Summary Delete group token @Description Deletes a specific token from a group @Tags token @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param id path int true "Token ID" @Success 200 {object} middleware.APIResponse @Router /api/token/{group}/{id} [delete]
func DeleteGroupTokens ¶
DeleteGroupTokens godoc
@Summary Delete group tokens @Description Deletes multiple tokens from a specific group @Tags token @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param ids body []int true "Token IDs" @Success 200 {object} middleware.APIResponse @Router /api/token/{group}/batch_delete [post]
func DeleteGroups ¶
DeleteGroups godoc
@Summary Delete multiple groups @Description Deletes multiple groups by their IDs @Tags groups @Accept json @Produce json @Security ApiKeyAuth @Param ids body []string true "Group IDs" @Success 200 {object} middleware.APIResponse @Router /api/groups/batch_delete [post]
func DeleteHistoryLogs ¶
DeleteHistoryLogs godoc
@Summary Delete historical logs @Description Deletes logs older than the specified retention period @Tags logs @Produce json @Security ApiKeyAuth @Param timestamp query int true "Timestamp (milliseconds)" @Success 200 {object} middleware.APIResponse{data=int} @Router /api/logs [delete]
func DeleteModelConfig ¶
DeleteModelConfig godoc
@Summary Delete model config @Description Deletes a model config @Tags modelconfig @Produce json @Security ApiKeyAuth @Param model path string true "Model name" @Success 200 {object} middleware.APIResponse @Router /api/model_config/{model} [delete]
func DeleteModelConfigs ¶
DeleteModelConfigs godoc
@Summary Delete model configs @Description Deletes a list of model configs @Tags modelconfig @Produce json @Security ApiKeyAuth @Param models body []string true "Model names" @Success 200 {object} middleware.APIResponse @Router /api/model_configs/batch_delete [post]
func DeleteToken ¶
DeleteToken godoc
@Summary Delete token @Description Deletes a specific token by ID @Tags tokens @Produce json @Security ApiKeyAuth @Param id path int true "Token ID" @Success 200 {object} middleware.APIResponse @Router /api/tokens/{id} [delete]
func DeleteTokens ¶
DeleteTokens godoc
@Summary Delete multiple tokens @Description Deletes multiple tokens by their IDs @Tags tokens @Accept json @Produce json @Security ApiKeyAuth @Param ids body []int true "Token IDs" @Success 200 {object} middleware.APIResponse @Router /api/tokens/batch_delete [post]
func Edits ¶ added in v0.1.5
func Edits() []gin.HandlerFunc
func Embeddings ¶ added in v0.1.5
func Embeddings() []gin.HandlerFunc
Embeddings godoc
@Summary Embeddings @Description Embeddings @Tags relay @Produce json @Security ApiKeyAuth @Param request body model.EmbeddingRequest true "Request" @Param Aiproxy-Channel header string false "Optional Aiproxy-Channel header" @Success 200 {object} model.EmbeddingResponse @Header all {integer} X-RateLimit-Limit-Requests "X-RateLimit-Limit-Requests" @Header all {integer} X-RateLimit-Limit-Tokens "X-RateLimit-Limit-Tokens" @Header all {integer} X-RateLimit-Remaining-Requests "X-RateLimit-Remaining-Requests" @Header all {integer} X-RateLimit-Remaining-Tokens "X-RateLimit-Remaining-Tokens" @Header all {string} X-RateLimit-Reset-Requests "X-RateLimit-Reset-Requests" @Header all {string} X-RateLimit-Reset-Tokens "X-RateLimit-Reset-Tokens" @Router /v1/embeddings [post]
func EnabledModels ¶
EnabledModels godoc
@Summary Get enabled models @Description Returns a list of enabled models @Tags model @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse{data=map[string][]model.ModelConfig} @Router /api/models/enabled [get]
func GetAllBannedModelChannels ¶
GetAllBannedModelChannels godoc
@Summary Get all banned model channels @Description Returns a list of all banned model channels @Tags monitor @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse{data=map[string][]int64} @Router /api/monitor/banned_channels [get]
func GetAllChannelModelErrorRates ¶
GetAllChannelModelErrorRates godoc
@Summary Get all channel model error rates @Description Returns a list of all channel model error rates @Tags monitor @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse{data=map[int64]map[string]float64} @Router /api/monitor [get]
func GetAllChannels ¶
GetAllChannels godoc
@Summary Get all channels @Description Returns a list of all channels without pagination @Tags channels @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse{data=[]model.Channel} @Router /api/channels/all [get]
func GetAllModelConfigs ¶
GetAllModelConfigs godoc
@Summary Get all model configs @Description Returns a list of all model configs @Tags modelconfig @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse{data=[]model.ModelConfig} @Router /api/model_configs/all [get]
func GetChannel ¶
GetChannel godoc
@Summary Get a channel by ID @Description Returns detailed information about a specific channel @Tags channel @Produce json @Security ApiKeyAuth @Param id path int true "Channel ID" @Success 200 {object} middleware.APIResponse{data=model.Channel} @Router /api/channel/{id} [get]
func GetChannelModelErrorRates ¶
GetChannelModelErrorRates godoc
@Summary Get channel model error rates @Description Returns a list of channel model error rates @Tags monitor @Produce json @Security ApiKeyAuth @Param id path int true "Channel ID" @Success 200 {object} middleware.APIResponse{data=[]map[string]float64} @Router /api/monitor/{id} [get]
func GetChannels ¶
GetChannels godoc
@Summary Get channels with pagination @Description Returns a paginated list of channels with optional filters @Tags channels @Produce json @Security ApiKeyAuth @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param id query int false "Filter by id" @Param name query string false "Filter by name" @Param key query string false "Filter by key" @Param channel_type query int false "Filter by channel type" @Param base_url query string false "Filter by base URL" @Param order query string false "Order by field" @Success 200 {object} middleware.APIResponse{data=map[string]any{channels=[]model.Channel,total=int}} @Router /api/channels [get]
func GetDashboard ¶
GetDashboard godoc
@Summary Get dashboard data @Description Returns the general dashboard data including usage statistics and metrics @Tags dashboard @Produce json @Security ApiKeyAuth @Param group query string false "Group or *" @Param channel query int false "Channel ID" @Param type query string false "Type of time span (day, week, month, two_week)" @Param model query string false "Model name" @Param result_only query bool false "Only return result" @Param token_usage query bool false "Token usage" @Param start_timestamp query int64 false "Start second timestamp" @Param end_timestamp query int64 false "End second timestamp" @Param from_log query bool false "From log" @Param timezone query string false "Timezone, default is Local" @Success 200 {object} middleware.APIResponse{data=model.DashboardResponse} @Router /api/dashboard [get]
func GetGroup ¶
GetGroup godoc
@Summary Get a group @Description Returns detailed information about a specific group @Tags group @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Success 200 {object} middleware.APIResponse{data=GroupResponse} @Router /api/group/{group} [get]
func GetGroupDashboard ¶
GetGroupDashboard godoc
@Summary Get dashboard data for a specific group @Description Returns dashboard data and metrics specific to the given group @Tags dashboard @Produce json @Security ApiKeyAuth @Param group path string true "Group" @Param type query string false "Type of time span (day, week, month, two_week)" @Param token_name query string false "Token name" @Param model query string false "Model or *" @Param result_only query bool false "Only return result" @Param token_usage query bool false "Token usage" @Param start_timestamp query int64 false "Start second timestamp" @Param end_timestamp query int64 false "End second timestamp" @Param from_log query bool false "From log" @Param timezone query string false "Timezone, default is Local" @Success 200 {object} middleware.APIResponse{data=model.GroupDashboardResponse} @Router /api/dashboard/{group} [get]
func GetGroupDashboardModels ¶
GetGroupDashboardModels godoc
@Summary Get model usage data for a specific group @Description Returns model-specific metrics and usage data for the given group @Tags dashboard @Produce json @Security ApiKeyAuth @Param group path string true "Group" @Success 200 {object} middleware.APIResponse{data=[]model.ModelConfig} @Router /api/dashboard/{group}/models [get]
func GetGroupLogDetail ¶
GetGroupLogDetail godoc
@Summary Get group log detail @Description Get detailed information about a specific log entry in a group @Tags log @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param log_id path string true "Log ID" @Success 200 {object} middleware.APIResponse{data=model.RequestDetail} @Router /api/log/{group}/detail/{log_id} [get]
func GetGroupLogs ¶
GetGroupLogs godoc
@Summary Get group logs @Description Get logs for a specific group @Tags log @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param start_timestamp query int false "Start timestamp (milliseconds)" @Param end_timestamp query int false "End timestamp (milliseconds)" @Param token_name query string false "Token name" @Param model_name query string false "Model name" @Param channel query int false "Channel ID" @Param token_id query int false "Token ID" @Param order query string false "Order" @Param request_id query string false "Request ID" @Param code_type query string false "Code type" @Param with_body query bool false "With body" @Param ip query string false "IP" @Param result_only query bool false "Result only" @Success 200 {object} middleware.APIResponse{data=model.GetGroupLogsResult} @Router /api/log/{group} [get]
func GetGroupModelConfig ¶ added in v0.1.5
GetGroupModelConfig godoc
@Summary Get group model config @Description Get group model config @Tags group @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param model path string true "Model name" @Success 200 {object} middleware.APIResponse{data=model.GroupModelConfig} @Router /api/group/{group}/model_config/{model} [get]
func GetGroupModelConfigs ¶ added in v0.1.5
GetGroupModelConfigs godoc
@Summary Get group model configs @Description Get group model configs @Tags group @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Success 200 {object} middleware.APIResponse{data=[]model.GroupModelConfig} @Router /api/group/{group}/model_configs/ [get]
func GetGroupModelCostRank ¶
GetGroupModelCostRank godoc
@Summary Get model cost ranking data for a specific group @Description Returns model cost ranking data specific to the given group @Tags dashboard @Produce json @Security ApiKeyAuth @Param group path string true "Group" @Param start_timestamp query int64 false "Start timestamp" @Param end_timestamp query int64 false "End timestamp" @Param token_usage query bool false "Token usage" @Param from_log query bool false "From log" @Success 200 {object} middleware.APIResponse{data=[]model.ModelCostRank} @Router /api/model_cost_rank/{group} [get]
func GetGroupToken ¶
GetGroupToken godoc
@Summary Get token by ID for a specific group @Description Returns detailed information about a specific token for a specific group @Tags token @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param id path int true "Token ID" @Success 200 {object} middleware.APIResponse{data=TokenResponse} @Router /api/token/{group}/{id} [get]
func GetGroupTokens ¶
GetGroupTokens godoc
@Summary Get all tokens for a specific group @Description Returns a paginated list of all tokens for a specific group @Tags tokens @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param order query string false "Order" @Param status query int false "Status" @Success 200 {object} middleware.APIResponse{data=map[string]any{tokens=[]TokenResponse,total=int}} @Router /api/tokens/{group} [get]
func GetGroupUsedModels ¶
GetGroupUsedModels godoc
@Summary Get group used models @Description Get a list of models that have been used in a specific group's logs @Tags log @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Success 200 {object} middleware.APIResponse{data=[]string} @Router /api/log/{group}/used/models [get]
func GetGroupUsedTokenNames ¶
GetGroupUsedTokenNames godoc
@Summary Get group used token names @Description Get a list of token names that have been used in a specific group's logs @Tags log @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Success 200 {object} middleware.APIResponse{data=[]string} @Router /api/log/{group}/used/token_names [get]
func GetGroups ¶
GetGroups godoc
@Summary Get all groups @Description Returns a list of all groups with pagination @Tags groups @Produce json @Security ApiKeyAuth @Param page query int false "Page number" @Param per_page query int false "Items per page" @Success 200 {object} middleware.APIResponse{data=map[string]any{groups=[]GroupResponse,total=int}} @Router /api/groups [get]
func GetIPGroupList ¶ added in v0.1.5
GetIPGroupList godoc
@Summary Get IP group list @Description Get IP group list @Tags groups @Produce json @Security ApiKeyAuth @Param threshold query int false "Threshold" @Param start_timestamp query int false "Start timestamp" @Param end_timestamp query int false "End timestamp" @Success 200 {object} middleware.APIResponse{data=map[string][]string} @Router /api/groups/ip_groups [get]
func GetLogDetail ¶
GetLogDetail godoc
@Summary Get log detail @Description Get detailed information about a specific log entry @Tags logs @Produce json @Security ApiKeyAuth @Param log_id path string true "Log ID" @Success 200 {object} middleware.APIResponse{data=model.RequestDetail} @Router /api/logs/detail/{log_id} [get]
func GetLogs ¶
GetLogs godoc
@Summary Get all logs @Description Returns a paginated list of all logs with optional filters @Tags logs @Produce json @Security ApiKeyAuth @Param group query string false "Group or *" @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param start_timestamp query int false "Start timestamp (milliseconds)" @Param end_timestamp query int false "End timestamp (milliseconds)" @Param token_name query string false "Token name" @Param model_name query string false "Model name" @Param channel query int false "Channel ID" @Param token_id query int false "Token ID" @Param order query string false "Order" @Param request_id query string false "Request ID" @Param code_type query string false "Code type" @Param with_body query bool false "With body" @Param ip query string false "IP" @Param result_only query bool false "Result only" @Success 200 {object} middleware.APIResponse{data=model.GetLogsResult} @Router /api/logs [get]
func GetModelConfig ¶
GetModelConfig godoc
@Summary Get model config @Description Returns a model config @Tags modelconfig @Produce json @Security ApiKeyAuth @Param model path string true "Model name" @Success 200 {object} middleware.APIResponse{data=model.ModelConfig} @Router /api/model_config/{model} [get]
func GetModelConfigs ¶
GetModelConfigs godoc
@Summary Get model configs @Description Returns a list of model configs with pagination @Tags modelconfig @Produce json @Security ApiKeyAuth @Param model query string false "Model name" @Success 200 {object} middleware.APIResponse{data=map[string]any{configs=[]model.ModelConfig,total=int}} @Router /api/model_configs [get]
func GetModelConfigsByModelsContains ¶
GetModelConfigsByModelsContains godoc
@Summary Get model configs by models contains @Description Returns a list of model configs by models contains @Tags modelconfig @Produce json @Security ApiKeyAuth @Param models body GetModelConfigsByModelsContainsRequest true "Models" @Success 200 {object} middleware.APIResponse{data=[]model.ModelConfig} @Router /api/model_configs/contains [post]
func GetModelCostRank ¶
GetModelCostRank godoc
@Summary Get model cost ranking data @Description Returns ranking data for models based on cost @Tags dashboard @Produce json @Security ApiKeyAuth @Param group query string false "Group or *" @Param channel query int false "Channel ID" @Param start_timestamp query int64 false "Start timestamp" @Param end_timestamp query int64 false "End timestamp" @Param token_usage query bool false "Token usage" @Param from_log query bool false "From log" @Success 200 {object} middleware.APIResponse{data=[]model.ModelCostRank} @Router /api/model_cost_rank [get]
func GetModelsErrorRate ¶
GetModelsErrorRate godoc
@Summary Get models error rate @Description Returns a list of models error rate @Tags monitor @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse{data=map[string]float64} @Router /api/monitor/models [get]
func GetOption ¶
GetOption godoc
@Summary Get option @Description Returns a single option @Tags option @Produce json @Security ApiKeyAuth @Param key path string true "Option key" @Success 200 {object} middleware.APIResponse{data=model.Option} @Router /api/options/{key} [get]
func GetOptions ¶
GetOptions godoc
@Summary Get options @Description Returns a list of options @Tags option @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse{data=map[string]string} @Router /api/options [get]
func GetRandomChannel ¶
func GetStatus ¶
GetStatus godoc
@Summary Get status @Description Returns the status of the server @Tags misc @Produce json @Success 200 {object} middleware.APIResponse{data=StatusData} @Router /api/status [get]
func GetSubscription ¶
GetSubscription godoc
@Summary Get subscription @Description Get subscription @Tags relay @Produce json @Security ApiKeyAuth @Success 200 {object} openai.SubscriptionResponse @Router /v1/dashboard/subscription [get]
func GetToken ¶
GetToken godoc
@Summary Get token by ID @Description Returns detailed information about a specific token @Tags tokens @Produce json @Security ApiKeyAuth @Param id path int true "Token ID" @Success 200 {object} middleware.APIResponse{data=TokenResponse} @Router /api/tokens/{id} [get]
func GetTokens ¶
GetTokens godoc
@Summary Get all tokens @Description Returns a paginated list of all tokens @Tags tokens @Produce json @Security ApiKeyAuth @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param group query string false "Group name" @Param order query string false "Order" @Param status query int false "Status" @Success 200 {object} middleware.APIResponse{data=map[string]any{tokens=[]TokenResponse,total=int}} @Router /api/tokens [get]
func GetUsage ¶
GetUsage godoc
@Summary Get usage @Description Get usage @Tags relay @Produce json @Security ApiKeyAuth @Success 200 {object} openai.UsageResponse @Router /v1/dashboard/usage [get]
func GetUsedModels ¶
GetUsedModels godoc
@Summary Get used models @Description Get a list of models that have been used in logs @Tags logs @Produce json @Security ApiKeyAuth @Param group query string false "Group or *" @Success 200 {object} middleware.APIResponse{data=[]string} @Router /api/logs/used/models [get]
func GetUsedTokenNames ¶ added in v0.1.5
GetUsedTokenNames godoc
@Summary Get used token names @Description Get a list of token names that have been used in logs @Tags logs @Produce json @Security ApiKeyAuth @Param group query string false "Group or *" @Success 200 {object} middleware.APIResponse{data=[]string} @Router /api/logs/used/token_names [get]
func ImagesGenerations ¶ added in v0.1.5
func ImagesGenerations() []gin.HandlerFunc
ImagesGenerations godoc
@Summary ImagesGenerations @Description ImagesGenerations @Tags relay @Produce json @Security ApiKeyAuth @Param request body model.ImageRequest true "Request" @Param Aiproxy-Channel header string false "Optional Aiproxy-Channel header" @Success 200 {object} model.ImageResponse @Header all {integer} X-RateLimit-Limit-Requests "X-RateLimit-Limit-Requests" @Header all {integer} X-RateLimit-Limit-Tokens "X-RateLimit-Limit-Tokens" @Header all {integer} X-RateLimit-Remaining-Requests "X-RateLimit-Remaining-Requests" @Header all {integer} X-RateLimit-Remaining-Tokens "X-RateLimit-Remaining-Tokens" @Header all {string} X-RateLimit-Reset-Requests "X-RateLimit-Reset-Requests" @Header all {string} X-RateLimit-Reset-Tokens "X-RateLimit-Reset-Tokens" @Router /v1/images/generations [post]
func ImportChannelFromOneAPI ¶
ImportChannelFromOneAPI godoc
@Summary Import channel from OneAPI @Description Imports channels from OneAPI @Tags channels @Produce json @Security ApiKeyAuth @Param request body ImportChannelFromOneAPIRequest true "Import channel from OneAPI request" @Success 200 {object} middleware.APIResponse{data=[]error} @Router /api/channels/import/oneapi [post]
func ListModels ¶
ListModels godoc
@Summary List models @Description List all models @Tags relay @Produce json @Security ApiKeyAuth @Success 200 {object} object{object=string,data=[]OpenAIModels} @Router /v1/models [get]
func Moderations ¶ added in v0.1.5
func Moderations() []gin.HandlerFunc
func NewMetaByContext ¶ added in v0.1.6
func ParsePdf ¶ added in v0.1.5
func ParsePdf() []gin.HandlerFunc
ParsePdf godoc
@Summary ParsePdf @Description ParsePdf @Tags relay @Produce json @Security ApiKeyAuth @Param model formData string true "Model" @Param file formData file true "File" @Param Aiproxy-Channel header string false "Optional Aiproxy-Channel header" @Success 200 {object} model.ParsePdfResponse @Header all {integer} X-RateLimit-Limit-Requests "X-RateLimit-Limit-Requests" @Header all {integer} X-RateLimit-Limit-Tokens "X-RateLimit-Limit-Tokens" @Header all {integer} X-RateLimit-Remaining-Requests "X-RateLimit-Remaining-Requests" @Header all {integer} X-RateLimit-Remaining-Tokens "X-RateLimit-Remaining-Tokens" @Header all {string} X-RateLimit-Reset-Requests "X-RateLimit-Reset-Requests" @Header all {string} X-RateLimit-Reset-Tokens "X-RateLimit-Reset-Tokens" @Router /v1/parse-pdf [post]
func RelayHelper ¶
func RelayHelper(meta *meta.Meta, c *gin.Context, handel RelayHandler) (*controller.HandleResult, bool)
func RelayNotImplemented ¶
func Rerank ¶ added in v0.1.5
func Rerank() []gin.HandlerFunc
Rerank godoc
@Summary Rerank @Description Rerank @Tags relay @Produce json @Security ApiKeyAuth @Param request body model.RerankRequest true "Request" @Param Aiproxy-Channel header string false "Optional Aiproxy-Channel header" @Success 200 {object} model.RerankResponse @Header all {integer} X-RateLimit-Limit-Requests "X-RateLimit-Limit-Requests" @Header all {integer} X-RateLimit-Limit-Tokens "X-RateLimit-Limit-Tokens" @Header all {integer} X-RateLimit-Remaining-Requests "X-RateLimit-Remaining-Requests" @Header all {integer} X-RateLimit-Remaining-Tokens "X-RateLimit-Remaining-Tokens" @Header all {string} X-RateLimit-Reset-Requests "X-RateLimit-Reset-Requests" @Header all {string} X-RateLimit-Reset-Tokens "X-RateLimit-Reset-Tokens" @Router /v1/rerank [post]
func RetrieveModel ¶
RetrieveModel godoc
@Summary Retrieve model @Description Retrieve a model @Tags relay @Produce json @Security ApiKeyAuth @Success 200 {object} OpenAIModels @Router /v1/models/{model} [get]
func SaveGroupModelConfig ¶ added in v0.1.5
SaveGroupModelConfig godoc
@Summary Save group model config @Description Save group model config @Tags group @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param data body SaveGroupModelConfigRequest true "Group model config information" @Success 200 {object} middleware.APIResponse @Router /api/group/{group}/model_config/ [post]
func SaveGroupModelConfigs ¶ added in v0.1.5
SaveGroupModelConfigs godoc
@Summary Save group model configs @Description Save group model configs @Tags group @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param data body []SaveGroupModelConfigRequest true "Group model config information" @Success 200 {object} middleware.APIResponse @Router /api/group/{group}/model_configs/ [post]
func SaveModelConfig ¶
SaveModelConfig godoc
@Summary Save model config @Description Saves a model config @Tags modelconfig @Produce json @Security ApiKeyAuth @Param config body SaveModelConfigsRequest true "Model config" @Success 200 {object} middleware.APIResponse @Router /api/model_config [post]
func SaveModelConfigs ¶
SaveModelConfigs godoc
@Summary Save model configs @Description Saves a list of model configs @Tags modelconfig @Produce json @Security ApiKeyAuth @Param configs body []SaveModelConfigsRequest true "Model configs" @Success 200 {object} middleware.APIResponse @Router /api/model_configs [post]
func SearchChannels ¶
SearchChannels godoc
@Summary Search channels @Description Search channels with keyword and optional filters @Tags channels @Produce json @Security ApiKeyAuth @Param keyword query string true "Search keyword" @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param id query int false "Filter by id" @Param name query string false "Filter by name" @Param key query string false "Filter by key" @Param channel_type query int false "Filter by channel type" @Param base_url query string false "Filter by base URL" @Param order query string false "Order by field" @Success 200 {object} middleware.APIResponse{data=map[string]any{channels=[]model.Channel,total=int}} @Router /api/channels/search [get]
func SearchConsumeError ¶
SearchConsumeError godoc
@Summary Search consumption errors @Description Search for logs with consumption errors @Tags logs @Produce json @Security ApiKeyAuth @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param start_timestamp query int false "Start timestamp (milliseconds)" @Param end_timestamp query int false "End timestamp (milliseconds)" @Param keyword query string false "Keyword" @Param group query string false "Group" @Param token_name query string false "Token name" @Param model_name query string false "Model name" @Param content query string false "Content" @Param token_id query int false "Token ID" @Param order query string false "Order" @Param request_id query string false "Request ID" @Success 200 {object} middleware.APIResponse{data=map[string]any{logs=[]model.RequestDetail,total=int}} @Router /api/logs/consume_error [get]
func SearchGroupLogs ¶
SearchGroupLogs godoc
@Summary Search group logs @Description Search logs for a specific group with filters @Tags log @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param keyword query string true "Keyword" @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param start_timestamp query int false "Start timestamp (milliseconds)" @Param end_timestamp query int false "End timestamp (milliseconds)" @Param token_name query string false "Filter by token name" @Param model_name query string false "Filter by model name" @Param channel query int false "Filter by channel" @Param token_id query int false "Filter by token id" @Param order query string false "Order" @Param request_id query string false "Request ID" @Param code_type query string false "Code type" @Param with_body query bool false "With body" @Param ip query string false "IP" @Param result_only query bool false "Result only" @Success 200 {object} middleware.APIResponse{data=model.GetGroupLogsResult} @Router /api/log/{group}/search [get]
func SearchGroupTokens ¶
SearchGroupTokens godoc
@Summary Search tokens for a specific group @Description Returns a paginated list of tokens for a specific group based on search criteria @Tags token @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param keyword query string false "Keyword" @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param order query string false "Order" @Param name query string false "Name" @Param key query string false "Key" @Param status query int false "Status" @Success 200 {object} middleware.APIResponse{data=map[string]any{tokens=[]TokenResponse,total=int}} @Router /api/token/{group}/search [get]
func SearchGroups ¶
SearchGroups godoc
@Summary Search groups @Description Search groups with keyword and pagination @Tags groups @Produce json @Security ApiKeyAuth @Param keyword query string true "Search keyword" @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param status query int false "Status" @Param order query string false "Order" @Success 200 {object} middleware.APIResponse{data=map[string]any{groups=[]GroupResponse,total=int}} @Router /api/groups/search [get]
func SearchLogs ¶
SearchLogs godoc
@Summary Search logs @Description Search logs with various filters @Tags logs @Produce json @Security ApiKeyAuth @Param group query string false "Group or *" @Param keyword query string true "Keyword" @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param start_timestamp query int false "Start timestamp (milliseconds)" @Param end_timestamp query int false "End timestamp (milliseconds)" @Param token_name query string false "Filter by token name" @Param model_name query string false "Filter by model name" @Param channel query int false "Filter by channel" @Param token_id query int false "Filter by token id" @Param order query string false "Order" @Param request_id query string false "Request ID" @Param code_type query string false "Code type" @Param with_body query bool false "With body" @Param ip query string false "IP" @Param result_only query bool false "Result only" @Success 200 {object} middleware.APIResponse{data=model.GetLogsResult} @Router /api/logs/search [get]
func SearchModelConfigs ¶
SearchModelConfigs godoc
@Summary Search model configs @Description Returns a list of model configs by keyword @Tags modelconfig @Produce json @Security ApiKeyAuth @Param keyword query string false "Keyword" @Param model query string false "Model name" @Param owner query string false "Owner" @Param page query int false "Page" @Param per_page query int false "Per page" @Success 200 {object} middleware.APIResponse{data=map[string]any{configs=[]model.ModelConfig,total=int}} @Router /api/model_configs/search [get]
func SearchTokens ¶
SearchTokens godoc
@Summary Search tokens @Description Returns a paginated list of tokens based on search criteria @Tags tokens @Produce json @Security ApiKeyAuth @Param keyword query string false "Keyword" @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param order query string false "Order" @Param name query string false "Name" @Param key query string false "Key" @Param status query int false "Status" @Param group query string false "Group" @Success 200 {object} middleware.APIResponse{data=map[string]any{tokens=[]TokenResponse,total=int}} @Router /api/tokens/search [get]
func SortBuiltinModelConfigsFunc ¶
func SortBuiltinModelConfigsFunc(i, j *BuiltinModelConfig) int
func TestAllChannels ¶
TestAllChannels godoc
@Summary Test all channels @Description Tests all channels @Tags channel @Produce json @Security ApiKeyAuth @Param test_disabled query bool false "Test disabled" @Param return_success query bool false "Return success" @Param success_body query bool false "Success body" @Param stream query bool false "Stream" @Success 200 {object} middleware.APIResponse{data=[]TestResult} @Router /api/channels/test [get]
func TestChannel ¶
TestChannel godoc
@Summary Test channel model @Description Tests a single model in the channel @Tags channel @Produce json @Security ApiKeyAuth @Param id path int true "Channel ID" @Param model path string true "Model name" @Success 200 {object} middleware.APIResponse{data=model.ChannelTest} @Router /api/channel/{id}/{model} [get]
func TestChannelModels ¶
TestChannelModels godoc
@Summary Test channel models @Description Tests all models in the channel @Tags channel @Produce json @Security ApiKeyAuth @Param id path int true "Channel ID" @Param return_success query bool false "Return success" @Param success_body query bool false "Success body" @Param stream query bool false "Stream" @Success 200 {object} middleware.APIResponse{data=[]TestResult} @Router /api/channel/{id}/models [get]
func UpdateAllChannelsBalance ¶
UpdateAllChannelsBalance godoc
@Summary Update all channels balance @Description Updates the balance for all channels @Tags channel @Produce json @Security ApiKeyAuth @Success 200 {object} middleware.APIResponse @Router /api/channels/balance [get]
func UpdateChannel ¶
UpdateChannel godoc
@Summary Update a channel @Description Updates an existing channel by its ID @Tags channel @Accept json @Produce json @Security ApiKeyAuth @Param id path int true "Channel ID" @Param channel body AddChannelRequest true "Updated channel information" @Success 200 {object} middleware.APIResponse{data=model.Channel} @Router /api/channel/{id} [put]
func UpdateChannelBalance ¶
UpdateChannelBalance godoc
@Summary Update channel balance @Description Updates the balance for a single channel @Tags channel @Produce json @Security ApiKeyAuth @Param id path int true "Channel ID" @Success 200 {object} middleware.APIResponse{data=float64} @Router /api/channel/{id}/balance [get]
func UpdateChannelStatus ¶
UpdateChannelStatus godoc
@Summary Update channel status @Description Updates the status of a channel by its ID @Tags channel @Accept json @Produce json @Security ApiKeyAuth @Param id path int true "Channel ID" @Param status body UpdateChannelStatusRequest true "Status information" @Success 200 {object} middleware.APIResponse @Router /api/channel/{id}/status [post]
func UpdateChannelsBalance ¶
func UpdateGroup ¶
UpdateGroup godoc
@Summary Update a group @Description Updates an existing group with the given information @Tags group @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param data body CreateGroupRequest true "Updated group information" @Success 200 {object} middleware.APIResponse{data=model.Group} @Router /api/group/{group} [put]
func UpdateGroupModelConfig ¶ added in v0.1.5
UpdateGroupModelConfig godoc
@Summary Update group model config @Description Update group model config @Tags group @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param model path string true "Model name" @Param data body SaveGroupModelConfigRequest true "Group model config information" @Success 200 {object} middleware.APIResponse @Router /api/group/{group}/model_config/{model} [put]
func UpdateGroupModelConfigs ¶ added in v0.1.5
UpdateGroupModelConfigs godoc
@Summary Update group model configs @Description Update group model configs @Tags group @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param data body []SaveGroupModelConfigRequest true "Group model config information" @Success 200 {object} middleware.APIResponse @Router /api/group/{group}/model_configs/ [put]
func UpdateGroupRPMRatio ¶
UpdateGroupRPMRatio godoc
@Summary Update group RPM ratio @Description Updates the RPM (Requests Per Minute) ratio for a group @Tags group @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param data body UpdateGroupRPMRatioRequest true "RPM ratio information" @Success 200 {object} middleware.APIResponse @Router /api/group/{group}/rpm_ratio [post]
func UpdateGroupStatus ¶
UpdateGroupStatus godoc
@Summary Update group status @Description Updates the status of a group @Tags group @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param status body UpdateGroupStatusRequest true "Status information" @Success 200 {object} middleware.APIResponse @Router /api/group/{group}/status [post]
func UpdateGroupTPMRatio ¶
UpdateGroupTPMRatio godoc
@Summary Update group TPM ratio @Description Updates the TPM (Tokens Per Minute) ratio for a group @Tags group @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param data body UpdateGroupTPMRatioRequest true "TPM ratio information" @Success 200 {object} middleware.APIResponse @Router /api/group/{group}/tpm_ratio [post]
func UpdateGroupToken ¶
UpdateGroupToken godoc
@Summary Update group token @Description Updates an existing token in a specific group @Tags token @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param id path int true "Token ID" @Param token body AddTokenRequest true "Updated token information" @Success 200 {object} middleware.APIResponse{data=TokenResponse} @Router /api/token/{group}/{id} [put]
func UpdateGroupTokenName ¶
UpdateGroupTokenName godoc
@Summary Update group token name @Description Updates the name of a token in a specific group @Tags token @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param id path int true "Token ID" @Param name body UpdateTokenNameRequest true "Name information" @Success 200 {object} middleware.APIResponse @Router /api/token/{group}/{id}/name [post]
func UpdateGroupTokenStatus ¶
UpdateGroupTokenStatus godoc
@Summary Update group token status @Description Updates the status of a token in a specific group @Tags token @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group name" @Param id path int true "Token ID" @Param status body UpdateTokenStatusRequest true "Status information" @Success 200 {object} middleware.APIResponse @Router /api/token/{group}/{id}/status [post]
func UpdateGroupsStatus ¶ added in v0.1.5
UpdateGroupsStatus godoc
@Summary Update multiple groups status @Description Updates the status of multiple groups @Tags groups @Accept json @Produce json @Security ApiKeyAuth @Param data body UpdateGroupsStatusRequest true "Group IDs and status" @Success 200 {object} middleware.APIResponse @Router /api/groups/batch_status [post]
func UpdateOption ¶
UpdateOption godoc
@Summary Update option @Description Updates a single option @Tags option @Produce json @Security ApiKeyAuth @Param value body model.Option true "Option value" @Success 200 {object} middleware.APIResponse @Router /api/options/ [put] @Router /api/options/ [post]
func UpdateOptionByKey ¶ added in v0.1.5
UpdateOptionByKey godoc
@Summary Update option by key @Description Updates a single option by key @Tags option @Produce json @Security ApiKeyAuth @Param key path string true "Option key" @Param value body string true "Option value" @Success 200 {object} middleware.APIResponse @Router /api/options/{key} [put]
func UpdateOptions ¶
UpdateOptions godoc
@Summary Update options @Description Updates multiple options @Tags option @Produce json @Security ApiKeyAuth @Param options body map[string]string true "Options" @Success 200 {object} middleware.APIResponse @Router /api/options [post]
func UpdateToken ¶
UpdateToken godoc
@Summary Update token @Description Updates an existing token's information @Tags tokens @Accept json @Produce json @Security ApiKeyAuth @Param id path int true "Token ID" @Param token body AddTokenRequest true "Updated token information" @Success 200 {object} middleware.APIResponse{data=TokenResponse} @Router /api/tokens/{id} [put]
func UpdateTokenName ¶
UpdateTokenName godoc
@Summary Update token name @Description Updates the name of a specific token @Tags tokens @Accept json @Produce json @Security ApiKeyAuth @Param id path int true "Token ID" @Param name body UpdateTokenNameRequest true "Name information" @Success 200 {object} middleware.APIResponse @Router /api/tokens/{id}/name [post]
func UpdateTokenStatus ¶
UpdateTokenStatus godoc
@Summary Update token status @Description Updates the status of a specific token @Tags tokens @Accept json @Produce json @Security ApiKeyAuth @Param id path int true "Token ID" @Param status body UpdateTokenStatusRequest true "Status information" @Success 200 {object} middleware.APIResponse @Router /api/tokens/{id}/status [post]
Types ¶
type AddChannelRequest ¶
type AddChannelRequest struct { ModelMapping map[string]string `json:"model_mapping"` Config *model.ChannelConfig `json:"config"` Name string `json:"name"` Key string `json:"key"` BaseURL string `json:"base_url"` Models []string `json:"models"` Type int `json:"type"` Priority int32 `json:"priority"` Status int `json:"status"` Sets []string `json:"sets"` }
AddChannelRequest represents the request body for adding a channel
func (*AddChannelRequest) ToChannel ¶
func (r *AddChannelRequest) ToChannel() (*model.Channel, error)
func (*AddChannelRequest) ToChannels ¶
func (r *AddChannelRequest) ToChannels() ([]*model.Channel, error)
type AddTokenRequest ¶
type AddTokenRequest struct { Name string `json:"name"` Subnets []string `json:"subnets"` Models []string `json:"models"` ExpiredAt int64 `json:"expiredAt"` Quota float64 `json:"quota"` }
func (*AddTokenRequest) ToToken ¶
func (at *AddTokenRequest) ToToken() *model.Token
type BuiltinModelConfig ¶
type BuiltinModelConfig model.ModelConfig
func (*BuiltinModelConfig) MarshalJSON ¶
func (c *BuiltinModelConfig) MarshalJSON() ([]byte, error)
type ChannelConfig ¶
type ChannelConfig struct { Region string `json:"region,omitempty"` SK string `json:"sk,omitempty"` AK string `json:"ak,omitempty"` UserID string `json:"user_id,omitempty"` APIVersion string `json:"api_version,omitempty"` LibraryID string `json:"library_id,omitempty"` VertexAIProjectID string `json:"vertex_ai_project_id,omitempty"` VertexAIADC string `json:"vertex_ai_adc,omitempty"` }
type CreateGroupRequest ¶
type CreateGroupRequest struct { RPMRatio float64 `json:"rpm_ratio"` TPMRatio float64 `json:"tpm_ratio"` AvailableSet []string `json:"available_set"` BalanceAlertEnabled bool `json:"balance_alert_enabled"` BalanceAlertThreshold float64 `json:"balance_alert_threshold"` }
func (*CreateGroupRequest) ToGroup ¶ added in v0.1.6
func (r *CreateGroupRequest) ToGroup() *model.Group
type GetModelConfigsByModelsContainsRequest ¶
type GetModelConfigsByModelsContainsRequest struct {
Models []string `json:"models"`
}
type GetRequestPrice ¶ added in v0.1.5
type GetRequestUsage ¶ added in v0.1.5
type GroupResponse ¶
func (*GroupResponse) MarshalJSON ¶
func (g *GroupResponse) MarshalJSON() ([]byte, error)
type ImportChannelFromOneAPIRequest ¶
type ImportChannelFromOneAPIRequest struct {
DSN string `json:"dsn"`
}
type OneAPIChannel ¶
type OneAPIChannel struct { Type int `gorm:"default:0" json:"type"` Key string `gorm:"type:text" json:"key"` Status int `gorm:"default:1" json:"status"` Name string `gorm:"index" json:"name"` BaseURL string `gorm:"column:base_url;default:''"` Models string `json:"models"` ModelMapping map[string]string `gorm:"type:varchar(1024);serializer:fastjson"` Priority int32 `gorm:"bigint;default:0"` Config ChannelConfig `gorm:"serializer:fastjson"` }
func (*OneAPIChannel) TableName ¶
func (c *OneAPIChannel) TableName() string
type OpenAIModelPermission ¶
type OpenAIModelPermission struct { Group *string `json:"group"` ID string `json:"id"` Object string `json:"object"` Organization string `json:"organization"` Created int `json:"created"` AllowCreateEngine bool `json:"allow_create_engine"` AllowSampling bool `json:"allow_sampling"` AllowLogprobs bool `json:"allow_logprobs"` AllowSearchIndices bool `json:"allow_search_indices"` AllowView bool `json:"allow_view"` AllowFineTuning bool `json:"allow_fine_tuning"` IsBlocking bool `json:"is_blocking"` }
type OpenAIModels ¶
type RelayController ¶
type RelayController struct { GetRequestUsage GetRequestUsage GetRequestPrice GetRequestPrice Handler RelayHandler }
type RelayHandler ¶ added in v0.1.5
type RelayHandler func(*meta.Meta, *gin.Context) *controller.HandleResult
type SaveGroupModelConfigRequest ¶ added in v0.1.5
type SaveGroupModelConfigRequest struct { Model string `json:"model"` OverrideLimit bool `json:"override_limit"` RPM int64 `json:"rpm"` TPM int64 `json:"tpm"` OverridePrice bool `json:"override_price"` ImagePrices map[string]float64 `json:"image_prices"` Price model.Price `json:"price"` }
func (*SaveGroupModelConfigRequest) ToGroupModelConfig ¶ added in v0.1.5
func (r *SaveGroupModelConfigRequest) ToGroupModelConfig(groupID string) model.GroupModelConfig
type SaveModelConfigsRequest ¶
type SaveModelConfigsRequest struct { CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` *model.ModelConfig }
type StatusData ¶
type StatusData struct {
StartTime int64 `json:"startTime"`
}
type TestResult ¶ added in v0.1.5
type TestResult struct { Data *model.ChannelTest `json:"data,omitempty"` Message string `json:"message,omitempty"` Success bool `json:"success"` }
type TokenResponse ¶
TokenResponse represents the response structure for token endpoints
func (*TokenResponse) MarshalJSON ¶
func (t *TokenResponse) MarshalJSON() ([]byte, error)
type UpdateChannelStatusRequest ¶
type UpdateChannelStatusRequest struct {
Status int `json:"status"`
}
UpdateChannelStatusRequest represents the request body for updating a channel's status
type UpdateGroupRPMRatioRequest ¶
type UpdateGroupRPMRatioRequest struct {
RPMRatio float64 `json:"rpm_ratio"`
}
type UpdateGroupStatusRequest ¶
type UpdateGroupStatusRequest struct {
Status int `json:"status"`
}
type UpdateGroupTPMRatioRequest ¶
type UpdateGroupTPMRatioRequest struct {
TPMRatio float64 `json:"tpm_ratio"`
}
type UpdateGroupsStatusRequest ¶ added in v0.1.5
type UpdateTokenNameRequest ¶
type UpdateTokenNameRequest struct {
Name string `json:"name"`
}
type UpdateTokenStatusRequest ¶
type UpdateTokenStatusRequest struct {
Status int `json:"status"`
}