Revert "Add new Mode for Anyscale's json schema schema type " (#274)

This commit is contained in:
Jason Liu
2023-12-12 23:18:14 -05:00
committed by GitHub
parent aeec164482
commit cb5385c313
2 changed files with 11 additions and 16 deletions
+7 -2
View File
@@ -11,7 +11,6 @@ class Mode(enum.Enum):
FUNCTIONS: str = "function_call"
TOOLS: str = "tool_call"
JSON: str = "json_mode"
JSON_SCHEMA: str = "json_schema_mode"
MD_JSON: str = "markdown_json_mode"
@@ -148,7 +147,13 @@ class OpenAISchema(BaseModel):
context=validation_context,
strict=strict,
)
elif mode in {Mode.JSON, Mode.JSON_SCHEMA, Mode.MD_JSON}:
elif mode == Mode.JSON:
return cls.model_validate_json(
message.content,
context=validation_context,
strict=strict,
)
elif mode == Mode.MD_JSON:
return cls.model_validate_json(
message.content,
context=validation_context,
+4 -14
View File
@@ -91,9 +91,7 @@ def handle_response_model(
"type": "function",
"function": {"name": response_model.openai_schema["name"]},
}
elif mode in {Mode.JSON, Mode.MD_JSON, Mode.JSON_SCHEMA}:
# If its a JSON Mode we need to massage the prompt a bit
# in order to get the response we want in a json format
elif mode == Mode.JSON or mode == Mode.MD_JSON:
if mode == Mode.JSON:
new_kwargs["response_format"] = {"type": "json_object"}
message = f"""Make sure that your response to any message matches the json_schema below,
@@ -103,16 +101,10 @@ def handle_response_model(
if "$defs" in response_model.model_json_schema():
message += f"\nHere are some more definitions to adhere too:\n{response_model.model_json_schema()['$defs']}"
elif mode == Mode.JSON_SCHEMA:
new_kwargs["response_format"] = {
"type": "json_schema",
"schema": response_model.model_json_schema(),
}
elif mode == Mode.MD_JSON:
else:
message = f"""
As a genius expert, your task is to understand the content and provide
the parsed objects in json that match the following json_schema:\n
the parsed objects in json that match the following json_schema (do not deviate at all and its okay if you cant be exact):\n
{response_model.model_json_schema()['properties']}
"""
# Check for nested models
@@ -126,11 +118,9 @@ def handle_response_model(
},
)
new_kwargs["stop"] = "```"
else:
raise ValueError(f"Invalid patch mode: {mode}")
# check that the first message is a system message
# if it is not, add a system message to the beginning
if new_kwargs["messages"][0]["role"] != "system" and len(message) > 0:
if new_kwargs["messages"][0]["role"] != "system":
new_kwargs["messages"].insert(
0,
{