Skip to content

Commit 13088ea

Browse files
committed
feat(agents-api): Add an extract_json() custom function
1 parent b82e01d commit 13088ea

File tree

1 file changed

+10
-0
lines changed
  • agents-api/agents_api/activities

1 file changed

+10
-0
lines changed

Diff for: agents-api/agents_api/activities/utils.py

+10
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,15 @@ def chunk_doc(string: str) -> list[str]:
103103
return [" ".join([sent.text for sent in chunk]) for chunk in doc._.chunks]
104104

105105

106+
def safe_extract_json(string: str) -> dict:
107+
if len(string) > MAX_STRING_LENGTH:
108+
msg = f"String exceeds maximum length of {MAX_STRING_LENGTH}"
109+
raise ValueError(msg)
110+
extarct_String = string[string.find("```json")+7:string.find("```", string.find("```json")+7)]
111+
return json.loads(extarct_String)
112+
113+
114+
106115
# Restricted set of allowed functions
107116
ALLOWED_FUNCTIONS = {
108117
# Basic Python builtins
@@ -131,6 +140,7 @@ def chunk_doc(string: str) -> list[str]:
131140
"load_yaml": safe_yaml_load,
132141
"dump_json": json.dumps,
133142
"dump_yaml": yaml.dump,
143+
"extract_json": safe_extract_json,
134144
# Regex and NLP functions (using re2 which is safe against ReDoS)
135145
"search_regex": lambda pattern, string: re2.search(pattern, string),
136146
"match_regex": lambda pattern, string: bool(re2.fullmatch(pattern, string)),

0 commit comments

Comments
 (0)