Support get http header and x-ratelimit-* headers (#507)

* feat: add headers to http response

* feat: support rate limit headers

* fix: go lint

* fix: test coverage

* refactor streamReader

* refactor streamReader

* refactor: NewRateLimitHeaders to newRateLimitHeaders

* refactor: RateLimitHeaders Resets filed

* refactor: move RateLimitHeaders struct
This commit is contained in:
Liu Shuang
2023-10-10 10:29:41 -05:00
committed by GitHub
parent 8e165dc9aa
commit b77d01edca
5 changed files with 191 additions and 5 deletions

View File

@@ -30,8 +30,12 @@ func (h *httpHeader) SetHeader(header http.Header) {
*h = httpHeader(header)
}
func (h httpHeader) Header() http.Header {
return http.Header(h)
func (h *httpHeader) Header() http.Header {
return http.Header(*h)
}
func (h *httpHeader) GetRateLimitHeaders() RateLimitHeaders {
return newRateLimitHeaders(h.Header())
}
// NewClient creates new OpenAI API client.
@@ -156,6 +160,7 @@ func sendRequestStream[T streamable](client *Client, req *http.Request) (*stream
response: resp,
errAccumulator: utils.NewErrorAccumulator(),
unmarshaler: &utils.JSONUnmarshaler{},
httpHeader: httpHeader(resp.Header),
}, nil
}