From 2e89e056f946d477bc5b8c369a66f31591396a09 Mon Sep 17 00:00:00 2001 From: Grant Linville Date: Fri, 6 Sep 2024 13:49:25 -0400 Subject: [PATCH 1/2] fix: openapi revamp: return error to LLM if args are invalid JSON Signed-off-by: Grant Linville --- pkg/openapi/run.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/openapi/run.go b/pkg/openapi/run.go index fb3b746c..e5dc7143 100644 --- a/pkg/openapi/run.go +++ b/pkg/openapi/run.go @@ -38,7 +38,8 @@ func Run(operationID, defaultHost, args string, t *openapi3.T, envs []string) (s // Validate args against the schema. validationResult, err := gojsonschema.Validate(gojsonschema.NewStringLoader(schemaJSON), gojsonschema.NewStringLoader(args)) if err != nil { - return "", false, err + // We don't return an error here because we want the LLM to be able to maintain control and try again. + return "ERROR: failed to validate arguments. Make sure your arguments are valid JSON.", false, nil } if !validationResult.Valid() { From 590d6ef7e147d9a8dc7d0d37bb4468d4cc3f647f Mon Sep 17 00:00:00 2001 From: Grant Linville Date: Fri, 6 Sep 2024 15:02:07 -0400 Subject: [PATCH 2/2] Update pkg/openapi/run.go Co-authored-by: Tyler Slaton <54378333+tylerslaton@users.noreply.github.com> Signed-off-by: Grant Linville --- pkg/openapi/run.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/openapi/run.go b/pkg/openapi/run.go index e5dc7143..159ee6fe 100644 --- a/pkg/openapi/run.go +++ b/pkg/openapi/run.go @@ -39,7 +39,7 @@ func Run(operationID, defaultHost, args string, t *openapi3.T, envs []string) (s validationResult, err := gojsonschema.Validate(gojsonschema.NewStringLoader(schemaJSON), gojsonschema.NewStringLoader(args)) if err != nil { // We don't return an error here because we want the LLM to be able to maintain control and try again. - return "ERROR: failed to validate arguments. Make sure your arguments are valid JSON.", false, nil + return fmt.Sprintf("ERROR: failed to validate arguments. Make sure your arguments are valid JSON. %v", err), false, nil } if !validationResult.Valid() {