|
23 | 23 | "import base64\n", |
24 | 24 | "import mimetypes\n", |
25 | 25 | "from llama_stack_client import LlamaStackClient\n", |
26 | | - "from llama_stack_client.lib.inference.event_logger import EventLogger\n", |
27 | | - "from llama_stack_client.types import UserMessage\n", |
28 | 26 | "from termcolor import cprint" |
29 | 27 | ] |
30 | 28 | }, |
|
45 | 43 | "outputs": [], |
46 | 44 | "source": [ |
47 | 45 | "HOST = \"localhost\" # Replace with your host\n", |
48 | | - "CLOUD_PORT = 8321 # Replace with your cloud distro port\n", |
49 | | - "MODEL_NAME='Llama3.2-11B-Vision-Instruct'" |
| 46 | + "PORT = 8321 # Replace with your cloud distro port\n", |
| 47 | + "MODEL_NAME='meta-llama/Llama3.2-11B-Vision-Instruct'" |
50 | 48 | ] |
51 | 49 | }, |
52 | 50 | { |
|
65 | 63 | "metadata": {}, |
66 | 64 | "outputs": [], |
67 | 65 | "source": [ |
68 | | - "import base64\n", |
69 | | - "import mimetypes\n", |
70 | | - "from termcolor import cprint\n", |
71 | | - "from llama_stack_client.lib.inference.event_logger import EventLogger\n", |
72 | | - "\n", |
73 | 66 | "def encode_image_to_data_url(file_path: str) -> str:\n", |
74 | 67 | " \"\"\"\n", |
75 | 68 | " Encode an image file to a data URL.\n", |
|
103 | 96 | " message = {\n", |
104 | 97 | " \"role\": \"user\",\n", |
105 | 98 | " \"content\": [\n", |
106 | | - " {\"image\": {\"uri\": data_url}},\n", |
107 | | - " \"Describe what is in this image.\"\n", |
| 99 | + " {\"type\": \"image\", \"image\": {\"url\": {\"uri\": data_url}}},\n", |
| 100 | + " {\"type\": \"text\", \"text\": \"Describe what is in this image.\"}\n", |
108 | 101 | " ]\n", |
109 | 102 | " }\n", |
110 | 103 | "\n", |
|
115 | 108 | " stream=stream,\n", |
116 | 109 | " )\n", |
117 | 110 | "\n", |
| 111 | + " cprint(f'Assistant> ', color='cyan', end='')\n", |
118 | 112 | " if not stream:\n", |
119 | | - " cprint(f\"> Response: {response}\", \"cyan\")\n", |
| 113 | + " cprint(response.completion_message.content, color='yellow')\n", |
120 | 114 | " else:\n", |
121 | | - " async for log in EventLogger().log(response):\n", |
122 | | - " log.print()\n" |
| 115 | + " for chunk in response:\n", |
| 116 | + " cprint(chunk.event.delta.text, color='yellow', end='')\n", |
| 117 | + " cprint('')\n" |
123 | 118 | ] |
124 | 119 | }, |
125 | 120 | { |
|
134 | 129 | }, |
135 | 130 | { |
136 | 131 | "cell_type": "code", |
137 | | - "execution_count": 6, |
| 132 | + "execution_count": null, |
138 | 133 | "id": "64d36476-95d7-49f9-a548-312cf8d8c49e", |
139 | 134 | "metadata": {}, |
140 | | - "outputs": [ |
141 | | - { |
142 | | - "name": "stdout", |
143 | | - "output_type": "stream", |
144 | | - "text": [ |
145 | | - "\u001b[32mUser> Sending image for analysis...\u001b[0m\n", |
146 | | - "\u001b[36mAssistant> \u001b[0m\u001b[33mThe\u001b[0m\u001b[33m image\u001b[0m\u001b[33m features\u001b[0m\u001b[33m a\u001b[0m\u001b[33m simple\u001b[0m\u001b[33m,\u001b[0m\u001b[33m mon\u001b[0m\u001b[33moch\u001b[0m\u001b[33mromatic\u001b[0m\u001b[33m line\u001b[0m\u001b[33m drawing\u001b[0m\u001b[33m of\u001b[0m\u001b[33m a\u001b[0m\u001b[33m llama\u001b[0m\u001b[33m,\u001b[0m\u001b[33m with\u001b[0m\u001b[33m the\u001b[0m\u001b[33m words\u001b[0m\u001b[33m \"\u001b[0m\u001b[33mLL\u001b[0m\u001b[33mAMA\u001b[0m\u001b[33m STACK\u001b[0m\u001b[33m\"\u001b[0m\u001b[33m written\u001b[0m\u001b[33m above\u001b[0m\u001b[33m it\u001b[0m\u001b[33m.\u001b[0m\u001b[33m The\u001b[0m\u001b[33m llama\u001b[0m\u001b[33m is\u001b[0m\u001b[33m depicted\u001b[0m\u001b[33m in\u001b[0m\u001b[33m a\u001b[0m\u001b[33m cartoon\u001b[0m\u001b[33mish\u001b[0m\u001b[33m style\u001b[0m\u001b[33m,\u001b[0m\u001b[33m with\u001b[0m\u001b[33m a\u001b[0m\u001b[33m large\u001b[0m\u001b[33m body\u001b[0m\u001b[33m and\u001b[0m\u001b[33m a\u001b[0m\u001b[33m long\u001b[0m\u001b[33m neck\u001b[0m\u001b[33m.\u001b[0m\u001b[33m It\u001b[0m\u001b[33m has\u001b[0m\u001b[33m a\u001b[0m\u001b[33m distinctive\u001b[0m\u001b[33m head\u001b[0m\u001b[33m shape\u001b[0m\u001b[33m,\u001b[0m\u001b[33m with\u001b[0m\u001b[33m a\u001b[0m\u001b[33m small\u001b[0m\u001b[33m circle\u001b[0m\u001b[33m for\u001b[0m\u001b[33m the\u001b[0m\u001b[33m eye\u001b[0m\u001b[33m and\u001b[0m\u001b[33m a\u001b[0m\u001b[33m curved\u001b[0m\u001b[33m line\u001b[0m\u001b[33m for\u001b[0m\u001b[33m the\u001b[0m\u001b[33m mouth\u001b[0m\u001b[33m.\u001b[0m\u001b[33m The\u001b[0m\u001b[33m llama\u001b[0m\u001b[33m's\u001b[0m\u001b[33m body\u001b[0m\u001b[33m is\u001b[0m\u001b[33m composed\u001b[0m\u001b[33m of\u001b[0m\u001b[33m several\u001b[0m\u001b[33m rounded\u001b[0m\u001b[33m shapes\u001b[0m\u001b[33m,\u001b[0m\u001b[33m giving\u001b[0m\u001b[33m it\u001b[0m\u001b[33m a\u001b[0m\u001b[33m soft\u001b[0m\u001b[33m and\u001b[0m\u001b[33m cudd\u001b[0m\u001b[33mly\u001b[0m\u001b[33m appearance\u001b[0m\u001b[33m.\n", |
147 | | - "\n", |
148 | | - "\u001b[0m\u001b[33mThe\u001b[0m\u001b[33m words\u001b[0m\u001b[33m \"\u001b[0m\u001b[33mLL\u001b[0m\u001b[33mAMA\u001b[0m\u001b[33m STACK\u001b[0m\u001b[33m\"\u001b[0m\u001b[33m are\u001b[0m\u001b[33m written\u001b[0m\u001b[33m in\u001b[0m\u001b[33m a\u001b[0m\u001b[33m playful\u001b[0m\u001b[33m,\u001b[0m\u001b[33m handwritten\u001b[0m\u001b[33m font\u001b[0m\u001b[33m above\u001b[0m\u001b[33m the\u001b[0m\u001b[33m llama\u001b[0m\u001b[33m's\u001b[0m\u001b[33m head\u001b[0m\u001b[33m.\u001b[0m\u001b[33m The\u001b[0m\u001b[33m text\u001b[0m\u001b[33m is\u001b[0m\u001b[33m also\u001b[0m\u001b[33m in\u001b[0m\u001b[33m a\u001b[0m\u001b[33m mon\u001b[0m\u001b[33moch\u001b[0m\u001b[33mromatic\u001b[0m\u001b[33m color\u001b[0m\u001b[33m scheme\u001b[0m\u001b[33m,\u001b[0m\u001b[33m matching\u001b[0m\u001b[33m the\u001b[0m\u001b[33m llama\u001b[0m\u001b[33m's\u001b[0m\u001b[33m outline\u001b[0m\u001b[33m.\u001b[0m\u001b[33m The\u001b[0m\u001b[33m background\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m image\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m solid\u001b[0m\u001b[33m black\u001b[0m\u001b[33m color\u001b[0m\u001b[33m,\u001b[0m\u001b[33m which\u001b[0m\u001b[33m provides\u001b[0m\u001b[33m a\u001b[0m\u001b[33m clean\u001b[0m\u001b[33m and\u001b[0m\u001b[33m simple\u001b[0m\u001b[33m contrast\u001b[0m\u001b[33m to\u001b[0m\u001b[33m the\u001b[0m\u001b[33m llama\u001b[0m\u001b[33m's\u001b[0m\u001b[33m design\u001b[0m\u001b[33m.\n", |
149 | | - "\n", |
150 | | - "\u001b[0m\u001b[33mOverall\u001b[0m\u001b[33m,\u001b[0m\u001b[33m the\u001b[0m\u001b[33m image\u001b[0m\u001b[33m appears\u001b[0m\u001b[33m to\u001b[0m\u001b[33m be\u001b[0m\u001b[33m a\u001b[0m\u001b[33m logo\u001b[0m\u001b[33m or\u001b[0m\u001b[33m icon\u001b[0m\u001b[33m for\u001b[0m\u001b[33m a\u001b[0m\u001b[33m brand\u001b[0m\u001b[33m or\u001b[0m\u001b[33m product\u001b[0m\u001b[33m called\u001b[0m\u001b[33m \"\u001b[0m\u001b[33mL\u001b[0m\u001b[33mlama\u001b[0m\u001b[33m Stack\u001b[0m\u001b[33m.\"\u001b[0m\u001b[33m The\u001b[0m\u001b[33m use\u001b[0m\u001b[33m of\u001b[0m\u001b[33m a\u001b[0m\u001b[33m cartoon\u001b[0m\u001b[33m llama\u001b[0m\u001b[33m and\u001b[0m\u001b[33m a\u001b[0m\u001b[33m playful\u001b[0m\u001b[33m font\u001b[0m\u001b[33m suggests\u001b[0m\u001b[33m a\u001b[0m\u001b[33m l\u001b[0m\u001b[33migh\u001b[0m\u001b[33mthe\u001b[0m\u001b[33mart\u001b[0m\u001b[33med\u001b[0m\u001b[33m and\u001b[0m\u001b[33m humorous\u001b[0m\u001b[33m tone\u001b[0m\u001b[33m,\u001b[0m\u001b[33m while\u001b[0m\u001b[33m the\u001b[0m\u001b[33m mon\u001b[0m\u001b[33moch\u001b[0m\u001b[33mromatic\u001b[0m\u001b[33m color\u001b[0m\u001b[33m scheme\u001b[0m\u001b[33m gives\u001b[0m\u001b[33m the\u001b[0m\u001b[33m image\u001b[0m\u001b[33m a\u001b[0m\u001b[33m clean\u001b[0m\u001b[33m and\u001b[0m\u001b[33m modern\u001b[0m\u001b[33m feel\u001b[0m\u001b[33m.\u001b[0m\u001b[97m\u001b[0m\n" |
151 | | - ] |
152 | | - } |
153 | | - ], |
| 135 | + "outputs": [], |
154 | 136 | "source": [ |
155 | 137 | "# [Cell 5] - Initialize client and process image\n", |
156 | 138 | "async def main():\n", |
|
184 | 166 | "fileUid": "37bbbfda-8e42-446c-89c7-59dd49e2d339", |
185 | 167 | "isAdHoc": false, |
186 | 168 | "kernelspec": { |
187 | | - "display_name": "base", |
| 169 | + "display_name": "llama-stack", |
188 | 170 | "language": "python", |
189 | 171 | "name": "python3" |
190 | 172 | }, |
|
198 | 180 | "name": "python", |
199 | 181 | "nbconvert_exporter": "python", |
200 | 182 | "pygments_lexer": "ipython3", |
201 | | - "version": "3.12.2" |
| 183 | + "version": "3.12.11" |
202 | 184 | } |
203 | 185 | }, |
204 | 186 | "nbformat": 4, |
|
0 commit comments