llama-stack-mirror/zero_to_hero_guide/07_Agents101.ipynb
Justin Lee ae49a4cb97
Reorganizing Zero to Hero Folder structure (#447)
Putting Zero to Hero Guide to root for increased visibility
2024-11-20 10:27:29 -08:00

207 lines
38 KiB
Text

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Agentic API 101\n",
"\n",
"This document talks about the Agentic APIs in Llama Stack. Before you begin, please ensure Llama Stack is installed and set up by following the [Getting Started Guide](https://llama-stack.readthedocs.io/en/latest/getting_started/index.html).\n",
"\n",
"Starting Llama 3.1 you can build agentic applications capable of:\n",
"\n",
"- breaking a task down and performing multi-step reasoning.\n",
"- using tools to perform some actions\n",
" - built-in: the model has built-in knowledge of tools like search or code interpreter\n",
" - zero-shot: the model can learn to call tools using previously unseen, in-context tool definitions\n",
"- providing system level safety protections using models like Llama Guard.\n",
"\n",
"An agentic app requires a few components:\n",
"- ability to run inference on the underlying Llama series of models\n",
"- ability to run safety checks using the Llama Guard series of models\n",
"- ability to execute tools, including a code execution environment, and loop using the model's multi-step reasoning process\n",
"\n",
"All of these components are now offered by a single Llama Stack Distribution. Llama Stack defines and standardizes these components and many others that are needed to make building Generative AI applications smoother. Various implementations of these APIs are then assembled together via a **Llama Stack Distribution**.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Run Agent example\n",
"\n",
"Please check out examples with client SDKs to talk with the Llama Stack server in our [llama-stack-apps](https://github.com/meta-llama/llama-stack-apps) repo. \n",
"\n",
"In this tutorial, with the `Llama3.1-8B-Instruct` server running, we can use the following code to run a simple agent example:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Set up your connection parameters:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"HOST = \"localhost\" # Replace with your host\n",
"PORT = 5000 # Replace with your port"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Created session_id=0498990d-3a56-4fb6-9113-0e26f7877e98 for Agent(0d55390e-27fc-431a-b47a-88494f20e72c)\n",
"\u001b[30m\u001b[0m\u001b[33minference> \u001b[0m\u001b[33mSw\u001b[0m\u001b[33mitzerland\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m beautiful\u001b[0m\u001b[33m country\u001b[0m\u001b[33m with\u001b[0m\u001b[33m a\u001b[0m\u001b[33m rich\u001b[0m\u001b[33m history\u001b[0m\u001b[33m,\u001b[0m\u001b[33m stunning\u001b[0m\u001b[33m landscapes\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m vibrant\u001b[0m\u001b[33m culture\u001b[0m\u001b[33m.\u001b[0m\u001b[33m Here\u001b[0m\u001b[33m are\u001b[0m\u001b[33m the\u001b[0m\u001b[33m top\u001b[0m\u001b[33m \u001b[0m\u001b[33m3\u001b[0m\u001b[33m places\u001b[0m\u001b[33m to\u001b[0m\u001b[33m visit\u001b[0m\u001b[33m in\u001b[0m\u001b[33m Switzerland\u001b[0m\u001b[33m:\n",
"\n",
"\u001b[0m\u001b[33m1\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mJ\u001b[0m\u001b[33mung\u001b[0m\u001b[33mfra\u001b[0m\u001b[33muj\u001b[0m\u001b[33moch\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m Also\u001b[0m\u001b[33m known\u001b[0m\u001b[33m as\u001b[0m\u001b[33m the\u001b[0m\u001b[33m \"\u001b[0m\u001b[33mTop\u001b[0m\u001b[33m of\u001b[0m\u001b[33m Europe\u001b[0m\u001b[33m,\"\u001b[0m\u001b[33m Jung\u001b[0m\u001b[33mfra\u001b[0m\u001b[33muj\u001b[0m\u001b[33moch\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m mountain\u001b[0m\u001b[33m peak\u001b[0m\u001b[33m located\u001b[0m\u001b[33m in\u001b[0m\u001b[33m the\u001b[0m\u001b[33m Swiss\u001b[0m\u001b[33m Alps\u001b[0m\u001b[33m.\u001b[0m\u001b[33m It\u001b[0m\u001b[33m's\u001b[0m\u001b[33m the\u001b[0m\u001b[33m highest\u001b[0m\u001b[33m train\u001b[0m\u001b[33m station\u001b[0m\u001b[33m in\u001b[0m\u001b[33m Europe\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m from\u001b[0m\u001b[33m its\u001b[0m\u001b[33m summit\u001b[0m\u001b[33m,\u001b[0m\u001b[33m you\u001b[0m\u001b[33m can\u001b[0m\u001b[33m enjoy\u001b[0m\u001b[33m breathtaking\u001b[0m\u001b[33m views\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m surrounding\u001b[0m\u001b[33m mountains\u001b[0m\u001b[33m and\u001b[0m\u001b[33m glaciers\u001b[0m\u001b[33m.\u001b[0m\u001b[33m The\u001b[0m\u001b[33m peak\u001b[0m\u001b[33m is\u001b[0m\u001b[33m covered\u001b[0m\u001b[33m in\u001b[0m\u001b[33m snow\u001b[0m\u001b[33m year\u001b[0m\u001b[33m-round\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m you\u001b[0m\u001b[33m can\u001b[0m\u001b[33m even\u001b[0m\u001b[33m visit\u001b[0m\u001b[33m the\u001b[0m\u001b[33m Ice\u001b[0m\u001b[33m Palace\u001b[0m\u001b[33m and\u001b[0m\u001b[33m take\u001b[0m\u001b[33m a\u001b[0m\u001b[33m walk\u001b[0m\u001b[33m on\u001b[0m\u001b[33m the\u001b[0m\u001b[33m glacier\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m2\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mLake\u001b[0m\u001b[33m Geneva\u001b[0m\u001b[33m (\u001b[0m\u001b[33mL\u001b[0m\u001b[33mac\u001b[0m\u001b[33m L\u001b[0m\u001b[33mé\u001b[0m\u001b[33mman\u001b[0m\u001b[33m)**\u001b[0m\u001b[33m:\u001b[0m\u001b[33m Located\u001b[0m\u001b[33m in\u001b[0m\u001b[33m the\u001b[0m\u001b[33m western\u001b[0m\u001b[33m part\u001b[0m\u001b[33m of\u001b[0m\u001b[33m Switzerland\u001b[0m\u001b[33m,\u001b[0m\u001b[33m Lake\u001b[0m\u001b[33m Geneva\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m stunning\u001b[0m\u001b[33m lake\u001b[0m\u001b[33m that\u001b[0m\u001b[33m offers\u001b[0m\u001b[33m breathtaking\u001b[0m\u001b[33m views\u001b[0m\u001b[33m,\u001b[0m\u001b[33m picturesque\u001b[0m\u001b[33m villages\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m a\u001b[0m\u001b[33m rich\u001b[0m\u001b[33m history\u001b[0m\u001b[33m.\u001b[0m\u001b[33m You\u001b[0m\u001b[33m can\u001b[0m\u001b[33m take\u001b[0m\u001b[33m a\u001b[0m\u001b[33m boat\u001b[0m\u001b[33m tour\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m lake\u001b[0m\u001b[33m,\u001b[0m\u001b[33m visit\u001b[0m\u001b[33m the\u001b[0m\u001b[33m Ch\u001b[0m\u001b[33millon\u001b[0m\u001b[33m Castle\u001b[0m\u001b[33m,\u001b[0m\u001b[33m or\u001b[0m\u001b[33m explore\u001b[0m\u001b[33m the\u001b[0m\u001b[33m charming\u001b[0m\u001b[33m towns\u001b[0m\u001b[33m of\u001b[0m\u001b[33m Mont\u001b[0m\u001b[33mre\u001b[0m\u001b[33mux\u001b[0m\u001b[33m and\u001b[0m\u001b[33m Ve\u001b[0m\u001b[33mvey\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m3\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mInter\u001b[0m\u001b[33ml\u001b[0m\u001b[33maken\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m Inter\u001b[0m\u001b[33ml\u001b[0m\u001b[33maken\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m popular\u001b[0m\u001b[33m tourist\u001b[0m\u001b[33m destination\u001b[0m\u001b[33m located\u001b[0m\u001b[33m in\u001b[0m\u001b[33m the\u001b[0m\u001b[33m heart\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m Swiss\u001b[0m\u001b[33m Alps\u001b[0m\u001b[33m.\u001b[0m\u001b[33m It\u001b[0m\u001b[33m's\u001b[0m\u001b[33m a\u001b[0m\u001b[33m paradise\u001b[0m\u001b[33m for\u001b[0m\u001b[33m outdoor\u001b[0m\u001b[33m enthusiasts\u001b[0m\u001b[33m,\u001b[0m\u001b[33m with\u001b[0m\u001b[33m plenty\u001b[0m\u001b[33m of\u001b[0m\u001b[33m opportunities\u001b[0m\u001b[33m for\u001b[0m\u001b[33m hiking\u001b[0m\u001b[33m,\u001b[0m\u001b[33m par\u001b[0m\u001b[33mag\u001b[0m\u001b[33ml\u001b[0m\u001b[33miding\u001b[0m\u001b[33m,\u001b[0m\u001b[33m can\u001b[0m\u001b[33my\u001b[0m\u001b[33moning\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m other\u001b[0m\u001b[33m adventure\u001b[0m\u001b[33m activities\u001b[0m\u001b[33m.\u001b[0m\u001b[33m You\u001b[0m\u001b[33m can\u001b[0m\u001b[33m also\u001b[0m\u001b[33m take\u001b[0m\u001b[33m a\u001b[0m\u001b[33m scenic\u001b[0m\u001b[33m boat\u001b[0m\u001b[33m tour\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m nearby\u001b[0m\u001b[33m lakes\u001b[0m\u001b[33m,\u001b[0m\u001b[33m visit\u001b[0m\u001b[33m the\u001b[0m\u001b[33m Tr\u001b[0m\u001b[33mü\u001b[0m\u001b[33mmm\u001b[0m\u001b[33mel\u001b[0m\u001b[33mbach\u001b[0m\u001b[33m Falls\u001b[0m\u001b[33m,\u001b[0m\u001b[33m or\u001b[0m\u001b[33m explore\u001b[0m\u001b[33m the\u001b[0m\u001b[33m charming\u001b[0m\u001b[33m town\u001b[0m\u001b[33m of\u001b[0m\u001b[33m Inter\u001b[0m\u001b[33ml\u001b[0m\u001b[33maken\u001b[0m\u001b[33m.\n",
"\n",
"\u001b[0m\u001b[33mThese\u001b[0m\u001b[33m three\u001b[0m\u001b[33m places\u001b[0m\u001b[33m offer\u001b[0m\u001b[33m a\u001b[0m\u001b[33m great\u001b[0m\u001b[33m combination\u001b[0m\u001b[33m of\u001b[0m\u001b[33m natural\u001b[0m\u001b[33m beauty\u001b[0m\u001b[33m,\u001b[0m\u001b[33m culture\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m adventure\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m are\u001b[0m\u001b[33m a\u001b[0m\u001b[33m great\u001b[0m\u001b[33m starting\u001b[0m\u001b[33m point\u001b[0m\u001b[33m for\u001b[0m\u001b[33m your\u001b[0m\u001b[33m trip\u001b[0m\u001b[33m to\u001b[0m\u001b[33m Switzerland\u001b[0m\u001b[33m.\u001b[0m\u001b[33m Of\u001b[0m\u001b[33m course\u001b[0m\u001b[33m,\u001b[0m\u001b[33m there\u001b[0m\u001b[33m are\u001b[0m\u001b[33m many\u001b[0m\u001b[33m other\u001b[0m\u001b[33m amazing\u001b[0m\u001b[33m places\u001b[0m\u001b[33m to\u001b[0m\u001b[33m visit\u001b[0m\u001b[33m in\u001b[0m\u001b[33m Switzerland\u001b[0m\u001b[33m,\u001b[0m\u001b[33m but\u001b[0m\u001b[33m these\u001b[0m\u001b[33m three\u001b[0m\u001b[33m are\u001b[0m\u001b[33m definitely\u001b[0m\u001b[33m must\u001b[0m\u001b[33m-\u001b[0m\u001b[33msee\u001b[0m\u001b[33m destinations\u001b[0m\u001b[33m.\u001b[0m\u001b[97m\u001b[0m\n",
"\u001b[30m\u001b[0m\u001b[30m\u001b[0m\u001b[33minference> \u001b[0m\u001b[33mJ\u001b[0m\u001b[33mung\u001b[0m\u001b[33mfra\u001b[0m\u001b[33muj\u001b[0m\u001b[33moch\u001b[0m\u001b[33m,\u001b[0m\u001b[33m also\u001b[0m\u001b[33m known\u001b[0m\u001b[33m as\u001b[0m\u001b[33m the\u001b[0m\u001b[33m \"\u001b[0m\u001b[33mTop\u001b[0m\u001b[33m of\u001b[0m\u001b[33m Europe\u001b[0m\u001b[33m,\"\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m unique\u001b[0m\u001b[33m and\u001b[0m\u001b[33m special\u001b[0m\u001b[33m destination\u001b[0m\u001b[33m for\u001b[0m\u001b[33m several\u001b[0m\u001b[33m reasons\u001b[0m\u001b[33m:\n",
"\n",
"\u001b[0m\u001b[33m1\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mHighest\u001b[0m\u001b[33m Train\u001b[0m\u001b[33m Station\u001b[0m\u001b[33m in\u001b[0m\u001b[33m Europe\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m Jung\u001b[0m\u001b[33mfra\u001b[0m\u001b[33muj\u001b[0m\u001b[33moch\u001b[0m\u001b[33m is\u001b[0m\u001b[33m the\u001b[0m\u001b[33m highest\u001b[0m\u001b[33m train\u001b[0m\u001b[33m station\u001b[0m\u001b[33m in\u001b[0m\u001b[33m Europe\u001b[0m\u001b[33m,\u001b[0m\u001b[33m located\u001b[0m\u001b[33m at\u001b[0m\u001b[33m an\u001b[0m\u001b[33m altitude\u001b[0m\u001b[33m of\u001b[0m\u001b[33m \u001b[0m\u001b[33m3\u001b[0m\u001b[33m,\u001b[0m\u001b[33m454\u001b[0m\u001b[33m meters\u001b[0m\u001b[33m (\u001b[0m\u001b[33m11\u001b[0m\u001b[33m,\u001b[0m\u001b[33m332\u001b[0m\u001b[33m feet\u001b[0m\u001b[33m)\u001b[0m\u001b[33m above\u001b[0m\u001b[33m sea\u001b[0m\u001b[33m level\u001b[0m\u001b[33m.\u001b[0m\u001b[33m The\u001b[0m\u001b[33m train\u001b[0m\u001b[33m ride\u001b[0m\u001b[33m to\u001b[0m\u001b[33m the\u001b[0m\u001b[33m summit\u001b[0m\u001b[33m is\u001b[0m\u001b[33m an\u001b[0m\u001b[33m adventure\u001b[0m\u001b[33m in\u001b[0m\u001b[33m itself\u001b[0m\u001b[33m,\u001b[0m\u001b[33m with\u001b[0m\u001b[33m breathtaking\u001b[0m\u001b[33m views\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m surrounding\u001b[0m\u001b[33m mountains\u001b[0m\u001b[33m and\u001b[0m\u001b[33m glaciers\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m2\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mB\u001b[0m\u001b[33mreat\u001b[0m\u001b[33mhtaking\u001b[0m\u001b[33m Views\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m From\u001b[0m\u001b[33m the\u001b[0m\u001b[33m summit\u001b[0m\u001b[33m,\u001b[0m\u001b[33m you\u001b[0m\u001b[33m can\u001b[0m\u001b[33m enjoy\u001b[0m\u001b[33m panoramic\u001b[0m\u001b[33m views\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m surrounding\u001b[0m\u001b[33m mountains\u001b[0m\u001b[33m,\u001b[0m\u001b[33m glaciers\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m valleys\u001b[0m\u001b[33m.\u001b[0m\u001b[33m On\u001b[0m\u001b[33m a\u001b[0m\u001b[33m clear\u001b[0m\u001b[33m day\u001b[0m\u001b[33m,\u001b[0m\u001b[33m you\u001b[0m\u001b[33m can\u001b[0m\u001b[33m see\u001b[0m\u001b[33m as\u001b[0m\u001b[33m far\u001b[0m\u001b[33m as\u001b[0m\u001b[33m the\u001b[0m\u001b[33m Black\u001b[0m\u001b[33m Forest\u001b[0m\u001b[33m in\u001b[0m\u001b[33m Germany\u001b[0m\u001b[33m and\u001b[0m\u001b[33m the\u001b[0m\u001b[33m Mont\u001b[0m\u001b[33m Blanc\u001b[0m\u001b[33m in\u001b[0m\u001b[33m France\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m3\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mIce\u001b[0m\u001b[33m Palace\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m Jung\u001b[0m\u001b[33mfra\u001b[0m\u001b[33muj\u001b[0m\u001b[33moch\u001b[0m\u001b[33m is\u001b[0m\u001b[33m home\u001b[0m\u001b[33m to\u001b[0m\u001b[33m the\u001b[0m\u001b[33m Ice\u001b[0m\u001b[33m Palace\u001b[0m\u001b[33m,\u001b[0m\u001b[33m a\u001b[0m\u001b[33m stunning\u001b[0m\u001b[33m palace\u001b[0m\u001b[33m made\u001b[0m\u001b[33m entirely\u001b[0m\u001b[33m of\u001b[0m\u001b[33m ice\u001b[0m\u001b[33m and\u001b[0m\u001b[33m snow\u001b[0m\u001b[33m.\u001b[0m\u001b[33m The\u001b[0m\u001b[33m palace\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m marvel\u001b[0m\u001b[33m of\u001b[0m\u001b[33m engineering\u001b[0m\u001b[33m and\u001b[0m\u001b[33m art\u001b[0m\u001b[33mistry\u001b[0m\u001b[33m,\u001b[0m\u001b[33m with\u001b[0m\u001b[33m intricate\u001b[0m\u001b[33m ice\u001b[0m\u001b[33m car\u001b[0m\u001b[33mv\u001b[0m\u001b[33mings\u001b[0m\u001b[33m and\u001b[0m\u001b[33m sculptures\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m4\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mGl\u001b[0m\u001b[33macier\u001b[0m\u001b[33m Walking\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m You\u001b[0m\u001b[33m can\u001b[0m\u001b[33m take\u001b[0m\u001b[33m a\u001b[0m\u001b[33m guided\u001b[0m\u001b[33m tour\u001b[0m\u001b[33m onto\u001b[0m\u001b[33m the\u001b[0m\u001b[33m glacier\u001b[0m\u001b[33m itself\u001b[0m\u001b[33m,\u001b[0m\u001b[33m where\u001b[0m\u001b[33m you\u001b[0m\u001b[33m can\u001b[0m\u001b[33m walk\u001b[0m\u001b[33m on\u001b[0m\u001b[33m the\u001b[0m\u001b[33m ice\u001b[0m\u001b[33m and\u001b[0m\u001b[33m learn\u001b[0m\u001b[33m about\u001b[0m\u001b[33m the\u001b[0m\u001b[33m gl\u001b[0m\u001b[33maci\u001b[0m\u001b[33mology\u001b[0m\u001b[33m and\u001b[0m\u001b[33m ge\u001b[0m\u001b[33mology\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m area\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m5\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mObserv\u001b[0m\u001b[33mation\u001b[0m\u001b[33m De\u001b[0m\u001b[33mcks\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m There\u001b[0m\u001b[33m are\u001b[0m\u001b[33m several\u001b[0m\u001b[33m observation\u001b[0m\u001b[33m decks\u001b[0m\u001b[33m and\u001b[0m\u001b[33m viewing\u001b[0m\u001b[33m platforms\u001b[0m\u001b[33m at\u001b[0m\u001b[33m Jung\u001b[0m\u001b[33mfra\u001b[0m\u001b[33muj\u001b[0m\u001b[33moch\u001b[0m\u001b[33m,\u001b[0m\u001b[33m offering\u001b[0m\u001b[33m stunning\u001b[0m\u001b[33m views\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m surrounding\u001b[0m\u001b[33m landscape\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m6\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mSnow\u001b[0m\u001b[33m and\u001b[0m\u001b[33m Ice\u001b[0m\u001b[33m Year\u001b[0m\u001b[33m-R\u001b[0m\u001b[33mound\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m Jung\u001b[0m\u001b[33mfra\u001b[0m\u001b[33muj\u001b[0m\u001b[33moch\u001b[0m\u001b[33m is\u001b[0m\u001b[33m covered\u001b[0m\u001b[33m in\u001b[0m\u001b[33m snow\u001b[0m\u001b[33m and\u001b[0m\u001b[33m ice\u001b[0m\u001b[33m year\u001b[0m\u001b[33m-round\u001b[0m\u001b[33m,\u001b[0m\u001b[33m making\u001b[0m\u001b[33m it\u001b[0m\u001b[33m a\u001b[0m\u001b[33m unique\u001b[0m\u001b[33m destination\u001b[0m\u001b[33m that\u001b[0m\u001b[33m's\u001b[0m\u001b[33m available\u001b[0m\u001b[33m to\u001b[0m\u001b[33m visit\u001b[0m\u001b[33m \u001b[0m\u001b[33m365\u001b[0m\u001b[33m days\u001b[0m\u001b[33m a\u001b[0m\u001b[33m year\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m7\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mRich\u001b[0m\u001b[33m History\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m Jung\u001b[0m\u001b[33mfra\u001b[0m\u001b[33muj\u001b[0m\u001b[33moch\u001b[0m\u001b[33m has\u001b[0m\u001b[33m a\u001b[0m\u001b[33m rich\u001b[0m\u001b[33m history\u001b[0m\u001b[33m,\u001b[0m\u001b[33m dating\u001b[0m\u001b[33m back\u001b[0m\u001b[33m to\u001b[0m\u001b[33m the\u001b[0m\u001b[33m early\u001b[0m\u001b[33m \u001b[0m\u001b[33m20\u001b[0m\u001b[33mth\u001b[0m\u001b[33m century\u001b[0m\u001b[33m when\u001b[0m\u001b[33m it\u001b[0m\u001b[33m was\u001b[0m\u001b[33m first\u001b[0m\u001b[33m built\u001b[0m\u001b[33m as\u001b[0m\u001b[33m a\u001b[0m\u001b[33m tourist\u001b[0m\u001b[33m destination\u001b[0m\u001b[33m.\u001b[0m\u001b[33m You\u001b[0m\u001b[33m can\u001b[0m\u001b[33m learn\u001b[0m\u001b[33m about\u001b[0m\u001b[33m the\u001b[0m\u001b[33m history\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m mountain\u001b[0m\u001b[33m and\u001b[0m\u001b[33m the\u001b[0m\u001b[33m people\u001b[0m\u001b[33m who\u001b[0m\u001b[33m built\u001b[0m\u001b[33m the\u001b[0m\u001b[33m railway\u001b[0m\u001b[33m and\u001b[0m\u001b[33m infrastructure\u001b[0m\u001b[33m.\n",
"\n",
"\u001b[0m\u001b[33mOverall\u001b[0m\u001b[33m,\u001b[0m\u001b[33m Jung\u001b[0m\u001b[33mfra\u001b[0m\u001b[33muj\u001b[0m\u001b[33moch\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m unique\u001b[0m\u001b[33m and\u001b[0m\u001b[33m special\u001b[0m\u001b[33m destination\u001b[0m\u001b[33m that\u001b[0m\u001b[33m offers\u001b[0m\u001b[33m a\u001b[0m\u001b[33m combination\u001b[0m\u001b[33m of\u001b[0m\u001b[33m natural\u001b[0m\u001b[33m beauty\u001b[0m\u001b[33m,\u001b[0m\u001b[33m adventure\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m cultural\u001b[0m\u001b[33m significance\u001b[0m\u001b[33m that\u001b[0m\u001b[33m's\u001b[0m\u001b[33m hard\u001b[0m\u001b[33m to\u001b[0m\u001b[33m find\u001b[0m\u001b[33m anywhere\u001b[0m\u001b[33m else\u001b[0m\u001b[33m.\u001b[0m\u001b[97m\u001b[0m\n",
"\u001b[30m\u001b[0m\u001b[30m\u001b[0m\u001b[33minference> \u001b[0m\u001b[33mConsidering\u001b[0m\u001b[33m you\u001b[0m\u001b[33m're\u001b[0m\u001b[33m already\u001b[0m\u001b[33m planning\u001b[0m\u001b[33m a\u001b[0m\u001b[33m trip\u001b[0m\u001b[33m to\u001b[0m\u001b[33m Switzerland\u001b[0m\u001b[33m,\u001b[0m\u001b[33m here\u001b[0m\u001b[33m are\u001b[0m\u001b[33m some\u001b[0m\u001b[33m other\u001b[0m\u001b[33m countries\u001b[0m\u001b[33m in\u001b[0m\u001b[33m the\u001b[0m\u001b[33m region\u001b[0m\u001b[33m that\u001b[0m\u001b[33m you\u001b[0m\u001b[33m might\u001b[0m\u001b[33m want\u001b[0m\u001b[33m to\u001b[0m\u001b[33m consider\u001b[0m\u001b[33m visiting\u001b[0m\u001b[33m:\n",
"\n",
"\u001b[0m\u001b[33m1\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mA\u001b[0m\u001b[33mustria\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m Known\u001b[0m\u001b[33m for\u001b[0m\u001b[33m its\u001b[0m\u001b[33m grand\u001b[0m\u001b[33m pal\u001b[0m\u001b[33maces\u001b[0m\u001b[33m,\u001b[0m\u001b[33m opera\u001b[0m\u001b[33m houses\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m picturesque\u001b[0m\u001b[33m villages\u001b[0m\u001b[33m,\u001b[0m\u001b[33m Austria\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m great\u001b[0m\u001b[33m destination\u001b[0m\u001b[33m for\u001b[0m\u001b[33m culture\u001b[0m\u001b[33m lovers\u001b[0m\u001b[33m.\u001b[0m\u001b[33m Don\u001b[0m\u001b[33m't\u001b[0m\u001b[33m miss\u001b[0m\u001b[33m the\u001b[0m\u001b[33m Sch\u001b[0m\u001b[33mön\u001b[0m\u001b[33mbr\u001b[0m\u001b[33munn\u001b[0m\u001b[33m Palace\u001b[0m\u001b[33m in\u001b[0m\u001b[33m Vienna\u001b[0m\u001b[33m and\u001b[0m\u001b[33m the\u001b[0m\u001b[33m stunning\u001b[0m\u001b[33m Alpine\u001b[0m\u001b[33m scenery\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m2\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mGermany\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m Germany\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m great\u001b[0m\u001b[33m destination\u001b[0m\u001b[33m for\u001b[0m\u001b[33m history\u001b[0m\u001b[33m buffs\u001b[0m\u001b[33m,\u001b[0m\u001b[33m with\u001b[0m\u001b[33m iconic\u001b[0m\u001b[33m cities\u001b[0m\u001b[33m like\u001b[0m\u001b[33m Berlin\u001b[0m\u001b[33m,\u001b[0m\u001b[33m Munich\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m Dresden\u001b[0m\u001b[33m offering\u001b[0m\u001b[33m a\u001b[0m\u001b[33m wealth\u001b[0m\u001b[33m of\u001b[0m\u001b[33m cultural\u001b[0m\u001b[33m and\u001b[0m\u001b[33m historical\u001b[0m\u001b[33m attractions\u001b[0m\u001b[33m.\u001b[0m\u001b[33m Don\u001b[0m\u001b[33m't\u001b[0m\u001b[33m miss\u001b[0m\u001b[33m the\u001b[0m\u001b[33m Ne\u001b[0m\u001b[33musch\u001b[0m\u001b[33mwan\u001b[0m\u001b[33mstein\u001b[0m\u001b[33m Castle\u001b[0m\u001b[33m and\u001b[0m\u001b[33m the\u001b[0m\u001b[33m picturesque\u001b[0m\u001b[33m town\u001b[0m\u001b[33m of\u001b[0m\u001b[33m Ro\u001b[0m\u001b[33mthen\u001b[0m\u001b[33mburg\u001b[0m\u001b[33m ob\u001b[0m\u001b[33m der\u001b[0m\u001b[33m Ta\u001b[0m\u001b[33muber\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m3\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mFrance\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m France\u001b[0m\u001b[33m is\u001b[0m\u001b[33m famous\u001b[0m\u001b[33m for\u001b[0m\u001b[33m its\u001b[0m\u001b[33m fashion\u001b[0m\u001b[33m,\u001b[0m\u001b[33m cuisine\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m romance\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m great\u001b[0m\u001b[33m destination\u001b[0m\u001b[33m for\u001b[0m\u001b[33m anyone\u001b[0m\u001b[33m looking\u001b[0m\u001b[33m for\u001b[0m\u001b[33m a\u001b[0m\u001b[33m luxurious\u001b[0m\u001b[33m and\u001b[0m\u001b[33m cultural\u001b[0m\u001b[33m experience\u001b[0m\u001b[33m.\u001b[0m\u001b[33m Don\u001b[0m\u001b[33m't\u001b[0m\u001b[33m miss\u001b[0m\u001b[33m the\u001b[0m\u001b[33m E\u001b[0m\u001b[33miff\u001b[0m\u001b[33mel\u001b[0m\u001b[33m Tower\u001b[0m\u001b[33m in\u001b[0m\u001b[33m Paris\u001b[0m\u001b[33m,\u001b[0m\u001b[33m the\u001b[0m\u001b[33m French\u001b[0m\u001b[33m Riv\u001b[0m\u001b[33miera\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m the\u001b[0m\u001b[33m picturesque\u001b[0m\u001b[33m towns\u001b[0m\u001b[33m of\u001b[0m\u001b[33m Prov\u001b[0m\u001b[33mence\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m4\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mItaly\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m Italy\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m food\u001b[0m\u001b[33mie\u001b[0m\u001b[33m's\u001b[0m\u001b[33m paradise\u001b[0m\u001b[33m,\u001b[0m\u001b[33m with\u001b[0m\u001b[33m delicious\u001b[0m\u001b[33m pasta\u001b[0m\u001b[33m dishes\u001b[0m\u001b[33m,\u001b[0m\u001b[33m pizza\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m gel\u001b[0m\u001b[33mato\u001b[0m\u001b[33m.\u001b[0m\u001b[33m Don\u001b[0m\u001b[33m't\u001b[0m\u001b[33m miss\u001b[0m\u001b[33m the\u001b[0m\u001b[33m iconic\u001b[0m\u001b[33m cities\u001b[0m\u001b[33m of\u001b[0m\u001b[33m Rome\u001b[0m\u001b[33m,\u001b[0m\u001b[33m Florence\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m Venice\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m the\u001b[0m\u001b[33m stunning\u001b[0m\u001b[33m Am\u001b[0m\u001b[33malf\u001b[0m\u001b[33mi\u001b[0m\u001b[33m Coast\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m5\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mMon\u001b[0m\u001b[33maco\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m Monaco\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m tiny\u001b[0m\u001b[33m princip\u001b[0m\u001b[33mality\u001b[0m\u001b[33m on\u001b[0m\u001b[33m the\u001b[0m\u001b[33m French\u001b[0m\u001b[33m Riv\u001b[0m\u001b[33miera\u001b[0m\u001b[33m,\u001b[0m\u001b[33m known\u001b[0m\u001b[33m for\u001b[0m\u001b[33m its\u001b[0m\u001b[33m casinos\u001b[0m\u001b[33m,\u001b[0m\u001b[33m yacht\u001b[0m\u001b[33m-lined\u001b[0m\u001b[33m harbor\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m stunning\u001b[0m\u001b[33m scenery\u001b[0m\u001b[33m.\u001b[0m\u001b[33m It\u001b[0m\u001b[33m's\u001b[0m\u001b[33m a\u001b[0m\u001b[33m great\u001b[0m\u001b[33m destination\u001b[0m\u001b[33m for\u001b[0m\u001b[33m a\u001b[0m\u001b[33m quick\u001b[0m\u001b[33m and\u001b[0m\u001b[33m luxurious\u001b[0m\u001b[33m getaway\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m6\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mLie\u001b[0m\u001b[33mchten\u001b[0m\u001b[33mstein\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m Lie\u001b[0m\u001b[33mchten\u001b[0m\u001b[33mstein\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m tiny\u001b[0m\u001b[33m country\u001b[0m\u001b[33m nestled\u001b[0m\u001b[33m between\u001b[0m\u001b[33m Switzerland\u001b[0m\u001b[33m and\u001b[0m\u001b[33m Austria\u001b[0m\u001b[33m,\u001b[0m\u001b[33m known\u001b[0m\u001b[33m for\u001b[0m\u001b[33m its\u001b[0m\u001b[33m picturesque\u001b[0m\u001b[33m villages\u001b[0m\u001b[33m,\u001b[0m\u001b[33m cast\u001b[0m\u001b[33mles\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m stunning\u001b[0m\u001b[33m Alpine\u001b[0m\u001b[33m scenery\u001b[0m\u001b[33m.\u001b[0m\u001b[33m It\u001b[0m\u001b[33m's\u001b[0m\u001b[33m a\u001b[0m\u001b[33m great\u001b[0m\u001b[33m destination\u001b[0m\u001b[33m for\u001b[0m\u001b[33m nature\u001b[0m\u001b[33m lovers\u001b[0m\u001b[33m and\u001b[0m\u001b[33m those\u001b[0m\u001b[33m looking\u001b[0m\u001b[33m for\u001b[0m\u001b[33m a\u001b[0m\u001b[33m peaceful\u001b[0m\u001b[33m retreat\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m7\u001b[0m\u001b[33m.\u001b[0m\u001b[33m **\u001b[0m\u001b[33mS\u001b[0m\u001b[33mloven\u001b[0m\u001b[33mia\u001b[0m\u001b[33m**:\u001b[0m\u001b[33m Slovenia\u001b[0m\u001b[33m is\u001b[0m\u001b[33m a\u001b[0m\u001b[33m hidden\u001b[0m\u001b[33m gem\u001b[0m\u001b[33m in\u001b[0m\u001b[33m Eastern\u001b[0m\u001b[33m Europe\u001b[0m\u001b[33m,\u001b[0m\u001b[33m with\u001b[0m\u001b[33m a\u001b[0m\u001b[33m stunning\u001b[0m\u001b[33m coastline\u001b[0m\u001b[33m,\u001b[0m\u001b[33m picturesque\u001b[0m\u001b[33m villages\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m a\u001b[0m\u001b[33m rich\u001b[0m\u001b[33m cultural\u001b[0m\u001b[33m heritage\u001b[0m\u001b[33m.\u001b[0m\u001b[33m Don\u001b[0m\u001b[33m't\u001b[0m\u001b[33m miss\u001b[0m\u001b[33m the\u001b[0m\u001b[33m Lake\u001b[0m\u001b[33m B\u001b[0m\u001b[33mled\u001b[0m\u001b[33m,\u001b[0m\u001b[33m the\u001b[0m\u001b[33m Post\u001b[0m\u001b[33moj\u001b[0m\u001b[33mna\u001b[0m\u001b[33m Cave\u001b[0m\u001b[33m Park\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m the\u001b[0m\u001b[33m charming\u001b[0m\u001b[33m capital\u001b[0m\u001b[33m city\u001b[0m\u001b[33m of\u001b[0m\u001b[33m L\u001b[0m\u001b[33mj\u001b[0m\u001b[33mub\u001b[0m\u001b[33mlj\u001b[0m\u001b[33mana\u001b[0m\u001b[33m.\n",
"\n",
"\u001b[0m\u001b[33mThese\u001b[0m\u001b[33m countries\u001b[0m\u001b[33m offer\u001b[0m\u001b[33m a\u001b[0m\u001b[33m mix\u001b[0m\u001b[33m of\u001b[0m\u001b[33m culture\u001b[0m\u001b[33m,\u001b[0m\u001b[33m history\u001b[0m\u001b[33m,\u001b[0m\u001b[33m natural\u001b[0m\u001b[33m beauty\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m luxury\u001b[0m\u001b[33m that\u001b[0m\u001b[33m's\u001b[0m\u001b[33m hard\u001b[0m\u001b[33m to\u001b[0m\u001b[33m find\u001b[0m\u001b[33m anywhere\u001b[0m\u001b[33m else\u001b[0m\u001b[33m.\u001b[0m\u001b[33m Depending\u001b[0m\u001b[33m on\u001b[0m\u001b[33m your\u001b[0m\u001b[33m interests\u001b[0m\u001b[33m and\u001b[0m\u001b[33m travel\u001b[0m\u001b[33m style\u001b[0m\u001b[33m,\u001b[0m\u001b[33m you\u001b[0m\u001b[33m might\u001b[0m\u001b[33m want\u001b[0m\u001b[33m to\u001b[0m\u001b[33m consider\u001b[0m\u001b[33m visiting\u001b[0m\u001b[33m one\u001b[0m\u001b[33m or\u001b[0m\u001b[33m more\u001b[0m\u001b[33m of\u001b[0m\u001b[33m these\u001b[0m\u001b[33m countries\u001b[0m\u001b[33m in\u001b[0m\u001b[33m combination\u001b[0m\u001b[33m with\u001b[0m\u001b[33m Switzerland\u001b[0m\u001b[33m.\u001b[0m\u001b[97m\u001b[0m\n",
"\u001b[30m\u001b[0m\u001b[30m\u001b[0m\u001b[33minference> \u001b[0m\u001b[33mThe\u001b[0m\u001b[33m capital\u001b[0m\u001b[33m of\u001b[0m\u001b[33m France\u001b[0m\u001b[33m is\u001b[0m\u001b[33m **\u001b[0m\u001b[33mParis\u001b[0m\u001b[33m**\u001b[0m\u001b[33m.\u001b[0m\u001b[33m Paris\u001b[0m\u001b[33m is\u001b[0m\u001b[33m one\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m most\u001b[0m\u001b[33m iconic\u001b[0m\u001b[33m and\u001b[0m\u001b[33m romantic\u001b[0m\u001b[33m cities\u001b[0m\u001b[33m in\u001b[0m\u001b[33m the\u001b[0m\u001b[33m world\u001b[0m\u001b[33m,\u001b[0m\u001b[33m known\u001b[0m\u001b[33m for\u001b[0m\u001b[33m its\u001b[0m\u001b[33m stunning\u001b[0m\u001b[33m architecture\u001b[0m\u001b[33m,\u001b[0m\u001b[33m art\u001b[0m\u001b[33m museums\u001b[0m\u001b[33m,\u001b[0m\u001b[33m fashion\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m cuisine\u001b[0m\u001b[33m.\u001b[0m\u001b[33m It\u001b[0m\u001b[33m's\u001b[0m\u001b[33m a\u001b[0m\u001b[33m must\u001b[0m\u001b[33m-\u001b[0m\u001b[33mvisit\u001b[0m\u001b[33m destination\u001b[0m\u001b[33m for\u001b[0m\u001b[33m anyone\u001b[0m\u001b[33m interested\u001b[0m\u001b[33m in\u001b[0m\u001b[33m history\u001b[0m\u001b[33m,\u001b[0m\u001b[33m culture\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m romance\u001b[0m\u001b[33m.\n",
"\n",
"\u001b[0m\u001b[33mSome\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m top\u001b[0m\u001b[33m attractions\u001b[0m\u001b[33m in\u001b[0m\u001b[33m Paris\u001b[0m\u001b[33m include\u001b[0m\u001b[33m:\n",
"\n",
"\u001b[0m\u001b[33m1\u001b[0m\u001b[33m.\u001b[0m\u001b[33m The\u001b[0m\u001b[33m E\u001b[0m\u001b[33miff\u001b[0m\u001b[33mel\u001b[0m\u001b[33m Tower\u001b[0m\u001b[33m:\u001b[0m\u001b[33m The\u001b[0m\u001b[33m iconic\u001b[0m\u001b[33m iron\u001b[0m\u001b[33m lattice\u001b[0m\u001b[33m tower\u001b[0m\u001b[33m that\u001b[0m\u001b[33m symbol\u001b[0m\u001b[33mizes\u001b[0m\u001b[33m Paris\u001b[0m\u001b[33m and\u001b[0m\u001b[33m France\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m2\u001b[0m\u001b[33m.\u001b[0m\u001b[33m The\u001b[0m\u001b[33m Lou\u001b[0m\u001b[33mvre\u001b[0m\u001b[33m Museum\u001b[0m\u001b[33m:\u001b[0m\u001b[33m One\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m world\u001b[0m\u001b[33m's\u001b[0m\u001b[33m largest\u001b[0m\u001b[33m and\u001b[0m\u001b[33m most\u001b[0m\u001b[33m famous\u001b[0m\u001b[33m museums\u001b[0m\u001b[33m,\u001b[0m\u001b[33m housing\u001b[0m\u001b[33m an\u001b[0m\u001b[33m impressive\u001b[0m\u001b[33m collection\u001b[0m\u001b[33m of\u001b[0m\u001b[33m art\u001b[0m\u001b[33m and\u001b[0m\u001b[33m artifacts\u001b[0m\u001b[33m from\u001b[0m\u001b[33m around\u001b[0m\u001b[33m the\u001b[0m\u001b[33m world\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m3\u001b[0m\u001b[33m.\u001b[0m\u001b[33m Notre\u001b[0m\u001b[33m-D\u001b[0m\u001b[33mame\u001b[0m\u001b[33m Cathedral\u001b[0m\u001b[33m:\u001b[0m\u001b[33m A\u001b[0m\u001b[33m beautiful\u001b[0m\u001b[33m and\u001b[0m\u001b[33m historic\u001b[0m\u001b[33m Catholic\u001b[0m\u001b[33m cathedral\u001b[0m\u001b[33m that\u001b[0m\u001b[33m dates\u001b[0m\u001b[33m back\u001b[0m\u001b[33m to\u001b[0m\u001b[33m the\u001b[0m\u001b[33m \u001b[0m\u001b[33m12\u001b[0m\u001b[33mth\u001b[0m\u001b[33m century\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m4\u001b[0m\u001b[33m.\u001b[0m\u001b[33m Mont\u001b[0m\u001b[33mmart\u001b[0m\u001b[33mre\u001b[0m\u001b[33m:\u001b[0m\u001b[33m A\u001b[0m\u001b[33m charming\u001b[0m\u001b[33m and\u001b[0m\u001b[33m artistic\u001b[0m\u001b[33m neighborhood\u001b[0m\u001b[33m with\u001b[0m\u001b[33m narrow\u001b[0m\u001b[33m streets\u001b[0m\u001b[33m,\u001b[0m\u001b[33m charming\u001b[0m\u001b[33m cafes\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m stunning\u001b[0m\u001b[33m views\u001b[0m\u001b[33m of\u001b[0m\u001b[33m the\u001b[0m\u001b[33m city\u001b[0m\u001b[33m.\n",
"\u001b[0m\u001b[33m5\u001b[0m\u001b[33m.\u001b[0m\u001b[33m The\u001b[0m\u001b[33m Ch\u001b[0m\u001b[33mamps\u001b[0m\u001b[33m-\u001b[0m\u001b[33mÉ\u001b[0m\u001b[33mlys\u001b[0m\u001b[33mées\u001b[0m\u001b[33m:\u001b[0m\u001b[33m A\u001b[0m\u001b[33m famous\u001b[0m\u001b[33m avenue\u001b[0m\u001b[33m lined\u001b[0m\u001b[33m with\u001b[0m\u001b[33m upscale\u001b[0m\u001b[33m shops\u001b[0m\u001b[33m,\u001b[0m\u001b[33m cafes\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m theaters\u001b[0m\u001b[33m.\n",
"\n",
"\u001b[0m\u001b[33mParis\u001b[0m\u001b[33m is\u001b[0m\u001b[33m also\u001b[0m\u001b[33m known\u001b[0m\u001b[33m for\u001b[0m\u001b[33m its\u001b[0m\u001b[33m delicious\u001b[0m\u001b[33m cuisine\u001b[0m\u001b[33m,\u001b[0m\u001b[33m including\u001b[0m\u001b[33m cro\u001b[0m\u001b[33miss\u001b[0m\u001b[33mants\u001b[0m\u001b[33m,\u001b[0m\u001b[33m bag\u001b[0m\u001b[33muet\u001b[0m\u001b[33mtes\u001b[0m\u001b[33m,\u001b[0m\u001b[33m cheese\u001b[0m\u001b[33m,\u001b[0m\u001b[33m and\u001b[0m\u001b[33m wine\u001b[0m\u001b[33m.\u001b[0m\u001b[33m Don\u001b[0m\u001b[33m't\u001b[0m\u001b[33m forget\u001b[0m\u001b[33m to\u001b[0m\u001b[33m try\u001b[0m\u001b[33m a\u001b[0m\u001b[33m classic\u001b[0m\u001b[33m French\u001b[0m\u001b[33m dish\u001b[0m\u001b[33m like\u001b[0m\u001b[33m esc\u001b[0m\u001b[33marg\u001b[0m\u001b[33mots\u001b[0m\u001b[33m,\u001b[0m\u001b[33m rat\u001b[0m\u001b[33mat\u001b[0m\u001b[33mou\u001b[0m\u001b[33mille\u001b[0m\u001b[33m,\u001b[0m\u001b[33m or\u001b[0m\u001b[33m co\u001b[0m\u001b[33mq\u001b[0m\u001b[33m au\u001b[0m\u001b[33m vin\u001b[0m\u001b[33m during\u001b[0m\u001b[33m your\u001b[0m\u001b[33m visit\u001b[0m\u001b[33m!\u001b[0m\u001b[97m\u001b[0m\n",
"\u001b[30m\u001b[0m"
]
}
],
"source": [
"import os\n",
"from llama_stack_client import LlamaStackClient\n",
"from llama_stack_client.lib.agents.agent import Agent\n",
"from llama_stack_client.lib.agents.event_logger import EventLogger\n",
"from llama_stack_client.types.agent_create_params import AgentConfig\n",
"\n",
"os.environ[\"BRAVE_SEARCH_API_KEY\"] = \"YOUR_SEARCH_API_KEY\"\n",
"\n",
"async def agent_example():\n",
" client = LlamaStackClient(base_url=f\"http://{HOST}:{PORT}\")\n",
" models_response = client.models.list()\n",
" for model in models_response:\n",
" if model.identifier.endswith(\"Instruct\"):\n",
" model_name = model.llama_model\n",
" agent_config = AgentConfig(\n",
" model=model_name,\n",
" instructions=\"You are a helpful assistant\",\n",
" sampling_params={\n",
" \"strategy\": \"greedy\",\n",
" \"temperature\": 1.0,\n",
" \"top_p\": 0.9,\n",
" },\n",
" tools=[\n",
" {\n",
" \"type\": \"brave_search\",\n",
" \"engine\": \"brave\",\n",
" \"api_key\": os.getenv(\"BRAVE_SEARCH_API_KEY\"),\n",
" }\n",
" ],\n",
" tool_choice=\"auto\",\n",
" tool_prompt_format=\"function_tag\",\n",
" input_shields=[],\n",
" output_shields=[],\n",
" enable_session_persistence=False,\n",
" )\n",
"\n",
" agent = Agent(client, agent_config)\n",
" session_id = agent.create_session(\"test-session\")\n",
" print(f\"Created session_id={session_id} for Agent({agent.agent_id})\")\n",
"\n",
" user_prompts = [\n",
" \"I am planning a trip to Switzerland, what are the top 3 places to visit?\",\n",
" \"What is so special about #1?\",\n",
" \"What other countries should I consider to club?\",\n",
" \"What is the capital of France?\",\n",
" ]\n",
"\n",
" for prompt in user_prompts:\n",
" response = agent.create_turn(\n",
" messages=[\n",
" {\n",
" \"role\": \"user\",\n",
" \"content\": prompt,\n",
" }\n",
" ],\n",
" session_id=session_id,\n",
" )\n",
"\n",
" async for log in EventLogger().log(response):\n",
" log.print()\n",
"\n",
"\n",
"await agent_example()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We have come a long way from getting started to understanding the internals of Llama-Stack! \n",
"\n",
"Thanks for joining us on this journey. If you have questions-please feel free to open an issue. Looking forward to what you build with Open Source AI!"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.15"
}
},
"nbformat": 4,
"nbformat_minor": 4
}