]> git.giacomolli.uk - onechat/blobdiff - chain.go
Complete context on forwarded local errors
[onechat] / chain.go
index f201812d31ba2440309c7e151e2d0b9df2c26f45..c85b2a2b0b0bc8e809c04c13cda1689e02283124 100644 (file)
--- a/chain.go
+++ b/chain.go
@@ -65,7 +65,7 @@ func (c *Chain) Run(ctx context.Context, input []any) (string, error) {
 
                input, text, err = c.handle(ctx, input, response)
                if err != nil {
-                       return "", err
+                       return "", fmt.Errorf("handle model response: %w", err)
                }
 
                if len(input) == 0 {
@@ -87,7 +87,7 @@ func (c *Chain) handle(ctx context.Context, input []any, response ModelResponse)
        for _, raw := range response.Output {
                item, err := chainInputItem(raw)
                if err != nil {
-                       return nil, "", err
+                       return nil, "", fmt.Errorf("decode chain input: %w", err)
                }
 
                input = append(input, item)
@@ -103,7 +103,7 @@ func (c *Chain) handle(ctx context.Context, input []any, response ModelResponse)
                case "message":
                        text, err := modelOutputText([]json.RawMessage{raw})
                        if err != nil {
-                               return nil, "", err
+                               return nil, "", fmt.Errorf("read response text: %w", err)
                        }
 
                        text = strings.TrimSpace(text)