From e61d41f0739a883f21ddc0b2778a588700bf960e Mon Sep 17 00:00:00 2001 From: liushuang Date: Tue, 10 Oct 2023 22:42:47 +0800 Subject: [PATCH] refactor: move RateLimitHeaders struct --- models.go | 40 ---------------------------------------- ratelimit.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 40 deletions(-) create mode 100644 ratelimit.go diff --git a/models.go b/models.go index 6e341952..d94f9883 100644 --- a/models.go +++ b/models.go @@ -4,8 +4,6 @@ import ( "context" "fmt" "net/http" - "strconv" - "time" ) // Model struct represents an OpenAPI model. @@ -90,41 +88,3 @@ func (c *Client) DeleteFineTuneModel(ctx context.Context, modelID string) ( err = c.sendRequest(req, &response) return } - -// RateLimitHeaders struct represents Openai rate limits headers. -type RateLimitHeaders struct { - createTime time.Time - LimitRequests int `json:"x-ratelimit-limit-requests"` - LimitTokens int `json:"x-ratelimit-limit-tokens"` - RemainingRequests int `json:"x-ratelimit-remaining-requests"` - RemainingTokens int `json:"x-ratelimit-remaining-tokens"` - ResetRequests ResetTime `json:"x-ratelimit-reset-requests"` - ResetTokens ResetTime `json:"x-ratelimit-reset-tokens"` -} - -type ResetTime string - -func (r ResetTime) String() string { - return string(r) -} - -func (r ResetTime) Time() time.Time { - d, _ := time.ParseDuration(string(r)) - return time.Now().Add(d) -} - -func newRateLimitHeaders(h http.Header) RateLimitHeaders { - limitReq, _ := strconv.Atoi(h.Get("x-ratelimit-limit-requests")) - limitTokens, _ := strconv.Atoi(h.Get("x-ratelimit-limit-tokens")) - remainingReq, _ := strconv.Atoi(h.Get("x-ratelimit-remaining-requests")) - remainingTokens, _ := strconv.Atoi(h.Get("x-ratelimit-remaining-tokens")) - return RateLimitHeaders{ - createTime: time.Now(), - LimitRequests: limitReq, - LimitTokens: limitTokens, - RemainingRequests: remainingReq, - RemainingTokens: remainingTokens, - ResetRequests: ResetTime(h.Get("x-ratelimit-reset-requests")), - ResetTokens: ResetTime(h.Get("x-ratelimit-reset-tokens")), - } -} diff --git a/ratelimit.go b/ratelimit.go new file mode 100644 index 00000000..e8953f71 --- /dev/null +++ b/ratelimit.go @@ -0,0 +1,43 @@ +package openai + +import ( + "net/http" + "strconv" + "time" +) + +// RateLimitHeaders struct represents Openai rate limits headers. +type RateLimitHeaders struct { + LimitRequests int `json:"x-ratelimit-limit-requests"` + LimitTokens int `json:"x-ratelimit-limit-tokens"` + RemainingRequests int `json:"x-ratelimit-remaining-requests"` + RemainingTokens int `json:"x-ratelimit-remaining-tokens"` + ResetRequests ResetTime `json:"x-ratelimit-reset-requests"` + ResetTokens ResetTime `json:"x-ratelimit-reset-tokens"` +} + +type ResetTime string + +func (r ResetTime) String() string { + return string(r) +} + +func (r ResetTime) Time() time.Time { + d, _ := time.ParseDuration(string(r)) + return time.Now().Add(d) +} + +func newRateLimitHeaders(h http.Header) RateLimitHeaders { + limitReq, _ := strconv.Atoi(h.Get("x-ratelimit-limit-requests")) + limitTokens, _ := strconv.Atoi(h.Get("x-ratelimit-limit-tokens")) + remainingReq, _ := strconv.Atoi(h.Get("x-ratelimit-remaining-requests")) + remainingTokens, _ := strconv.Atoi(h.Get("x-ratelimit-remaining-tokens")) + return RateLimitHeaders{ + LimitRequests: limitReq, + LimitTokens: limitTokens, + RemainingRequests: remainingReq, + RemainingTokens: remainingTokens, + ResetRequests: ResetTime(h.Get("x-ratelimit-reset-requests")), + ResetTokens: ResetTime(h.Get("x-ratelimit-reset-tokens")), + } +}