From f19d58c7a9b352f3cf0052e4c064e1979c3d655c Mon Sep 17 00:00:00 2001 From: ybyang Date: Thu, 19 Sep 2024 14:54:28 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dfunction=20call?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E5=A6=82=E6=9E=9C=20function=5Fcall?= =?UTF-8?q?=20=E5=80=BC=E7=9A=84=E4=B8=BA=E4=B8=8D=E5=90=88=E6=B3=95json?= =?UTF-8?q?=EF=BC=8C=E5=BC=82=E5=B8=B8=E6=8F=90=E7=A4=BA=E4=B8=94=E4=B8=AD?= =?UTF-8?q?=E6=96=AD=E8=AE=AD=E7=BB=83=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 625a0cd7cb5725a0f76c8c19cd23d6c0275bd146 --- src/llamafactory/data/formatter.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/llamafactory/data/formatter.py b/src/llamafactory/data/formatter.py index f8b3979a..15401fbb 100644 --- a/src/llamafactory/data/formatter.py +++ b/src/llamafactory/data/formatter.py @@ -113,7 +113,7 @@ class FunctionFormatter(Formatter): functions.append((tool_call["name"], json.dumps(tool_call["arguments"], ensure_ascii=False))) except json.JSONDecodeError: - functions = [] + raise RuntimeError("Not Valid functions Message {}".format(str([content]))) elements = [] for name, arguments in functions: @@ -141,7 +141,8 @@ class ToolFormatter(Formatter): tools = json.loads(content) return [self.tool_utils.tool_formatter(tools) if len(tools) != 0 else ""] except json.JSONDecodeError: - return [""] + raise RuntimeError("Not Valid functions Message {}".format(str([content]))) + @override def extract(self, content: str) -> Union[str, List["FunctionCall"]]: From b6dfc1f6952337e2ce0e86e504f2530f1f1e5c70 Mon Sep 17 00:00:00 2001 From: hoshi-hiyouga Date: Thu, 19 Sep 2024 16:06:00 +0800 Subject: [PATCH 2/5] improve error message Former-commit-id: e7735dd487ae4e31c34dcd8e2ea9af0a39d1cf9e --- src/llamafactory/data/formatter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/llamafactory/data/formatter.py b/src/llamafactory/data/formatter.py index 15401fbb..6fe571b9 100644 --- a/src/llamafactory/data/formatter.py +++ b/src/llamafactory/data/formatter.py @@ -113,7 +113,7 @@ class FunctionFormatter(Formatter): functions.append((tool_call["name"], json.dumps(tool_call["arguments"], ensure_ascii=False))) except json.JSONDecodeError: - raise RuntimeError("Not Valid functions Message {}".format(str([content]))) + raise RuntimeError("Invalid JSON format in function message: {}".format(content) elements = [] for name, arguments in functions: @@ -141,7 +141,7 @@ class ToolFormatter(Formatter): tools = json.loads(content) return [self.tool_utils.tool_formatter(tools) if len(tools) != 0 else ""] except json.JSONDecodeError: - raise RuntimeError("Not Valid functions Message {}".format(str([content]))) + raise RuntimeError("Invalid JSON format in tool description: {}".format(content) @override From 3e45097d63f35f528bb42b301b3cf216e072c50e Mon Sep 17 00:00:00 2001 From: hoshi-hiyouga Date: Thu, 19 Sep 2024 16:21:21 +0800 Subject: [PATCH 3/5] fix bug Former-commit-id: b6d0ee1fd8b555bc6aac8b8686c9a3eea784c3a8 --- src/llamafactory/data/formatter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/llamafactory/data/formatter.py b/src/llamafactory/data/formatter.py index 6fe571b9..8a016685 100644 --- a/src/llamafactory/data/formatter.py +++ b/src/llamafactory/data/formatter.py @@ -113,7 +113,7 @@ class FunctionFormatter(Formatter): functions.append((tool_call["name"], json.dumps(tool_call["arguments"], ensure_ascii=False))) except json.JSONDecodeError: - raise RuntimeError("Invalid JSON format in function message: {}".format(content) + raise RuntimeError("Invalid JSON format in function message: {}".format(content)) elements = [] for name, arguments in functions: @@ -141,7 +141,7 @@ class ToolFormatter(Formatter): tools = json.loads(content) return [self.tool_utils.tool_formatter(tools) if len(tools) != 0 else ""] except json.JSONDecodeError: - raise RuntimeError("Invalid JSON format in tool description: {}".format(content) + raise RuntimeError("Invalid JSON format in tool description: {}".format(content)) @override From b3099dcac0e541f2dbbf95237c69f801c3324340 Mon Sep 17 00:00:00 2001 From: hoshi-hiyouga Date: Thu, 19 Sep 2024 16:21:43 +0800 Subject: [PATCH 4/5] lint Former-commit-id: dd94fdd69c8f36df80d6d70d63ab7403a0e55d46 --- src/llamafactory/data/formatter.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/llamafactory/data/formatter.py b/src/llamafactory/data/formatter.py index 8a016685..0e51acae 100644 --- a/src/llamafactory/data/formatter.py +++ b/src/llamafactory/data/formatter.py @@ -143,7 +143,6 @@ class ToolFormatter(Formatter): except json.JSONDecodeError: raise RuntimeError("Invalid JSON format in tool description: {}".format(content)) - @override def extract(self, content: str) -> Union[str, List["FunctionCall"]]: return self.tool_utils.tool_extractor(content) From f4c76cc36480791304898bc4003d6e5faf08fafd Mon Sep 17 00:00:00 2001 From: hoshi-hiyouga Date: Thu, 19 Sep 2024 16:43:42 +0800 Subject: [PATCH 5/5] flat string Former-commit-id: f1e7731075e6ded4a5ecac7ef46ca4a318b91597 --- src/llamafactory/data/formatter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/llamafactory/data/formatter.py b/src/llamafactory/data/formatter.py index 0e51acae..99a4a8b4 100644 --- a/src/llamafactory/data/formatter.py +++ b/src/llamafactory/data/formatter.py @@ -113,7 +113,7 @@ class FunctionFormatter(Formatter): functions.append((tool_call["name"], json.dumps(tool_call["arguments"], ensure_ascii=False))) except json.JSONDecodeError: - raise RuntimeError("Invalid JSON format in function message: {}".format(content)) + raise RuntimeError("Invalid JSON format in function message: {}".format(str([content]))) # flat string elements = [] for name, arguments in functions: @@ -141,7 +141,7 @@ class ToolFormatter(Formatter): tools = json.loads(content) return [self.tool_utils.tool_formatter(tools) if len(tools) != 0 else ""] except json.JSONDecodeError: - raise RuntimeError("Invalid JSON format in tool description: {}".format(content)) + raise RuntimeError("Invalid JSON format in tool description: {}".format(str([content]))) # flat string @override def extract(self, content: str) -> Union[str, List["FunctionCall"]]: