Remove hardcoded assistants version (#719)
This commit is contained in:
19
assistant.go
19
assistant.go
@@ -11,7 +11,6 @@ import (
|
||||
const (
|
||||
assistantsSuffix = "/assistants"
|
||||
assistantsFilesSuffix = "/files"
|
||||
openaiAssistantsV1 = "assistants=v1"
|
||||
)
|
||||
|
||||
type Assistant struct {
|
||||
@@ -116,7 +115,7 @@ type AssistantFilesList struct {
|
||||
// CreateAssistant creates a new assistant.
|
||||
func (c *Client) CreateAssistant(ctx context.Context, request AssistantRequest) (response Assistant, err error) {
|
||||
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(assistantsSuffix), withBody(request),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -132,7 +131,7 @@ func (c *Client) RetrieveAssistant(
|
||||
) (response Assistant, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s", assistantsSuffix, assistantID)
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -149,7 +148,7 @@ func (c *Client) ModifyAssistant(
|
||||
) (response Assistant, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s", assistantsSuffix, assistantID)
|
||||
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix), withBody(request),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -165,7 +164,7 @@ func (c *Client) DeleteAssistant(
|
||||
) (response AssistantDeleteResponse, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s", assistantsSuffix, assistantID)
|
||||
req, err := c.newRequest(ctx, http.MethodDelete, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -203,7 +202,7 @@ func (c *Client) ListAssistants(
|
||||
|
||||
urlSuffix := fmt.Sprintf("%s%s", assistantsSuffix, encodedValues)
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -221,7 +220,7 @@ func (c *Client) CreateAssistantFile(
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s", assistantsSuffix, assistantID, assistantsFilesSuffix)
|
||||
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix),
|
||||
withBody(request),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -238,7 +237,7 @@ func (c *Client) RetrieveAssistantFile(
|
||||
) (response AssistantFile, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s/%s", assistantsSuffix, assistantID, assistantsFilesSuffix, fileID)
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -255,7 +254,7 @@ func (c *Client) DeleteAssistantFile(
|
||||
) (err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s/%s", assistantsSuffix, assistantID, assistantsFilesSuffix, fileID)
|
||||
req, err := c.newRequest(ctx, http.MethodDelete, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -294,7 +293,7 @@ func (c *Client) ListAssistantFiles(
|
||||
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s%s", assistantsSuffix, assistantID, assistantsFilesSuffix, encodedValues)
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -89,9 +89,9 @@ func withContentType(contentType string) requestOption {
|
||||
}
|
||||
}
|
||||
|
||||
func withBetaAssistantV1() requestOption {
|
||||
func withBetaAssistantVersion(version string) requestOption {
|
||||
return func(args *requestOptions) {
|
||||
args.header.Set("OpenAI-Beta", "assistants=v1")
|
||||
args.header.Set("OpenAI-Beta", fmt.Sprintf("assistants=%s", version))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
14
config.go
14
config.go
@@ -23,6 +23,8 @@ const (
|
||||
|
||||
const AzureAPIKeyHeader = "api-key"
|
||||
|
||||
const defaultAssistantVersion = "v1" // This will be deprecated by the end of 2024.
|
||||
|
||||
// ClientConfig is a configuration of a client.
|
||||
type ClientConfig struct {
|
||||
authToken string
|
||||
@@ -30,7 +32,8 @@ type ClientConfig struct {
|
||||
BaseURL string
|
||||
OrgID string
|
||||
APIType APIType
|
||||
APIVersion string // required when APIType is APITypeAzure or APITypeAzureAD
|
||||
APIVersion string // required when APIType is APITypeAzure or APITypeAzureAD
|
||||
AssistantVersion string
|
||||
AzureModelMapperFunc func(model string) string // replace model to azure deployment name func
|
||||
HTTPClient *http.Client
|
||||
|
||||
@@ -39,10 +42,11 @@ type ClientConfig struct {
|
||||
|
||||
func DefaultConfig(authToken string) ClientConfig {
|
||||
return ClientConfig{
|
||||
authToken: authToken,
|
||||
BaseURL: openaiAPIURLv1,
|
||||
APIType: APITypeOpenAI,
|
||||
OrgID: "",
|
||||
authToken: authToken,
|
||||
BaseURL: openaiAPIURLv1,
|
||||
APIType: APITypeOpenAI,
|
||||
AssistantVersion: defaultAssistantVersion,
|
||||
OrgID: "",
|
||||
|
||||
HTTPClient: &http.Client{},
|
||||
|
||||
|
||||
17
messages.go
17
messages.go
@@ -76,7 +76,8 @@ type MessageFilesList struct {
|
||||
// CreateMessage creates a new message.
|
||||
func (c *Client) CreateMessage(ctx context.Context, threadID string, request MessageRequest) (msg Message, err error) {
|
||||
urlSuffix := fmt.Sprintf("/threads/%s/%s", threadID, messagesSuffix)
|
||||
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix), withBody(request), withBetaAssistantV1())
|
||||
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix), withBody(request),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -111,7 +112,8 @@ func (c *Client) ListMessage(ctx context.Context, threadID string,
|
||||
}
|
||||
|
||||
urlSuffix := fmt.Sprintf("/threads/%s/%s%s", threadID, messagesSuffix, encodedValues)
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix), withBetaAssistantV1())
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -126,7 +128,8 @@ func (c *Client) RetrieveMessage(
|
||||
threadID, messageID string,
|
||||
) (msg Message, err error) {
|
||||
urlSuffix := fmt.Sprintf("/threads/%s/%s/%s", threadID, messagesSuffix, messageID)
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix), withBetaAssistantV1())
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -143,7 +146,7 @@ func (c *Client) ModifyMessage(
|
||||
) (msg Message, err error) {
|
||||
urlSuffix := fmt.Sprintf("/threads/%s/%s/%s", threadID, messagesSuffix, messageID)
|
||||
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix),
|
||||
withBody(map[string]any{"metadata": metadata}), withBetaAssistantV1())
|
||||
withBody(map[string]any{"metadata": metadata}), withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -158,7 +161,8 @@ func (c *Client) RetrieveMessageFile(
|
||||
threadID, messageID, fileID string,
|
||||
) (file MessageFile, err error) {
|
||||
urlSuffix := fmt.Sprintf("/threads/%s/%s/%s/files/%s", threadID, messagesSuffix, messageID, fileID)
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix), withBetaAssistantV1())
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -173,7 +177,8 @@ func (c *Client) ListMessageFiles(
|
||||
threadID, messageID string,
|
||||
) (files MessageFilesList, err error) {
|
||||
urlSuffix := fmt.Sprintf("/threads/%s/%s/%s/files", threadID, messagesSuffix, messageID)
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix), withBetaAssistantV1())
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
27
run.go
27
run.go
@@ -226,8 +226,7 @@ func (c *Client) CreateRun(
|
||||
http.MethodPost,
|
||||
c.fullURL(urlSuffix),
|
||||
withBody(request),
|
||||
withBetaAssistantV1(),
|
||||
)
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -247,8 +246,7 @@ func (c *Client) RetrieveRun(
|
||||
ctx,
|
||||
http.MethodGet,
|
||||
c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1(),
|
||||
)
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -270,8 +268,7 @@ func (c *Client) ModifyRun(
|
||||
http.MethodPost,
|
||||
c.fullURL(urlSuffix),
|
||||
withBody(request),
|
||||
withBetaAssistantV1(),
|
||||
)
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -310,8 +307,7 @@ func (c *Client) ListRuns(
|
||||
ctx,
|
||||
http.MethodGet,
|
||||
c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1(),
|
||||
)
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -332,8 +328,7 @@ func (c *Client) SubmitToolOutputs(
|
||||
http.MethodPost,
|
||||
c.fullURL(urlSuffix),
|
||||
withBody(request),
|
||||
withBetaAssistantV1(),
|
||||
)
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -352,8 +347,7 @@ func (c *Client) CancelRun(
|
||||
ctx,
|
||||
http.MethodPost,
|
||||
c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1(),
|
||||
)
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -372,8 +366,7 @@ func (c *Client) CreateThreadAndRun(
|
||||
http.MethodPost,
|
||||
c.fullURL(urlSuffix),
|
||||
withBody(request),
|
||||
withBetaAssistantV1(),
|
||||
)
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -394,8 +387,7 @@ func (c *Client) RetrieveRunStep(
|
||||
ctx,
|
||||
http.MethodGet,
|
||||
c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1(),
|
||||
)
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -435,8 +427,7 @@ func (c *Client) ListRunSteps(
|
||||
ctx,
|
||||
http.MethodGet,
|
||||
c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1(),
|
||||
)
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ type ThreadDeleteResponse struct {
|
||||
// CreateThread creates a new thread.
|
||||
func (c *Client) CreateThread(ctx context.Context, request ThreadRequest) (response Thread, err error) {
|
||||
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(threadsSuffix), withBody(request),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -64,7 +64,7 @@ func (c *Client) CreateThread(ctx context.Context, request ThreadRequest) (respo
|
||||
func (c *Client) RetrieveThread(ctx context.Context, threadID string) (response Thread, err error) {
|
||||
urlSuffix := threadsSuffix + "/" + threadID
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -81,7 +81,7 @@ func (c *Client) ModifyThread(
|
||||
) (response Thread, err error) {
|
||||
urlSuffix := threadsSuffix + "/" + threadID
|
||||
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix), withBody(request),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -97,7 +97,7 @@ func (c *Client) DeleteThread(
|
||||
) (response ThreadDeleteResponse, err error) {
|
||||
urlSuffix := threadsSuffix + "/" + threadID
|
||||
req, err := c.newRequest(ctx, http.MethodDelete, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user