mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-06-28 02:53:30 +00:00
feat: add responses input items api (#2239)
# What does this PR do? TSIA ## Test Plan added integration and unit tests
This commit is contained in:
parent
055f48b6a2
commit
15b0a67555
9 changed files with 546 additions and 12 deletions
|
@ -7,6 +7,7 @@ from llama_stack.apis.agents import (
|
|||
Order,
|
||||
)
|
||||
from llama_stack.apis.agents.openai_responses import (
|
||||
ListOpenAIResponseInputItem,
|
||||
ListOpenAIResponseObject,
|
||||
OpenAIResponseInput,
|
||||
OpenAIResponseObject,
|
||||
|
@ -96,3 +97,39 @@ class ResponsesStore:
|
|||
if not row:
|
||||
raise ValueError(f"Response with id {response_id} not found") from None
|
||||
return OpenAIResponseObjectWithInput(**row["response_object"])
|
||||
|
||||
async def list_response_input_items(
|
||||
self,
|
||||
response_id: str,
|
||||
after: str | None = None,
|
||||
before: str | None = None,
|
||||
include: list[str] | None = None,
|
||||
limit: int | None = 20,
|
||||
order: Order | None = Order.desc,
|
||||
) -> ListOpenAIResponseInputItem:
|
||||
"""
|
||||
List input items for a given response.
|
||||
|
||||
:param response_id: The ID of the response to retrieve input items for.
|
||||
:param after: An item ID to list items after, used for pagination.
|
||||
:param before: An item ID to list items before, used for pagination.
|
||||
:param include: Additional fields to include in the response.
|
||||
:param limit: A limit on the number of objects to be returned.
|
||||
:param order: The order to return the input items in.
|
||||
"""
|
||||
# TODO: support after/before pagination
|
||||
if after or before:
|
||||
raise NotImplementedError("After/before pagination is not supported yet")
|
||||
if include:
|
||||
raise NotImplementedError("Include is not supported yet")
|
||||
|
||||
response_with_input = await self.get_response_object(response_id)
|
||||
input_items = response_with_input.input
|
||||
|
||||
if order == Order.desc:
|
||||
input_items = list(reversed(input_items))
|
||||
|
||||
if limit is not None and len(input_items) > limit:
|
||||
input_items = input_items[:limit]
|
||||
|
||||
return ListOpenAIResponseInputItem(data=input_items)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue