Documentation
¶
Index ¶
- func SetupMultiRoutes(rootRouter fiber.Router, portalService portal.Service, userAgent string, ...)
- type Handler
- func (h *Handler) ChatCompletions(c *fiber.Ctx) error
- func (h *Handler) GeminiGenerateContent(c *fiber.Ctx) error
- func (h *Handler) GeminiStreamGenerateContent(c *fiber.Ctx) error
- func (h *Handler) Messages(c *fiber.Ctx) error
- func (h *Handler) Responses(c *fiber.Ctx) error
- func (h *Handler) SelectGeminiModels() fiber.Handler
- func (h *Handler) SelectModels() fiber.Handler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler 统一的多供应商处理器,处理 OpenAI 和 Anthropic 兼容 API 的请求
该结构体封装了处理多供应商 AI API 请求所需的服务和日志记录器
func New ¶
New 创建并初始化一个新的多供应商处理器实例
该函数使用依赖注入的方式创建 Handler 实例
参数:
- portalService: AI 网关服务实例,用于处理 AI 相关请求
- userAgent: User-Agent 配置,空则透传客户端 UA,"default" 使用 fasthttp 默认值,其他字符串则复写
- logger: 日志记录器实例
返回值:
- *Handler: 初始化后的多供应商处理器实例
func (*Handler) ChatCompletions ¶
ChatCompletions 处理 OpenAI 聊天完成请求,路径为 POST /multi/v1/chat/completions。 解析请求体并转换为统一格式,根据 stream 参数决定返回流式或非流式响应。 成功时返回 200 状态码及聊天完成响应,失败时返回 400/401/500 状态码。
@Summary 聊天完成 @Description 创建聊天完成响应,支持流式和非流式两种模式 @Tags OpenAI @Accept json @Produce json @Param request body openaiChatTypes.Request true "聊天完成请求" @Success 200 {object} openaiChatTypes.Response @Failure 400 {object} fiber.Map @Failure 401 {object} fiber.Map @Failure 500 {object} fiber.Map @Router /multi/v1/chat/completions [post] @Security ApiKeyAuth
func (*Handler) GeminiGenerateContent ¶
GeminiGenerateContent 处理 Gemini generateContent 请求,路径为 POST /multi/v1beta/models/{model}:generateContent。 解析请求体并从参数或查询字符串中获取模型名称,转换为统一格式后调用 ChatCompletion 服务。 成功时返回 200 状态码及生成内容响应,失败时返回 400/500 状态码。
@Summary 生成内容 @Description 调用 Gemini 模型生成内容,支持通过路径参数或查询参数指定模型 @Tags Gemini @Accept json @Produce json @Param model path string true "模型名称" @Param request body geminiTypes.Request true "生成内容请求" @Success 200 {object} geminiTypes.Response @Failure 400 {object} fiber.Map @Failure 401 {object} fiber.Map @Failure 500 {object} fiber.Map @Router /multi/v1beta/models/{model}:generateContent [post] @Security ApiKeyAuth
func (*Handler) GeminiStreamGenerateContent ¶
GeminiStreamGenerateContent 处理 Gemini streamGenerateContent 请求,路径为 POST /multi/v1beta/models/{model}:streamGenerateContent。 解析请求体并从参数或查询字符串中获取模型名称,转换为统一格式后返回流式响应。 成功时返回流式 SSE 响应,失败时返回 400/500 状态码。
@Summary 流式生成内容 @Description 调用 Gemini 模型流式生成内容,支持通过路径参数或查询参数指定模型 @Tags Gemini @Accept json @Produce text/event-stream @Param model path string true "模型名称" @Param request body geminiTypes.Request true "生成内容请求" @Success 200 {object} geminiTypes.Candidate @Failure 400 {object} fiber.Map @Failure 401 {object} fiber.Map @Failure 500 {object} fiber.Map @Router /multi/v1beta/models/{model}:streamGenerateContent [post] @Security ApiKeyAuth
func (*Handler) Messages ¶
Messages 处理 Anthropic 消息完成请求,路径为 POST /multi/v1/messages。 解析请求体并转换为统一格式,根据 stream 参数决定返回流式或非流式响应。 成功时返回 200 状态码及消息响应,失败时返回 400/401/500 状态码。
@Summary 消息完成 @Description 创建消息完成响应,支持流式和非流式两种模式 @Tags Anthropic @Accept json @Produce json @Param request body anthropicTypes.Request true "消息请求" @Success 200 {object} anthropicTypes.MessageResponse @Failure 400 {object} fiber.Map @Failure 401 {object} fiber.Map @Failure 500 {object} fiber.Map @Router /multi/v1/messages [post] @Security ApiKeyAuth
func (*Handler) Responses ¶
Responses 处理 OpenAI Responses API 请求,路径为 POST /multi/v1/responses。 解析请求体并转换为统一格式,根据 stream 参数决定返回流式或非流式响应。 成功时返回 200 状态码及 Responses 响应,失败时返回 400/401/500 状态码。
@Summary Responses @Description 创建 Responses API 响应,支持流式和非流式两种模式 @Tags OpenAI @Accept json @Produce json @Param request body openaiResponsesTypes.Request true "Responses 请求" @Success 200 {object} openaiResponsesTypes.Response @Failure 400 {object} fiber.Map @Failure 401 {object} fiber.Map @Failure 500 {object} fiber.Map @Router /multi/v1/responses [post] @Security ApiKeyAuth
func (*Handler) SelectGeminiModels ¶
SelectGeminiModels 处理获取 Gemini 模型列表请求,路径为 GET /multi/v1beta/models。 返回 Gemini API 格式的模型列表,包含所有可用模型的名称信息。 成功时返回 200 状态码及模型列表,失败时返回 500 状态码。
@Summary 获取 Gemini 模型列表 @Description 返回 Gemini v1beta API 格式的模型列表 @Tags Models @Accept json @Produce json @Success 200 {object} multiTypes.GeminiModelList @Failure 500 {object} fiber.Map @Router /multi/v1beta/models [get] @Security ApiKeyAuth
func (*Handler) SelectModels ¶
SelectModels 处理获取模型列表请求,路径为 GET /multi/v1/models。 根据请求头中的 provider 字段返回对应格式的模型列表(OpenAI/Anthropic/Gemini)。 成功时返回 200 状态码及模型列表,失败时返回 500 状态码。
@Summary 获取模型列表 @Description 根据请求头中的 provider 字段返回对应格式的模型列表 @Tags Models @Accept json @Produce json @Success 200 {object} multiTypes.OpenAIModelList @Success 200 {object} multiTypes.AnthropicModelList @Success 200 {object} multiTypes.GeminiModelList @Failure 500 {object} fiber.Map @Router /multi/v1/models [get] @Security ApiKeyAuth