Просмотр исходного кода

Automatic repair of json for langchains agent (#444)

* Added json_repair to Pipfile

* Automatic repair of json for langchains agent
Erik Nilsson 1 год назад
Родитель
Сommit
4404b9af24
2 измененных файлов с 9 добавлено и 1 удалено
  1. 1 0
      Pipfile
  2. 8 1
      agenthub/langchains_agent/utils/json.py

+ 1 - 0
Pipfile

@@ -25,6 +25,7 @@ llama-index-embeddings-azure-openai = "*"
 llama-index-embeddings-ollama = "*"
 google-generativeai = "*"
 toml = "*"
+json_repair = "*"
 
 [dev-packages]
 

+ 8 - 1
agenthub/langchains_agent/utils/json.py

@@ -1,4 +1,5 @@
 import json
+from json_repair import repair_json
 
 def my_encoder(obj):
     if hasattr(obj, "to_dict"):
@@ -8,5 +9,11 @@ def dumps(obj, **kwargs):
     return json.dumps(obj, default=my_encoder, **kwargs)
 
 def loads(s, **kwargs):
-    return json.loads(s, **kwargs)
+    s_repaired = repair_json(s)
+
+    if s_repaired != s:
+        print(f"Repaired JSON: {s_repaired}")
+        print(f"Original JSON: {s}")
+
+    return json.loads(s_repaired, **kwargs)