Skip to content

Commit 0ca5479

Browse files
authored
Add support for models.search endpoint (#328)
See https://replicate.com/docs/reference/http#models.search Signed-off-by: Mattt Zmuda <[email protected]>
1 parent a47f276 commit 0ca5479

File tree

3 files changed

+5231
-0
lines changed

3 files changed

+5231
-0
lines changed

replicate/model.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,46 @@ async def async_list(
207207

208208
return Page[Model](**obj)
209209

210+
def search(self, query: str) -> Page[Model]:
211+
"""
212+
Search for public models.
213+
214+
Parameters:
215+
query: The search query.
216+
Returns:
217+
Page[Model]: A page of models matching the search query.
218+
"""
219+
resp = self._client._request(
220+
"QUERY", "/v1/models", content=query, headers={"Content-Type": "text/plain"}
221+
)
222+
223+
obj = resp.json()
224+
obj["results"] = [
225+
_json_to_model(self._client, result) for result in obj["results"]
226+
]
227+
228+
return Page[Model](**obj)
229+
230+
async def async_search(self, query: str) -> Page[Model]:
231+
"""
232+
Asynchronously search for public models.
233+
234+
Parameters:
235+
query: The search query.
236+
Returns:
237+
Page[Model]: A page of models matching the search query.
238+
"""
239+
resp = await self._client._async_request(
240+
"QUERY", "/v1/models", content=query, headers={"Content-Type": "text/plain"}
241+
)
242+
243+
obj = resp.json()
244+
obj["results"] = [
245+
_json_to_model(self._client, result) for result in obj["results"]
246+
]
247+
248+
return Page[Model](**obj)
249+
210250
@overload
211251
def get(self, key: str) -> Model: ...
212252

0 commit comments

Comments
 (0)