diff --git a/relay/adaptor/vertexai/adaptor.go b/relay/adaptor/vertexai/adaptor.go index f1b68b70..3fab4a45 100644 --- a/relay/adaptor/vertexai/adaptor.go +++ b/relay/adaptor/vertexai/adaptor.go @@ -19,7 +19,7 @@ var _ adaptor.Adaptor = new(Adaptor) const channelName = "vertexai" -type Adaptor struct {} +type Adaptor struct{} func (a *Adaptor) Init(meta *meta.Meta) { } @@ -38,7 +38,7 @@ func (a *Adaptor) ConvertRequest(c *gin.Context, relayMode int, request *model.G } func (a *Adaptor) DoResponse(c *gin.Context, resp *http.Response, meta *meta.Meta) (usage *model.Usage, err *model.ErrorWithStatusCode) { - adaptor := GetAdaptor(meta.OriginModelName) + adaptor := GetAdaptor(meta.ActualModelName) if adaptor == nil { return nil, &relaymodel.ErrorWithStatusCode{ StatusCode: http.StatusInternalServerError, @@ -63,20 +63,36 @@ func (a *Adaptor) GetRequestURL(meta *meta.Meta) (string, error) { suffix := "" if strings.HasPrefix(meta.ActualModelName, "gemini") { if meta.IsStream { - suffix = "streamGenerateContent" + suffix = "streamGenerateContent?alt=sse" } else { suffix = "generateContent" } } else { if meta.IsStream { - suffix = "streamRawPredict" + suffix = "streamRawPredict?alt=sse" } else { suffix = "rawPredict" } } - baseUrl := fmt.Sprintf("https://%s-aiplatform.googleapis.com/v1/projects/%s/locations/%s/publishers/google/models/%s:%s", meta.Config.Region, meta.Config.VertexAIProjectID, meta.Config.Region, meta.ActualModelName, suffix) - return baseUrl, nil + if meta.BaseURL != "" { + return fmt.Sprintf( + "%s/v1/projects/%s/locations/%s/publishers/google/models/%s:%s", + meta.BaseURL, + meta.Config.VertexAIProjectID, + meta.Config.Region, + meta.ActualModelName, + suffix, + ), nil + } + return fmt.Sprintf( + "https://%s-aiplatform.googleapis.com/v1/projects/%s/locations/%s/publishers/google/models/%s:%s", + meta.Config.Region, + meta.Config.VertexAIProjectID, + meta.Config.Region, + meta.ActualModelName, + suffix, + ), nil } func (a *Adaptor) SetupRequestHeader(c *gin.Context, req *http.Request, meta *meta.Meta) error { diff --git a/relay/adaptor/vertexai/claude/adapter.go b/relay/adaptor/vertexai/claude/adapter.go index 1e37f0ff..b39e2dda 100644 --- a/relay/adaptor/vertexai/claude/adapter.go +++ b/relay/adaptor/vertexai/claude/adapter.go @@ -30,13 +30,14 @@ func (a *Adaptor) ConvertRequest(c *gin.Context, relayMode int, request *model.G req := Request{ AnthropicVersion: anthropicVersion, // Model: claudeReq.Model, - Messages: claudeReq.Messages, - MaxTokens: claudeReq.MaxTokens, - Temperature: claudeReq.Temperature, - TopP: claudeReq.TopP, - TopK: claudeReq.TopK, - Stream: claudeReq.Stream, - Tools: claudeReq.Tools, + Messages: claudeReq.Messages, + System: claudeReq.System, + MaxTokens: claudeReq.MaxTokens, + Temperature: claudeReq.Temperature, + TopP: claudeReq.TopP, + TopK: claudeReq.TopK, + Stream: claudeReq.Stream, + Tools: claudeReq.Tools, } c.Set(ctxkey.RequestModel, request.Model)