Integrate BACKBEAT SDK and resolve KACHING license validation
Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
348
vendor/github.com/sashabaranov/go-openai/vector_store.go
generated
vendored
Normal file
348
vendor/github.com/sashabaranov/go-openai/vector_store.go
generated
vendored
Normal file
@@ -0,0 +1,348 @@
|
||||
package openai
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
const (
|
||||
vectorStoresSuffix = "/vector_stores"
|
||||
vectorStoresFilesSuffix = "/files"
|
||||
vectorStoresFileBatchesSuffix = "/file_batches"
|
||||
)
|
||||
|
||||
type VectorStoreFileCount struct {
|
||||
InProgress int `json:"in_progress"`
|
||||
Completed int `json:"completed"`
|
||||
Failed int `json:"failed"`
|
||||
Cancelled int `json:"cancelled"`
|
||||
Total int `json:"total"`
|
||||
}
|
||||
|
||||
type VectorStore struct {
|
||||
ID string `json:"id"`
|
||||
Object string `json:"object"`
|
||||
CreatedAt int64 `json:"created_at"`
|
||||
Name string `json:"name"`
|
||||
UsageBytes int `json:"usage_bytes"`
|
||||
FileCounts VectorStoreFileCount `json:"file_counts"`
|
||||
Status string `json:"status"`
|
||||
ExpiresAfter *VectorStoreExpires `json:"expires_after"`
|
||||
ExpiresAt *int `json:"expires_at"`
|
||||
Metadata map[string]any `json:"metadata"`
|
||||
|
||||
httpHeader
|
||||
}
|
||||
|
||||
type VectorStoreExpires struct {
|
||||
Anchor string `json:"anchor"`
|
||||
Days int `json:"days"`
|
||||
}
|
||||
|
||||
// VectorStoreRequest provides the vector store request parameters.
|
||||
type VectorStoreRequest struct {
|
||||
Name string `json:"name,omitempty"`
|
||||
FileIDs []string `json:"file_ids,omitempty"`
|
||||
ExpiresAfter *VectorStoreExpires `json:"expires_after,omitempty"`
|
||||
Metadata map[string]any `json:"metadata,omitempty"`
|
||||
}
|
||||
|
||||
// VectorStoresList is a list of vector store.
|
||||
type VectorStoresList struct {
|
||||
VectorStores []VectorStore `json:"data"`
|
||||
LastID *string `json:"last_id"`
|
||||
FirstID *string `json:"first_id"`
|
||||
HasMore bool `json:"has_more"`
|
||||
httpHeader
|
||||
}
|
||||
|
||||
type VectorStoreDeleteResponse struct {
|
||||
ID string `json:"id"`
|
||||
Object string `json:"object"`
|
||||
Deleted bool `json:"deleted"`
|
||||
|
||||
httpHeader
|
||||
}
|
||||
|
||||
type VectorStoreFile struct {
|
||||
ID string `json:"id"`
|
||||
Object string `json:"object"`
|
||||
CreatedAt int64 `json:"created_at"`
|
||||
VectorStoreID string `json:"vector_store_id"`
|
||||
UsageBytes int `json:"usage_bytes"`
|
||||
Status string `json:"status"`
|
||||
|
||||
httpHeader
|
||||
}
|
||||
|
||||
type VectorStoreFileRequest struct {
|
||||
FileID string `json:"file_id"`
|
||||
}
|
||||
|
||||
type VectorStoreFilesList struct {
|
||||
VectorStoreFiles []VectorStoreFile `json:"data"`
|
||||
FirstID *string `json:"first_id"`
|
||||
LastID *string `json:"last_id"`
|
||||
HasMore bool `json:"has_more"`
|
||||
|
||||
httpHeader
|
||||
}
|
||||
|
||||
type VectorStoreFileBatch struct {
|
||||
ID string `json:"id"`
|
||||
Object string `json:"object"`
|
||||
CreatedAt int64 `json:"created_at"`
|
||||
VectorStoreID string `json:"vector_store_id"`
|
||||
Status string `json:"status"`
|
||||
FileCounts VectorStoreFileCount `json:"file_counts"`
|
||||
|
||||
httpHeader
|
||||
}
|
||||
|
||||
type VectorStoreFileBatchRequest struct {
|
||||
FileIDs []string `json:"file_ids"`
|
||||
}
|
||||
|
||||
// CreateVectorStore creates a new vector store.
|
||||
func (c *Client) CreateVectorStore(ctx context.Context, request VectorStoreRequest) (response VectorStore, err error) {
|
||||
req, _ := c.newRequest(
|
||||
ctx,
|
||||
http.MethodPost,
|
||||
c.fullURL(vectorStoresSuffix),
|
||||
withBody(request),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion),
|
||||
)
|
||||
|
||||
err = c.sendRequest(req, &response)
|
||||
return
|
||||
}
|
||||
|
||||
// RetrieveVectorStore retrieves an vector store.
|
||||
func (c *Client) RetrieveVectorStore(
|
||||
ctx context.Context,
|
||||
vectorStoreID string,
|
||||
) (response VectorStore, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s", vectorStoresSuffix, vectorStoreID)
|
||||
req, _ := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
|
||||
err = c.sendRequest(req, &response)
|
||||
return
|
||||
}
|
||||
|
||||
// ModifyVectorStore modifies a vector store.
|
||||
func (c *Client) ModifyVectorStore(
|
||||
ctx context.Context,
|
||||
vectorStoreID string,
|
||||
request VectorStoreRequest,
|
||||
) (response VectorStore, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s", vectorStoresSuffix, vectorStoreID)
|
||||
req, _ := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix), withBody(request),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
|
||||
err = c.sendRequest(req, &response)
|
||||
return
|
||||
}
|
||||
|
||||
// DeleteVectorStore deletes an vector store.
|
||||
func (c *Client) DeleteVectorStore(
|
||||
ctx context.Context,
|
||||
vectorStoreID string,
|
||||
) (response VectorStoreDeleteResponse, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s", vectorStoresSuffix, vectorStoreID)
|
||||
req, _ := c.newRequest(ctx, http.MethodDelete, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
|
||||
err = c.sendRequest(req, &response)
|
||||
return
|
||||
}
|
||||
|
||||
// ListVectorStores Lists the currently available vector store.
|
||||
func (c *Client) ListVectorStores(
|
||||
ctx context.Context,
|
||||
pagination Pagination,
|
||||
) (response VectorStoresList, err error) {
|
||||
urlValues := url.Values{}
|
||||
|
||||
if pagination.After != nil {
|
||||
urlValues.Add("after", *pagination.After)
|
||||
}
|
||||
if pagination.Order != nil {
|
||||
urlValues.Add("order", *pagination.Order)
|
||||
}
|
||||
if pagination.Limit != nil {
|
||||
urlValues.Add("limit", fmt.Sprintf("%d", *pagination.Limit))
|
||||
}
|
||||
if pagination.Before != nil {
|
||||
urlValues.Add("before", *pagination.Before)
|
||||
}
|
||||
|
||||
encodedValues := ""
|
||||
if len(urlValues) > 0 {
|
||||
encodedValues = "?" + urlValues.Encode()
|
||||
}
|
||||
|
||||
urlSuffix := fmt.Sprintf("%s%s", vectorStoresSuffix, encodedValues)
|
||||
req, _ := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
|
||||
err = c.sendRequest(req, &response)
|
||||
return
|
||||
}
|
||||
|
||||
// CreateVectorStoreFile creates a new vector store file.
|
||||
func (c *Client) CreateVectorStoreFile(
|
||||
ctx context.Context,
|
||||
vectorStoreID string,
|
||||
request VectorStoreFileRequest,
|
||||
) (response VectorStoreFile, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s", vectorStoresSuffix, vectorStoreID, vectorStoresFilesSuffix)
|
||||
req, _ := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix),
|
||||
withBody(request),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
|
||||
err = c.sendRequest(req, &response)
|
||||
return
|
||||
}
|
||||
|
||||
// RetrieveVectorStoreFile retrieves a vector store file.
|
||||
func (c *Client) RetrieveVectorStoreFile(
|
||||
ctx context.Context,
|
||||
vectorStoreID string,
|
||||
fileID string,
|
||||
) (response VectorStoreFile, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s/%s", vectorStoresSuffix, vectorStoreID, vectorStoresFilesSuffix, fileID)
|
||||
req, _ := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
|
||||
err = c.sendRequest(req, &response)
|
||||
return
|
||||
}
|
||||
|
||||
// DeleteVectorStoreFile deletes an existing file.
|
||||
func (c *Client) DeleteVectorStoreFile(
|
||||
ctx context.Context,
|
||||
vectorStoreID string,
|
||||
fileID string,
|
||||
) (err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s/%s", vectorStoresSuffix, vectorStoreID, vectorStoresFilesSuffix, fileID)
|
||||
req, _ := c.newRequest(ctx, http.MethodDelete, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
|
||||
err = c.sendRequest(req, nil)
|
||||
return
|
||||
}
|
||||
|
||||
// ListVectorStoreFiles Lists the currently available files for a vector store.
|
||||
func (c *Client) ListVectorStoreFiles(
|
||||
ctx context.Context,
|
||||
vectorStoreID string,
|
||||
pagination Pagination,
|
||||
) (response VectorStoreFilesList, err error) {
|
||||
urlValues := url.Values{}
|
||||
if pagination.After != nil {
|
||||
urlValues.Add("after", *pagination.After)
|
||||
}
|
||||
if pagination.Limit != nil {
|
||||
urlValues.Add("limit", fmt.Sprintf("%d", *pagination.Limit))
|
||||
}
|
||||
if pagination.Before != nil {
|
||||
urlValues.Add("before", *pagination.Before)
|
||||
}
|
||||
if pagination.Order != nil {
|
||||
urlValues.Add("order", *pagination.Order)
|
||||
}
|
||||
|
||||
encodedValues := ""
|
||||
if len(urlValues) > 0 {
|
||||
encodedValues = "?" + urlValues.Encode()
|
||||
}
|
||||
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s%s", vectorStoresSuffix, vectorStoreID, vectorStoresFilesSuffix, encodedValues)
|
||||
req, _ := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
|
||||
err = c.sendRequest(req, &response)
|
||||
return
|
||||
}
|
||||
|
||||
// CreateVectorStoreFileBatch creates a new vector store file batch.
|
||||
func (c *Client) CreateVectorStoreFileBatch(
|
||||
ctx context.Context,
|
||||
vectorStoreID string,
|
||||
request VectorStoreFileBatchRequest,
|
||||
) (response VectorStoreFileBatch, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s", vectorStoresSuffix, vectorStoreID, vectorStoresFileBatchesSuffix)
|
||||
req, _ := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix),
|
||||
withBody(request),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
|
||||
err = c.sendRequest(req, &response)
|
||||
return
|
||||
}
|
||||
|
||||
// RetrieveVectorStoreFileBatch retrieves a vector store file batch.
|
||||
func (c *Client) RetrieveVectorStoreFileBatch(
|
||||
ctx context.Context,
|
||||
vectorStoreID string,
|
||||
batchID string,
|
||||
) (response VectorStoreFileBatch, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s/%s", vectorStoresSuffix, vectorStoreID, vectorStoresFileBatchesSuffix, batchID)
|
||||
req, _ := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
|
||||
err = c.sendRequest(req, &response)
|
||||
return
|
||||
}
|
||||
|
||||
// CancelVectorStoreFileBatch cancel a new vector store file batch.
|
||||
func (c *Client) CancelVectorStoreFileBatch(
|
||||
ctx context.Context,
|
||||
vectorStoreID string,
|
||||
batchID string,
|
||||
) (response VectorStoreFileBatch, err error) {
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s/%s%s", vectorStoresSuffix,
|
||||
vectorStoreID, vectorStoresFileBatchesSuffix, batchID, "/cancel")
|
||||
req, _ := c.newRequest(ctx, http.MethodPost, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
|
||||
err = c.sendRequest(req, &response)
|
||||
return
|
||||
}
|
||||
|
||||
// ListVectorStoreFiles Lists the currently available files for a vector store.
|
||||
func (c *Client) ListVectorStoreFilesInBatch(
|
||||
ctx context.Context,
|
||||
vectorStoreID string,
|
||||
batchID string,
|
||||
pagination Pagination,
|
||||
) (response VectorStoreFilesList, err error) {
|
||||
urlValues := url.Values{}
|
||||
if pagination.After != nil {
|
||||
urlValues.Add("after", *pagination.After)
|
||||
}
|
||||
if pagination.Limit != nil {
|
||||
urlValues.Add("limit", fmt.Sprintf("%d", *pagination.Limit))
|
||||
}
|
||||
if pagination.Before != nil {
|
||||
urlValues.Add("before", *pagination.Before)
|
||||
}
|
||||
if pagination.Order != nil {
|
||||
urlValues.Add("order", *pagination.Order)
|
||||
}
|
||||
|
||||
encodedValues := ""
|
||||
if len(urlValues) > 0 {
|
||||
encodedValues = "?" + urlValues.Encode()
|
||||
}
|
||||
|
||||
urlSuffix := fmt.Sprintf("%s/%s%s/%s%s%s", vectorStoresSuffix,
|
||||
vectorStoreID, vectorStoresFileBatchesSuffix, batchID, "/files", encodedValues)
|
||||
req, _ := c.newRequest(ctx, http.MethodGet, c.fullURL(urlSuffix),
|
||||
withBetaAssistantVersion(c.config.AssistantVersion))
|
||||
|
||||
err = c.sendRequest(req, &response)
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user