| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package vertex
- import (
- "fmt"
- "strings"
- )
- const (
- DefaultAPIVersion = "v1"
- OpenSourceAPIVersion = "v1beta1"
- PublisherGoogle = "google"
- PublisherAnthropic = "anthropic"
- )
- func normalizeVertexBaseURL(baseURL string) string {
- return strings.TrimRight(strings.TrimSpace(baseURL), "/")
- }
- func normalizeVertexRegion(region string) string {
- region = strings.TrimSpace(region)
- if region == "" {
- return "global"
- }
- return region
- }
- func appendVertexAPIVersion(baseURL, version string) string {
- version = strings.Trim(strings.TrimSpace(version), "/")
- if version == "" {
- return baseURL
- }
- if strings.HasSuffix(baseURL, "/"+version) {
- return baseURL
- }
- return baseURL + "/" + version
- }
- func BuildAPIBaseURL(baseURL, version, projectID, region string) string {
- if normalized := normalizeVertexBaseURL(baseURL); normalized != "" {
- normalized = appendVertexAPIVersion(normalized, version)
- region = normalizeVertexRegion(region)
- if strings.TrimSpace(projectID) != "" {
- normalized = fmt.Sprintf("%s/projects/%s/locations/%s", normalized, projectID, region)
- }
- return normalized
- }
- region = normalizeVertexRegion(region)
- if strings.TrimSpace(projectID) == "" {
- if region == "global" {
- return fmt.Sprintf("https://aiplatform.googleapis.com/%s", version)
- }
- return fmt.Sprintf("https://%s-aiplatform.googleapis.com/%s", region, version)
- }
- if region == "global" {
- return fmt.Sprintf("https://aiplatform.googleapis.com/%s/projects/%s/locations/global", version, projectID)
- }
- return fmt.Sprintf("https://%s-aiplatform.googleapis.com/%s/projects/%s/locations/%s", region, version, projectID, region)
- }
- func BuildPublisherModelURL(baseURL, version, projectID, region, publisher, modelName, action string) string {
- return fmt.Sprintf(
- "%s/publishers/%s/models/%s:%s",
- BuildAPIBaseURL(baseURL, version, projectID, region),
- publisher,
- modelName,
- action,
- )
- }
- func BuildGoogleModelURL(baseURL, version, projectID, region, modelName, action string) string {
- return BuildPublisherModelURL(baseURL, version, projectID, region, PublisherGoogle, modelName, action)
- }
- func BuildAnthropicModelURL(baseURL, version, projectID, region, modelName, action string) string {
- return BuildPublisherModelURL(baseURL, version, projectID, region, PublisherAnthropic, modelName, action)
- }
- func BuildOpenSourceChatCompletionsURL(baseURL, projectID, region string) string {
- return fmt.Sprintf(
- "%s/endpoints/openapi/chat/completions",
- BuildAPIBaseURL(baseURL, OpenSourceAPIVersion, projectID, region),
- )
- }
|