From a0f424e5923dd2ec9c350a42db2f2b58a9ea5549 Mon Sep 17 00:00:00 2001
From: Ranjan Mangla <ranjanmangla1@gmail.com>
Date: Tue, 9 Jul 2024 21:25:38 +0530
Subject: [PATCH] fix: corrected the regex in the ReactAgent (#1022)

Signed-off-by: ranjanmangla1 <ranjanmangla1@gmail.com>
---
 .changeset/loud-bananas-shout.md       | 5 +++++
 packages/llamaindex/src/agent/react.ts | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)
 create mode 100644 .changeset/loud-bananas-shout.md

diff --git a/.changeset/loud-bananas-shout.md b/.changeset/loud-bananas-shout.md
new file mode 100644
index 000000000..ab86c9f9c
--- /dev/null
+++ b/.changeset/loud-bananas-shout.md
@@ -0,0 +1,5 @@
+---
+"llamaindex": patch
+---
+
+corrected the regex in the react.ts file in extractToolUse & extractJsonStr functions, as mentioned in https://github.com/run-llama/LlamaIndexTS/issues/1019
diff --git a/packages/llamaindex/src/agent/react.ts b/packages/llamaindex/src/agent/react.ts
index 091348f53..866a5faa9 100644
--- a/packages/llamaindex/src/agent/react.ts
+++ b/packages/llamaindex/src/agent/react.ts
@@ -66,7 +66,7 @@ function reasonFormatter(reason: Reason): string | Promise<string> {
 }
 
 function extractJsonStr(text: string): string {
-  const pattern = /\{.*}/s;
+  const pattern = /\{.*\}/s;
   const match = text.match(pattern);
 
   if (!match) {
@@ -98,7 +98,7 @@ function extractToolUse(
   inputText: string,
 ): [thought: string, action: string, input: string] {
   const pattern =
-    /\s*Thought: (.*?)\nAction: ([a-zA-Z0-9_]+).*?\.*Input: .*?(\{.*?})/s;
+    /\s*Thought: (.*?)\nAction: ([a-zA-Z0-9_]+).*?\.*Input: .*?(\{.*?\})/s;
 
   const match = inputText.match(pattern);
 
-- 
GitLab