mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-09-30 07:06:38 +08:00
110 lines
3.3 KiB
Go
110 lines
3.3 KiB
Go
package base
|
|
|
|
import (
|
|
"net/http"
|
|
"one-api/common/requester"
|
|
"one-api/model"
|
|
"one-api/types"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type Requestable interface {
|
|
types.CompletionRequest | types.ChatCompletionRequest | types.EmbeddingRequest | types.ModerationRequest | types.SpeechAudioRequest | types.AudioRequest | types.ImageRequest | types.ImageEditRequest
|
|
}
|
|
|
|
// 基础接口
|
|
type ProviderInterface interface {
|
|
// 获取基础URL
|
|
// GetBaseURL() string
|
|
// 获取完整请求URL
|
|
// GetFullRequestURL(requestURL string, modelName string) string
|
|
// 获取请求头
|
|
// GetRequestHeaders() (headers map[string]string)
|
|
// 获取用量
|
|
GetUsage() *types.Usage
|
|
// 设置用量
|
|
SetUsage(usage *types.Usage)
|
|
// 设置Context
|
|
SetContext(c *gin.Context)
|
|
// 设置原始模型
|
|
SetOriginalModel(ModelName string)
|
|
// 获取原始模型
|
|
GetOriginalModel() string
|
|
|
|
// SupportAPI(relayMode int) bool
|
|
GetChannel() *model.Channel
|
|
ModelMappingHandler(modelName string) (string, error)
|
|
}
|
|
|
|
// 完成接口
|
|
type CompletionInterface interface {
|
|
ProviderInterface
|
|
CreateCompletion(request *types.CompletionRequest) (*types.CompletionResponse, *types.OpenAIErrorWithStatusCode)
|
|
CreateCompletionStream(request *types.CompletionRequest) (requester.StreamReaderInterface[string], *types.OpenAIErrorWithStatusCode)
|
|
}
|
|
|
|
// 聊天接口
|
|
type ChatInterface interface {
|
|
ProviderInterface
|
|
CreateChatCompletion(request *types.ChatCompletionRequest) (*types.ChatCompletionResponse, *types.OpenAIErrorWithStatusCode)
|
|
CreateChatCompletionStream(request *types.ChatCompletionRequest) (requester.StreamReaderInterface[string], *types.OpenAIErrorWithStatusCode)
|
|
}
|
|
|
|
// 嵌入接口
|
|
type EmbeddingsInterface interface {
|
|
ProviderInterface
|
|
CreateEmbeddings(request *types.EmbeddingRequest) (*types.EmbeddingResponse, *types.OpenAIErrorWithStatusCode)
|
|
}
|
|
|
|
// 审查接口
|
|
type ModerationInterface interface {
|
|
ProviderInterface
|
|
CreateModeration(request *types.ModerationRequest) (*types.ModerationResponse, *types.OpenAIErrorWithStatusCode)
|
|
}
|
|
|
|
// 文字转语音接口
|
|
type SpeechInterface interface {
|
|
ProviderInterface
|
|
CreateSpeech(request *types.SpeechAudioRequest) (*http.Response, *types.OpenAIErrorWithStatusCode)
|
|
}
|
|
|
|
// 语音转文字接口
|
|
type TranscriptionsInterface interface {
|
|
ProviderInterface
|
|
CreateTranscriptions(request *types.AudioRequest) (*types.AudioResponseWrapper, *types.OpenAIErrorWithStatusCode)
|
|
}
|
|
|
|
// 语音翻译接口
|
|
type TranslationInterface interface {
|
|
ProviderInterface
|
|
CreateTranslation(request *types.AudioRequest) (*types.AudioResponseWrapper, *types.OpenAIErrorWithStatusCode)
|
|
}
|
|
|
|
// 图片生成接口
|
|
type ImageGenerationsInterface interface {
|
|
ProviderInterface
|
|
CreateImageGenerations(request *types.ImageRequest) (*types.ImageResponse, *types.OpenAIErrorWithStatusCode)
|
|
}
|
|
|
|
// 图片编辑接口
|
|
type ImageEditsInterface interface {
|
|
ProviderInterface
|
|
CreateImageEdits(request *types.ImageEditRequest) (*types.ImageResponse, *types.OpenAIErrorWithStatusCode)
|
|
}
|
|
|
|
type ImageVariationsInterface interface {
|
|
ProviderInterface
|
|
CreateImageVariations(request *types.ImageEditRequest) (*types.ImageResponse, *types.OpenAIErrorWithStatusCode)
|
|
}
|
|
|
|
// 余额接口
|
|
type BalanceInterface interface {
|
|
Balance() (float64, error)
|
|
}
|
|
|
|
// type ProviderResponseHandler interface {
|
|
// // 响应处理函数
|
|
// ResponseHandler(resp *http.Response) (OpenAIResponse any, errWithCode *types.OpenAIErrorWithStatusCode)
|
|
// }
|