mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-08-13 05:17:26 +00:00
fix returning an iterable for the content param
This commit is contained in:
parent
1cff4c5907
commit
6079e727d2
1 changed files with 23 additions and 16 deletions
|
@ -521,23 +521,30 @@ async def convert_message_to_openai_dict_new(message: Message | Dict) -> OpenAIC
|
||||||
async def _convert_message_content(
|
async def _convert_message_content(
|
||||||
content: InterleavedContent,
|
content: InterleavedContent,
|
||||||
) -> Union[str, Iterable[OpenAIChatCompletionContentPartParam]]:
|
) -> Union[str, Iterable[OpenAIChatCompletionContentPartParam]]:
|
||||||
# Llama Stack and OpenAI spec match for str and text input
|
async def impl():
|
||||||
if isinstance(content, str):
|
# Llama Stack and OpenAI spec match for str and text input
|
||||||
return content
|
if isinstance(content, str):
|
||||||
elif isinstance(content, TextContentItem):
|
return content
|
||||||
return OpenAIChatCompletionContentPartTextParam(
|
elif isinstance(content, TextContentItem):
|
||||||
type="text",
|
return OpenAIChatCompletionContentPartTextParam(
|
||||||
text=content.text,
|
type="text",
|
||||||
)
|
text=content.text,
|
||||||
elif isinstance(content, ImageContentItem):
|
)
|
||||||
return OpenAIChatCompletionContentPartImageParam(
|
elif isinstance(content, ImageContentItem):
|
||||||
type="image_url",
|
return OpenAIChatCompletionContentPartImageParam(
|
||||||
image_url=OpenAIImageURL(url=await convert_image_content_to_url(content)),
|
type="image_url",
|
||||||
)
|
image_url=OpenAIImageURL(url=await convert_image_content_to_url(content)),
|
||||||
elif isinstance(content, List):
|
)
|
||||||
return [await _convert_message_content(item) for item in content]
|
elif isinstance(content, list):
|
||||||
|
return [await _convert_message_content(item) for item in content]
|
||||||
|
else:
|
||||||
|
raise ValueError(f"Unsupported content type: {type(content)}")
|
||||||
|
|
||||||
|
ret = await impl()
|
||||||
|
if isinstance(ret, str) or isinstance(ret, list):
|
||||||
|
return ret
|
||||||
else:
|
else:
|
||||||
raise ValueError(f"Unsupported content type: {type(content)}")
|
return [ret]
|
||||||
|
|
||||||
out: OpenAIChatCompletionMessage = None
|
out: OpenAIChatCompletionMessage = None
|
||||||
if isinstance(message, UserMessage):
|
if isinstance(message, UserMessage):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue