Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 31 additions & 24 deletions vlmrun/client/predictions.py
Original file line number Diff line number Diff line change
Expand Up @@ -323,17 +323,19 @@ def generate(
additional_kwargs["config"] = config.model_dump()
if metadata:
additional_kwargs["metadata"] = metadata.model_dump()
data: dict = {
"model": model,
"images": images_data,
"domain": domain,
"batch": batch,
**additional_kwargs,
}
if callback_url is not None:
data["callback_url"] = callback_url
response, status_code, headers = self._requestor.request(
method="POST",
url="image/generate",
data={
"model": model,
"images": images_data,
"domain": domain,
"batch": batch,
"callback_url": callback_url,
**additional_kwargs,
},
data=data,
)
if not isinstance(response, dict):
raise TypeError("Expected dict response")
Expand Down Expand Up @@ -453,17 +455,20 @@ def generate(
additional_kwargs["config"] = config.model_dump()
if metadata:
additional_kwargs["metadata"] = metadata.model_dump()
data: dict = {
"model": model,
"url" if is_url else "file_id": file_or_url,
"batch": batch,
**additional_kwargs,
}
if domain is not None:
data["domain"] = domain
if callback_url is not None:
data["callback_url"] = callback_url
response, status_code, headers = self._requestor.request(
method="POST",
url=f"{route}/generate",
data={
"model": model,
"url" if is_url else "file_id": file_or_url,
"domain": domain,
"batch": batch,
"callback_url": callback_url,
**additional_kwargs,
},
data=data,
)
if not isinstance(response, dict):
raise TypeError("Expected dict response")
Expand Down Expand Up @@ -519,17 +524,19 @@ def execute(
additional_kwargs["config"] = config.model_dump()
if metadata:
additional_kwargs["metadata"] = metadata.model_dump()
data: dict = {
"name": name,
"version": version,
"url" if is_url else "file_id": file_or_url,
"batch": batch,
**additional_kwargs,
}
if callback_url is not None:
data["callback_url"] = callback_url
response, status_code, headers = self._requestor.request(
method="POST",
url=f"{route}/execute",
data={
"name": name,
"version": version,
"url" if is_url else "file_id": file_or_url,
"batch": batch,
"callback_url": callback_url,
**additional_kwargs,
},
data=data,
)
if not isinstance(response, dict):
raise TypeError("Expected dict response")
Expand Down
11 changes: 6 additions & 5 deletions vlmrun/client/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -505,20 +505,21 @@ class GenerationConfig(BaseModel):

def model_dump(self, **kwargs) -> dict:
"""Dump the config as a dictionary, converting response_model to json_schema if present."""
data = super().model_dump(**kwargs)

if self.response_model and self.json_schema:
raise ValueError(
"`response_model` and `json_schema` cannot be used together"
)

kwargs.setdefault("exclude_none", True)
data = super().model_dump(**kwargs)

if self.response_model is not None:
assert (
self.json_schema is None
), "`response_model` and `json_schema` cannot be used together"
json_schema = self.response_model.model_json_schema()
data["json_schema"] = json_schema
data.pop("response_model", None)
data["json_schema"] = self.response_model.model_json_schema()

data.pop("response_model", None)

return data

Expand Down
Loading