chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# Copyright (c) Microsoft. All rights reserved.
|
||||
|
||||
import asyncio
|
||||
from urllib.request import urlopen
|
||||
|
||||
try:
|
||||
from PIL import Image
|
||||
|
||||
pil_available = True
|
||||
except ImportError:
|
||||
pil_available = False
|
||||
|
||||
from semantic_kernel import Kernel
|
||||
from semantic_kernel.connectors.ai import PromptExecutionSettings
|
||||
from semantic_kernel.connectors.ai.open_ai import OpenAITextToImage
|
||||
from semantic_kernel.functions import KernelArguments
|
||||
|
||||
"""
|
||||
This sample demonstrates how to use the OpenAI text-to-image service to generate an image from a prompt.
|
||||
It uses the OpenAITextToImage class to create an image based on the provided prompt and settings.
|
||||
The generated image is then displayed using the PIL library if available.
|
||||
"""
|
||||
|
||||
|
||||
async def main():
|
||||
kernel = Kernel()
|
||||
kernel.add_service(OpenAITextToImage(service_id="dalle3"))
|
||||
|
||||
result = await kernel.invoke_prompt(
|
||||
prompt="Generate a image of {{$topic}} in the style of a {{$style}}",
|
||||
arguments=KernelArguments(
|
||||
topic="a flower vase",
|
||||
style="painting",
|
||||
settings=PromptExecutionSettings(
|
||||
service_id="dalle3",
|
||||
width=1024,
|
||||
height=1024,
|
||||
quality="hd",
|
||||
style="vivid",
|
||||
),
|
||||
),
|
||||
)
|
||||
if result and pil_available:
|
||||
img = Image.open(urlopen(str(result.value[0].uri))) # nosec
|
||||
img.show()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
@@ -0,0 +1,55 @@
|
||||
# Copyright (c) Microsoft. All rights reserved.
|
||||
|
||||
import asyncio
|
||||
import base64
|
||||
from io import BytesIO
|
||||
|
||||
from semantic_kernel.prompt_template import PromptTemplateConfig
|
||||
|
||||
try:
|
||||
from PIL import Image
|
||||
|
||||
pil_available = True
|
||||
except ImportError:
|
||||
pil_available = False
|
||||
|
||||
from semantic_kernel import Kernel
|
||||
from semantic_kernel.connectors.ai.open_ai import OpenAIChatCompletion, OpenAITextToImage
|
||||
from semantic_kernel.contents import ChatHistory, ChatMessageContent, ImageContent, TextContent
|
||||
from semantic_kernel.functions.kernel_arguments import KernelArguments
|
||||
|
||||
|
||||
async def main():
|
||||
kernel = Kernel()
|
||||
service = OpenAITextToImage()
|
||||
kernel.add_service(service)
|
||||
kernel.add_service(OpenAIChatCompletion(service_id="default"))
|
||||
|
||||
image_b64 = await service.generate_image(description="a painting of a flower vase", width=1024, height=1024)
|
||||
|
||||
if pil_available:
|
||||
img = Image.open(BytesIO(base64.b64decode(image_b64)))
|
||||
img.show()
|
||||
|
||||
result = await kernel.invoke_prompt(
|
||||
prompt="{{$chat_history}}",
|
||||
prompt_template_config=PromptTemplateConfig(allow_dangerously_set_content=True),
|
||||
arguments=KernelArguments(
|
||||
chat_history=ChatHistory(
|
||||
messages=[
|
||||
ChatMessageContent(
|
||||
role="user",
|
||||
items=[
|
||||
TextContent(text="What is in this image?"),
|
||||
ImageContent(data=image_b64, data_format="base64", mime_type="image/png"),
|
||||
],
|
||||
)
|
||||
]
|
||||
)
|
||||
),
|
||||
)
|
||||
print(result)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user