diff --git a/src/together/resources/chat/completions.py b/src/together/resources/chat/completions.py index 5e4b44b..f291e91 100644 --- a/src/together/resources/chat/completions.py +++ b/src/together/resources/chat/completions.py @@ -38,7 +38,7 @@ def create( echo: bool | None = None, n: int | None = None, safety_model: str | None = None, - response_format: Dict[str, str | Dict[str, Any]] | None = None, + response_format: Dict[str, Any] | None = None, tools: List[Dict[str, Any]] | None = None, tool_choice: str | Dict[str, str | Dict[str, str]] | None = None, **kwargs: Any, diff --git a/src/together/types/chat_completions.py b/src/together/types/chat_completions.py index 6e24215..8e5132f 100644 --- a/src/together/types/chat_completions.py +++ b/src/together/types/chat_completions.py @@ -28,6 +28,7 @@ class MessageRole(str, Enum): class ResponseFormatType(str, Enum): JSON_OBJECT = "json_object" JSON_SCHEMA = "json_schema" + REGEX = "regex" class FunctionCall(BaseModel): @@ -71,9 +72,15 @@ class ChatCompletionMessage(BaseModel): class ResponseFormat(BaseModel): type: ResponseFormatType schema_: Dict[str, Any] | None = None + pattern: str | None = None def to_dict(self) -> Dict[str, Any]: - return {"schema": self.schema_, "type": self.type} + result: Dict[str, Any] = {"type": self.type.value} + if self.schema_ is not None: + result["schema"] = self.schema_ + if self.pattern is not None: + result["pattern"] = self.pattern + return result class FunctionTool(BaseModel):