Fix Refactor assistant api (#545)
* fix: refactor assistant API * fix * trigger build * fix: use AssistantDeleteResponse
This commit is contained in:
92
assistant.go
92
assistant.go
@@ -10,46 +10,43 @@ import (
|
||||
const (
|
||||
assistantsSuffix = "/assistants"
|
||||
assistantsFilesSuffix = "/files"
|
||||
openaiAssistantsV1 = "assistants=v1"
|
||||
)
|
||||
|
||||
type Assistant struct {
|
||||
ID string `json:"id"`
|
||||
Object string `json:"object"`
|
||||
CreatedAt int64 `json:"created_at"`
|
||||
Name *string `json:"name,omitempty"`
|
||||
Description *string `json:"description,omitempty"`
|
||||
Model string `json:"model"`
|
||||
Instructions *string `json:"instructions,omitempty"`
|
||||
Tools []any `json:"tools,omitempty"`
|
||||
ID string `json:"id"`
|
||||
Object string `json:"object"`
|
||||
CreatedAt int64 `json:"created_at"`
|
||||
Name *string `json:"name,omitempty"`
|
||||
Description *string `json:"description,omitempty"`
|
||||
Model string `json:"model"`
|
||||
Instructions *string `json:"instructions,omitempty"`
|
||||
Tools []AssistantTool `json:"tools,omitempty"`
|
||||
|
||||
httpHeader
|
||||
}
|
||||
|
||||
type AssistantToolType string
|
||||
|
||||
const (
|
||||
AssistantToolTypeCodeInterpreter AssistantToolType = "code_interpreter"
|
||||
AssistantToolTypeRetrieval AssistantToolType = "retrieval"
|
||||
AssistantToolTypeFunction AssistantToolType = "function"
|
||||
)
|
||||
|
||||
type AssistantTool struct {
|
||||
Type string `json:"type"`
|
||||
}
|
||||
|
||||
type AssistantToolCodeInterpreter struct {
|
||||
AssistantTool
|
||||
}
|
||||
|
||||
type AssistantToolRetrieval struct {
|
||||
AssistantTool
|
||||
}
|
||||
|
||||
type AssistantToolFunction struct {
|
||||
AssistantTool
|
||||
Function FunctionDefinition `json:"function"`
|
||||
Type AssistantToolType `json:"type"`
|
||||
Function *FunctionDefinition `json:"function,omitempty"`
|
||||
}
|
||||
|
||||
type AssistantRequest struct {
|
||||
Model string `json:"model"`
|
||||
Name *string `json:"name,omitempty"`
|
||||
Description *string `json:"description,omitempty"`
|
||||
Instructions *string `json:"instructions,omitempty"`
|
||||
Tools []any `json:"tools,omitempty"`
|
||||
FileIDs []string `json:"file_ids,omitempty"`
|
||||
Metadata map[string]any `json:"metadata,omitempty"`
|
||||
Model string `json:"model"`
|
||||
Name *string `json:"name,omitempty"`
|
||||
Description *string `json:"description,omitempty"`
|
||||
Instructions *string `json:"instructions,omitempty"`
|
||||
Tools []AssistantTool `json:"tools,omitempty"`
|
||||
FileIDs []string `json:"file_ids,omitempty"`
|
||||
Metadata map[string]any `json:"metadata,omitempty"`
|
||||
}
|
||||
|
||||
// AssistantsList is a list of assistants.
|
||||
@@ -59,6 +56,14 @@ type AssistantsList struct {
|
||||
httpHeader
|
||||
}
|
||||
|
||||
type AssistantDeleteResponse struct {
|
||||
ID string `json:"id"`
|
||||
Object string `json:"object"`
|
||||
Deleted bool `json:"deleted"`
|
||||
|
||||
httpHeader
|
||||
}
|
||||
|
||||
type AssistantFile struct {
|
||||
ID string `json:"id"`
|
||||
Object string `json:"object"`
|
||||
@@ -80,7 +85,8 @@ 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))
|
||||
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(assistantsSuffix), withBody(request),
|
||||
withBetaAssistantV1())
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -95,7 +101,8 @@ func (c *Client) RetrieveAssistant(
|
||||
assistantID string,
|
||||
) (response Assistant, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s", assistantsSuffix, assistantID)
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix))
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -111,7 +118,8 @@ func (c *Client) ModifyAssistant(
|
||||
request AssistantRequest,
|
||||
) (response Assistant, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s", assistantsSuffix, assistantID)
|
||||
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix), withBody(request))
|
||||
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix), withBody(request),
|
||||
withBetaAssistantV1())
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -124,9 +132,10 @@ func (c *Client) ModifyAssistant(
|
||||
func (c *Client) DeleteAssistant(
|
||||
ctx context.Context,
|
||||
assistantID string,
|
||||
) (response Assistant, err error) {
|
||||
) (response AssistantDeleteResponse, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s", assistantsSuffix, assistantID)
|
||||
req, err := c.newRequest(ctx, http.MethodDelete, c.fullURL(urlSuffix))
|
||||
req, err := c.newRequest(ctx, http.MethodDelete, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -163,7 +172,8 @@ func (c *Client) ListAssistants(
|
||||
}
|
||||
|
||||
urlSuffix := fmt.Sprintf("%s%s", assistantsSuffix, encodedValues)
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix))
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -180,7 +190,8 @@ func (c *Client) CreateAssistantFile(
|
||||
) (response AssistantFile, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s", assistantsSuffix, assistantID, assistantsFilesSuffix)
|
||||
req, err := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix),
|
||||
withBody(request))
|
||||
withBody(request),
|
||||
withBetaAssistantV1())
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -196,7 +207,8 @@ func (c *Client) RetrieveAssistantFile(
|
||||
fileID string,
|
||||
) (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))
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -212,7 +224,8 @@ func (c *Client) DeleteAssistantFile(
|
||||
fileID string,
|
||||
) (err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s/%s", assistantsSuffix, assistantID, assistantsFilesSuffix, fileID)
|
||||
req, err := c.newRequest(ctx, http.MethodDelete, c.fullURL(urlSuffix))
|
||||
req, err := c.newRequest(ctx, http.MethodDelete, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -250,7 +263,8 @@ 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))
|
||||
req, err := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantV1())
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user