mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 13:00:52 +08:00
feat(antigravity): add session ID generation and mutex for random source
This commit is contained in:
@@ -15,6 +15,7 @@ import (
|
|||||||
"net/url"
|
"net/url"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
@@ -44,7 +45,10 @@ const (
|
|||||||
refreshSkew = 3000 * time.Second
|
refreshSkew = 3000 * time.Second
|
||||||
)
|
)
|
||||||
|
|
||||||
var randSource = rand.New(rand.NewSource(time.Now().UnixNano()))
|
var (
|
||||||
|
randSource = rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||||
|
randSourceMutex sync.Mutex
|
||||||
|
)
|
||||||
|
|
||||||
// AntigravityExecutor proxies requests to the antigravity upstream.
|
// AntigravityExecutor proxies requests to the antigravity upstream.
|
||||||
type AntigravityExecutor struct {
|
type AntigravityExecutor struct {
|
||||||
@@ -1146,8 +1150,9 @@ func antigravityBaseURLFallbackOrder(auth *cliproxyauth.Auth) []string {
|
|||||||
return []string{base}
|
return []string{base}
|
||||||
}
|
}
|
||||||
return []string{
|
return []string{
|
||||||
antigravityBaseURLProd,
|
|
||||||
antigravityBaseURLDaily,
|
antigravityBaseURLDaily,
|
||||||
|
// antigravityBaseURLAutopush,
|
||||||
|
antigravityBaseURLProd,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1182,6 +1187,7 @@ func geminiToAntigravity(modelName string, payload []byte, projectID string) []b
|
|||||||
template, _ = sjson.Set(template, "project", generateProjectID())
|
template, _ = sjson.Set(template, "project", generateProjectID())
|
||||||
}
|
}
|
||||||
template, _ = sjson.Set(template, "requestId", generateRequestID())
|
template, _ = sjson.Set(template, "requestId", generateRequestID())
|
||||||
|
template, _ = sjson.Set(template, "request.sessionId", generateSessionID())
|
||||||
|
|
||||||
template, _ = sjson.Delete(template, "request.safetySettings")
|
template, _ = sjson.Delete(template, "request.safetySettings")
|
||||||
template, _ = sjson.Set(template, "request.toolConfig.functionCallingConfig.mode", "VALIDATED")
|
template, _ = sjson.Set(template, "request.toolConfig.functionCallingConfig.mode", "VALIDATED")
|
||||||
@@ -1216,11 +1222,20 @@ func generateRequestID() string {
|
|||||||
return "agent-" + uuid.NewString()
|
return "agent-" + uuid.NewString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func generateSessionID() string {
|
||||||
|
randSourceMutex.Lock()
|
||||||
|
n := randSource.Int63n(9_000_000_000_000_000_000)
|
||||||
|
randSourceMutex.Unlock()
|
||||||
|
return "-" + strconv.FormatInt(n, 10)
|
||||||
|
}
|
||||||
|
|
||||||
func generateProjectID() string {
|
func generateProjectID() string {
|
||||||
adjectives := []string{"useful", "bright", "swift", "calm", "bold"}
|
adjectives := []string{"useful", "bright", "swift", "calm", "bold"}
|
||||||
nouns := []string{"fuze", "wave", "spark", "flow", "core"}
|
nouns := []string{"fuze", "wave", "spark", "flow", "core"}
|
||||||
|
randSourceMutex.Lock()
|
||||||
adj := adjectives[randSource.Intn(len(adjectives))]
|
adj := adjectives[randSource.Intn(len(adjectives))]
|
||||||
noun := nouns[randSource.Intn(len(nouns))]
|
noun := nouns[randSource.Intn(len(nouns))]
|
||||||
|
randSourceMutex.Unlock()
|
||||||
randomPart := strings.ToLower(uuid.NewString())[:5]
|
randomPart := strings.ToLower(uuid.NewString())[:5]
|
||||||
return adj + "-" + noun + "-" + randomPart
|
return adj + "-" + noun + "-" + randomPart
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user