one-api/relay/base.go
Buer 71171c63f5
feat: support configuration file (#117)
* ♻️ refactor: move file directory

* ♻️ refactor: move file directory

* ♻️ refactor: support multiple config methods

* 🔥 del: remove unused code

* 💩 refactor: Refactor channel management and synchronization

* 💄 improve: add channel website

*  feat: allow recording 0 consumption
2024-03-20 14:12:47 +08:00

54 lines
1.1 KiB
Go

package relay
import (
"one-api/types"
providersBase "one-api/providers/base"
"github.com/gin-gonic/gin"
)
type relayBase struct {
c *gin.Context
provider providersBase.ProviderInterface
originalModel string
modelName string
}
type RelayBaseInterface interface {
send() (err *types.OpenAIErrorWithStatusCode, done bool)
getPromptTokens() (int, error)
setRequest() error
setProvider(modelName string) error
getProvider() providersBase.ProviderInterface
getOriginalModel() string
getModelName() string
getContext() *gin.Context
}
func (r *relayBase) setProvider(modelName string) error {
provider, modelName, fail := getProvider(r.c, modelName)
if fail != nil {
return fail
}
r.provider = provider
r.modelName = modelName
return nil
}
func (r *relayBase) getContext() *gin.Context {
return r.c
}
func (r *relayBase) getProvider() providersBase.ProviderInterface {
return r.provider
}
func (r *relayBase) getOriginalModel() string {
return r.originalModel
}
func (r *relayBase) getModelName() string {
return r.modelName
}