Skip to content

Commit 8d15a37

Browse files
Remove hardcoded assistants version (#719)
1 parent c6a63ed commit 8d15a37

File tree

6 files changed

+44
-45
lines changed

6 files changed

+44
-45
lines changed

assistant.go

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
const (
1212
assistantsSuffix = "/assistants"
1313
assistantsFilesSuffix = "/files"
14-
openaiAssistantsV1 = "assistants=v1"
1514
)
1615

1716
type Assistant struct {
@@ -116,7 +115,7 @@ type AssistantFilesList struct {
116115
// CreateAssistant creates a new assistant.
117116
func (c *Client) CreateAssistant(ctx context.Context, request AssistantRequest) (response Assistant, err error) {
118117
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(assistantsSuffix), withBody(request),
119-
withBetaAssistantV1())
118+
withBetaAssistantVersion(c.config.AssistantVersion))
120119
if err != nil {
121120
return
122121
}
@@ -132,7 +131,7 @@ func (c *Client) RetrieveAssistant(
132131
) (response Assistant, err error) {
133132
urlSuffix := fmt.Sprintf("%s/%s", assistantsSuffix, assistantID)
134133
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
135-
withBetaAssistantV1())
134+
withBetaAssistantVersion(c.config.AssistantVersion))
136135
if err != nil {
137136
return
138137
}
@@ -149,7 +148,7 @@ func (c *Client) ModifyAssistant(
149148
) (response Assistant, err error) {
150149
urlSuffix := fmt.Sprintf("%s/%s", assistantsSuffix, assistantID)
151150
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix), withBody(request),
152-
withBetaAssistantV1())
151+
withBetaAssistantVersion(c.config.AssistantVersion))
153152
if err != nil {
154153
return
155154
}
@@ -165,7 +164,7 @@ func (c *Client) DeleteAssistant(
165164
) (response AssistantDeleteResponse, err error) {
166165
urlSuffix := fmt.Sprintf("%s/%s", assistantsSuffix, assistantID)
167166
req, err := c.newRequest(ctx, http.MethodDelete, c.fullURL(urlSuffix),
168-
withBetaAssistantV1())
167+
withBetaAssistantVersion(c.config.AssistantVersion))
169168
if err != nil {
170169
return
171170
}
@@ -203,7 +202,7 @@ func (c *Client) ListAssistants(
203202

204203
urlSuffix := fmt.Sprintf("%s%s", assistantsSuffix, encodedValues)
205204
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
206-
withBetaAssistantV1())
205+
withBetaAssistantVersion(c.config.AssistantVersion))
207206
if err != nil {
208207
return
209208
}
@@ -221,7 +220,7 @@ func (c *Client) CreateAssistantFile(
221220
urlSuffix := fmt.Sprintf("%s/%s%s", assistantsSuffix, assistantID, assistantsFilesSuffix)
222221
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix),
223222
withBody(request),
224-
withBetaAssistantV1())
223+
withBetaAssistantVersion(c.config.AssistantVersion))
225224
if err != nil {
226225
return
227226
}
@@ -238,7 +237,7 @@ func (c *Client) RetrieveAssistantFile(
238237
) (response AssistantFile, err error) {
239238
urlSuffix := fmt.Sprintf("%s/%s%s/%s", assistantsSuffix, assistantID, assistantsFilesSuffix, fileID)
240239
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
241-
withBetaAssistantV1())
240+
withBetaAssistantVersion(c.config.AssistantVersion))
242241
if err != nil {
243242
return
244243
}
@@ -255,7 +254,7 @@ func (c *Client) DeleteAssistantFile(
255254
) (err error) {
256255
urlSuffix := fmt.Sprintf("%s/%s%s/%s", assistantsSuffix, assistantID, assistantsFilesSuffix, fileID)
257256
req, err := c.newRequest(ctx, http.MethodDelete, c.fullURL(urlSuffix),
258-
withBetaAssistantV1())
257+
withBetaAssistantVersion(c.config.AssistantVersion))
259258
if err != nil {
260259
return
261260
}
@@ -294,7 +293,7 @@ func (c *Client) ListAssistantFiles(
294293

295294
urlSuffix := fmt.Sprintf("%s/%s%s%s", assistantsSuffix, assistantID, assistantsFilesSuffix, encodedValues)
296295
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
297-
withBetaAssistantV1())
296+
withBetaAssistantVersion(c.config.AssistantVersion))
298297
if err != nil {
299298
return
300299
}

client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ func withContentType(contentType string) requestOption {
8989
}
9090
}
9191

92-
func withBetaAssistantV1() requestOption {
92+
func withBetaAssistantVersion(version string) requestOption {
9393
return func(args *requestOptions) {
94-
args.header.Set("OpenAI-Beta", "assistants=v1")
94+
args.header.Set("OpenAI-Beta", fmt.Sprintf("assistants=%s", version))
9595
}
9696
}
9797

config.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,17 @@ const (
2323

2424
const AzureAPIKeyHeader = "api-key"
2525

26+
const defaultAssistantVersion = "v1" // This will be deprecated by the end of 2024.
27+
2628
// ClientConfig is a configuration of a client.
2729
type ClientConfig struct {
2830
authToken string
2931

3032
BaseURL string
3133
OrgID string
3234
APIType APIType
33-
APIVersion string // required when APIType is APITypeAzure or APITypeAzureAD
35+
APIVersion string // required when APIType is APITypeAzure or APITypeAzureAD
36+
AssistantVersion string
3437
AzureModelMapperFunc func(model string) string // replace model to azure deployment name func
3538
HTTPClient *http.Client
3639

@@ -39,10 +42,11 @@ type ClientConfig struct {
3942

4043
func DefaultConfig(authToken string) ClientConfig {
4144
return ClientConfig{
42-
authToken: authToken,
43-
BaseURL: openaiAPIURLv1,
44-
APIType: APITypeOpenAI,
45-
OrgID: "",
45+
authToken: authToken,
46+
BaseURL: openaiAPIURLv1,
47+
APIType: APITypeOpenAI,
48+
AssistantVersion: defaultAssistantVersion,
49+
OrgID: "",
4650

4751
HTTPClient: &http.Client{},
4852

messages.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ type MessageFilesList struct {
7676
// CreateMessage creates a new message.
7777
func (c *Client) CreateMessage(ctx context.Context, threadID string, request MessageRequest) (msg Message, err error) {
7878
urlSuffix := fmt.Sprintf("/threads/%s/%s", threadID, messagesSuffix)
79-
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix), withBody(request), withBetaAssistantV1())
79+
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix), withBody(request),
80+
withBetaAssistantVersion(c.config.AssistantVersion))
8081
if err != nil {
8182
return
8283
}
@@ -111,7 +112,8 @@ func (c *Client) ListMessage(ctx context.Context, threadID string,
111112
}
112113

113114
urlSuffix := fmt.Sprintf("/threads/%s/%s%s", threadID, messagesSuffix, encodedValues)
114-
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix), withBetaAssistantV1())
115+
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
116+
withBetaAssistantVersion(c.config.AssistantVersion))
115117
if err != nil {
116118
return
117119
}
@@ -126,7 +128,8 @@ func (c *Client) RetrieveMessage(
126128
threadID, messageID string,
127129
) (msg Message, err error) {
128130
urlSuffix := fmt.Sprintf("/threads/%s/%s/%s", threadID, messagesSuffix, messageID)
129-
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix), withBetaAssistantV1())
131+
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
132+
withBetaAssistantVersion(c.config.AssistantVersion))
130133
if err != nil {
131134
return
132135
}
@@ -143,7 +146,7 @@ func (c *Client) ModifyMessage(
143146
) (msg Message, err error) {
144147
urlSuffix := fmt.Sprintf("/threads/%s/%s/%s", threadID, messagesSuffix, messageID)
145148
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix),
146-
withBody(map[string]any{"metadata": metadata}), withBetaAssistantV1())
149+
withBody(map[string]any{"metadata": metadata}), withBetaAssistantVersion(c.config.AssistantVersion))
147150
if err != nil {
148151
return
149152
}
@@ -158,7 +161,8 @@ func (c *Client) RetrieveMessageFile(
158161
threadID, messageID, fileID string,
159162
) (file MessageFile, err error) {
160163
urlSuffix := fmt.Sprintf("/threads/%s/%s/%s/files/%s", threadID, messagesSuffix, messageID, fileID)
161-
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix), withBetaAssistantV1())
164+
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
165+
withBetaAssistantVersion(c.config.AssistantVersion))
162166
if err != nil {
163167
return
164168
}
@@ -173,7 +177,8 @@ func (c *Client) ListMessageFiles(
173177
threadID, messageID string,
174178
) (files MessageFilesList, err error) {
175179
urlSuffix := fmt.Sprintf("/threads/%s/%s/%s/files", threadID, messagesSuffix, messageID)
176-
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix), withBetaAssistantV1())
180+
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
181+
withBetaAssistantVersion(c.config.AssistantVersion))
177182
if err != nil {
178183
return
179184
}

run.go

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,7 @@ func (c *Client) CreateRun(
226226
http.MethodPost,
227227
c.fullURL(urlSuffix),
228228
withBody(request),
229-
withBetaAssistantV1(),
230-
)
229+
withBetaAssistantVersion(c.config.AssistantVersion))
231230
if err != nil {
232231
return
233232
}
@@ -247,8 +246,7 @@ func (c *Client) RetrieveRun(
247246
ctx,
248247
http.MethodGet,
249248
c.fullURL(urlSuffix),
250-
withBetaAssistantV1(),
251-
)
249+
withBetaAssistantVersion(c.config.AssistantVersion))
252250
if err != nil {
253251
return
254252
}
@@ -270,8 +268,7 @@ func (c *Client) ModifyRun(
270268
http.MethodPost,
271269
c.fullURL(urlSuffix),
272270
withBody(request),
273-
withBetaAssistantV1(),
274-
)
271+
withBetaAssistantVersion(c.config.AssistantVersion))
275272
if err != nil {
276273
return
277274
}
@@ -310,8 +307,7 @@ func (c *Client) ListRuns(
310307
ctx,
311308
http.MethodGet,
312309
c.fullURL(urlSuffix),
313-
withBetaAssistantV1(),
314-
)
310+
withBetaAssistantVersion(c.config.AssistantVersion))
315311
if err != nil {
316312
return
317313
}
@@ -332,8 +328,7 @@ func (c *Client) SubmitToolOutputs(
332328
http.MethodPost,
333329
c.fullURL(urlSuffix),
334330
withBody(request),
335-
withBetaAssistantV1(),
336-
)
331+
withBetaAssistantVersion(c.config.AssistantVersion))
337332
if err != nil {
338333
return
339334
}
@@ -352,8 +347,7 @@ func (c *Client) CancelRun(
352347
ctx,
353348
http.MethodPost,
354349
c.fullURL(urlSuffix),
355-
withBetaAssistantV1(),
356-
)
350+
withBetaAssistantVersion(c.config.AssistantVersion))
357351
if err != nil {
358352
return
359353
}
@@ -372,8 +366,7 @@ func (c *Client) CreateThreadAndRun(
372366
http.MethodPost,
373367
c.fullURL(urlSuffix),
374368
withBody(request),
375-
withBetaAssistantV1(),
376-
)
369+
withBetaAssistantVersion(c.config.AssistantVersion))
377370
if err != nil {
378371
return
379372
}
@@ -394,8 +387,7 @@ func (c *Client) RetrieveRunStep(
394387
ctx,
395388
http.MethodGet,
396389
c.fullURL(urlSuffix),
397-
withBetaAssistantV1(),
398-
)
390+
withBetaAssistantVersion(c.config.AssistantVersion))
399391
if err != nil {
400392
return
401393
}
@@ -435,8 +427,7 @@ func (c *Client) ListRunSteps(
435427
ctx,
436428
http.MethodGet,
437429
c.fullURL(urlSuffix),
438-
withBetaAssistantV1(),
439-
)
430+
withBetaAssistantVersion(c.config.AssistantVersion))
440431
if err != nil {
441432
return
442433
}

thread.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ type ThreadDeleteResponse struct {
5151
// CreateThread creates a new thread.
5252
func (c *Client) CreateThread(ctx context.Context, request ThreadRequest) (response Thread, err error) {
5353
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(threadsSuffix), withBody(request),
54-
withBetaAssistantV1())
54+
withBetaAssistantVersion(c.config.AssistantVersion))
5555
if err != nil {
5656
return
5757
}
@@ -64,7 +64,7 @@ func (c *Client) CreateThread(ctx context.Context, request ThreadRequest) (respo
6464
func (c *Client) RetrieveThread(ctx context.Context, threadID string) (response Thread, err error) {
6565
urlSuffix := threadsSuffix + "/" + threadID
6666
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
67-
withBetaAssistantV1())
67+
withBetaAssistantVersion(c.config.AssistantVersion))
6868
if err != nil {
6969
return
7070
}
@@ -81,7 +81,7 @@ func (c *Client) ModifyThread(
8181
) (response Thread, err error) {
8282
urlSuffix := threadsSuffix + "/" + threadID
8383
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix), withBody(request),
84-
withBetaAssistantV1())
84+
withBetaAssistantVersion(c.config.AssistantVersion))
8585
if err != nil {
8686
return
8787
}
@@ -97,7 +97,7 @@ func (c *Client) DeleteThread(
9797
) (response ThreadDeleteResponse, err error) {
9898
urlSuffix := threadsSuffix + "/" + threadID
9999
req, err := c.newRequest(ctx, http.MethodDelete, c.fullURL(urlSuffix),
100-
withBetaAssistantV1())
100+
withBetaAssistantVersion(c.config.AssistantVersion))
101101
if err != nil {
102102
return
103103
}

0 commit comments

Comments
 (0)