Skip to content

Commit

Permalink
Merge pull request #25 from ucbepic/shreyashankar/ollamastructured
Browse files Browse the repository at this point in the history
fix: manually try to parse ollama outputs, even if it is not valid json
  • Loading branch information
shreyashankar authored Sep 30, 2024
2 parents b26fab4 + 5bca233 commit 3140ebd
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion docetl/operations/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import tiktoken
from rich import print as rprint
from pydantic import BaseModel, create_model
import ast

from docetl.utils import count_tokens

Expand Down Expand Up @@ -810,7 +811,22 @@ def parse_llm_response(
outputs = []
for tool_call in tool_calls:
try:
outputs.append(json.loads(tool_call.function.arguments))
output_dict = json.loads(tool_call.function.arguments)
if "ollama" in response.model:
for key, value in output_dict.items():
if isinstance(value, str):
continue
try:
output_dict[key] = ast.literal_eval(value)
except:
try:
if value.startswith("["):
output_dict[key] = ast.literal_eval(value + "]")
else:
output_dict[key] = value
except:
pass
outputs.append(output_dict)
except json.JSONDecodeError:
return [{}]
return outputs
Expand Down

0 comments on commit 3140ebd

Please sign in to comment.