diff --git a/pkg/cache/cache.go b/pkg/cache/cache.go index 581332a3..bc499aef 100644 --- a/pkg/cache/cache.go +++ b/pkg/cache/cache.go @@ -5,6 +5,7 @@ import ( "crypto/sha256" "encoding/gob" "encoding/hex" + "encoding/json" "errors" "io/fs" "os" @@ -71,7 +72,7 @@ func (c *Client) CacheDir() string { func (c *Client) cacheKey(key any) (string, error) { hash := sha256.New() - if err := gob.NewEncoder(hash).Encode(key); err != nil { + if err := json.NewEncoder(hash).Encode(key); err != nil { return "", err } digest := hash.Sum(nil) diff --git a/pkg/hash/seed.go b/pkg/hash/seed.go index d5e7ab8c..c8837637 100644 --- a/pkg/hash/seed.go +++ b/pkg/hash/seed.go @@ -1,13 +1,13 @@ package hash import ( - "encoding/gob" + "encoding/json" "hash/fnv" ) func Seed(input any) int { h := fnv.New32a() - if err := gob.NewEncoder(h).Encode(input); err != nil { + if err := json.NewEncoder(h).Encode(input); err != nil { panic(err) } return int(h.Sum32()) diff --git a/pkg/openai/client.go b/pkg/openai/client.go index b8226c42..3f154d73 100644 --- a/pkg/openai/client.go +++ b/pkg/openai/client.go @@ -447,7 +447,7 @@ func override(left, right string) string { } func (c *Client) call(ctx context.Context, request openai.ChatCompletionRequest, transactionID string, partial chan<- types.CompletionStatus) (responses []openai.ChatCompletionStreamResponse, _ error) { - request.Stream = os.Getenv("GPTSCRIPT_INTERNAL_OPENAI_STREAMING") != "false" + streamResponse := os.Getenv("GPTSCRIPT_INTERNAL_OPENAI_STREAMING") != "false" partial <- types.CompletionStatus{ CompletionID: transactionID, @@ -459,7 +459,7 @@ func (c *Client) call(ctx context.Context, request openai.ChatCompletionRequest, slog.Debug("calling openai", "message", request.Messages) - if !request.Stream { + if !streamResponse { resp, err := c.c.CreateChatCompletion(ctx, request) if err != nil { return nil, err diff --git a/pkg/types/completion.go b/pkg/types/completion.go index b0b81774..48c18baf 100644 --- a/pkg/types/completion.go +++ b/pkg/types/completion.go @@ -21,7 +21,10 @@ type CompletionRequest struct { } func (r *CompletionRequest) GetCache() bool { - return r.Cache != nil && !*r.Cache + if r.Cache == nil { + return true + } + return *r.Cache } type CompletionTool struct {