@@ -6,43 +6,34 @@ import (
6
6
"net/http"
7
7
)
8
8
9
- const apiURLv1 = "https://api.openai.com/v1"
10
-
11
- func newTransport () * http.Client {
12
- return & http.Client {}
13
- }
14
-
15
9
// Client is OpenAI GPT-3 API client.
16
10
type Client struct {
17
- BaseURL string
18
- HTTPClient * http.Client
19
- authToken string
20
- idOrg string
11
+ config ClientConfig
21
12
}
22
13
23
14
// NewClient creates new OpenAI API client.
24
15
func NewClient (authToken string ) * Client {
25
- return & Client {
26
- BaseURL : apiURLv1 ,
27
- HTTPClient : newTransport (),
28
- authToken : authToken ,
29
- idOrg : "" ,
30
- }
16
+ config := DefaultConfig (authToken )
17
+ return & Client {config }
18
+ }
19
+
20
+ // NewClientWithConfig creates new OpenAI API client for specified config.
21
+ func NewClientWithConfig (config ClientConfig ) * Client {
22
+ return & Client {config }
31
23
}
32
24
33
25
// NewOrgClient creates new OpenAI API client for specified Organization ID.
26
+ //
27
+ // Deprecated: Please use NewClientWithConfig.
34
28
func NewOrgClient (authToken , org string ) * Client {
35
- return & Client {
36
- BaseURL : apiURLv1 ,
37
- HTTPClient : newTransport (),
38
- authToken : authToken ,
39
- idOrg : org ,
40
- }
29
+ config := DefaultConfig (authToken )
30
+ config .OrgID = org
31
+ return & Client {config }
41
32
}
42
33
43
34
func (c * Client ) sendRequest (req * http.Request , v interface {}) error {
44
35
req .Header .Set ("Accept" , "application/json; charset=utf-8" )
45
- req .Header .Set ("Authorization" , fmt .Sprintf ("Bearer %s" , c .authToken ))
36
+ req .Header .Set ("Authorization" , fmt .Sprintf ("Bearer %s" , c .config . authToken ))
46
37
47
38
// Check whether Content-Type is already set, Upload Files API requires
48
39
// Content-Type == multipart/form-data
@@ -51,11 +42,11 @@ func (c *Client) sendRequest(req *http.Request, v interface{}) error {
51
42
req .Header .Set ("Content-Type" , "application/json; charset=utf-8" )
52
43
}
53
44
54
- if len (c .idOrg ) > 0 {
55
- req .Header .Set ("OpenAI-Organization" , c .idOrg )
45
+ if len (c .config . OrgID ) > 0 {
46
+ req .Header .Set ("OpenAI-Organization" , c .config . OrgID )
56
47
}
57
48
58
- res , err := c .HTTPClient .Do (req )
49
+ res , err := c .config . HTTPClient .Do (req )
59
50
if err != nil {
60
51
return err
61
52
}
@@ -86,5 +77,5 @@ func (c *Client) sendRequest(req *http.Request, v interface{}) error {
86
77
}
87
78
88
79
func (c * Client ) fullURL (suffix string ) string {
89
- return fmt .Sprintf ("%s%s" , c .BaseURL , suffix )
80
+ return fmt .Sprintf ("%s%s" , c .config . BaseURL , suffix )
90
81
}
0 commit comments