From ff6b2c59a86f0317e77b47890287af98a634f4a4 Mon Sep 17 00:00:00 2001
From: Simonas <20096648+simjak@users.noreply.github.com>
Date: Fri, 15 Dec 2023 15:40:58 +0200
Subject: [PATCH] wip

---
 dist/semantic_router-0.0.9-py3-none-any.whl | Bin 0 -> 12026 bytes
 dist/semantic_router-0.0.9.tar.gz           | Bin 0 -> 9553 bytes
 docs/examples/function_calling.ipynb        | 127 ++++++++++++++++----
 3 files changed, 103 insertions(+), 24 deletions(-)
 create mode 100644 dist/semantic_router-0.0.9-py3-none-any.whl
 create mode 100644 dist/semantic_router-0.0.9.tar.gz

diff --git a/dist/semantic_router-0.0.9-py3-none-any.whl b/dist/semantic_router-0.0.9-py3-none-any.whl
new file mode 100644
index 0000000000000000000000000000000000000000..2e1b60bd421d0e4a36c5facfa4ce5c5fab97468b
GIT binary patch
literal 12026
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
P?YZ+dAYUl|_U-=x4ya1$

literal 0
HcmV?d00001

diff --git a/dist/semantic_router-0.0.9.tar.gz b/dist/semantic_router-0.0.9.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..5a241635bd99093f37f1b4c186a79ce1c579a346
GIT binary patch
literal 9553
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
HD5(Dh;s?9+

literal 0
HcmV?d00001

diff --git a/docs/examples/function_calling.ipynb b/docs/examples/function_calling.ipynb
index 650b5b94..51b0800a 100644
--- a/docs/examples/function_calling.ipynb
+++ b/docs/examples/function_calling.ipynb
@@ -9,7 +9,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 213,
+   "execution_count": 228,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -39,7 +39,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 214,
+   "execution_count": 241,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -67,6 +67,8 @@
     "            \"parameters\": {\n",
     "                \"max_new_tokens\": 200,\n",
     "                \"temperature\": 0.1,\n",
+    "                \"num_beams\": 5,\n",
+    "                \"num_return_sequences\": 1,\n",
     "            },\n",
     "        },\n",
     "    )\n",
@@ -89,7 +91,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 230,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -111,7 +113,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 239,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -157,7 +159,11 @@
     "    Output:\n",
     "    \"\"\"\n",
     "\n",
-    "    ai_message = llm_openai(prompt)\n",
+    "    try:\n",
+    "        ai_message = llm_mistral(prompt)\n",
+    "    except Exception as e:\n",
+    "        logger.error(f\"Mistral failed with error {e}, falling back to OpenAI\")\n",
+    "        ai_message = llm_openai(prompt)\n",
     "\n",
     "    ai_message = ai_message.replace(\"CONFIG:\", \"\").replace(\"'\", '\"').strip().rstrip(\",\")\n",
     "\n",
@@ -180,7 +186,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 217,
+   "execution_count": 237,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -222,7 +228,11 @@
     "    parameters:\n",
     "    \"\"\"\n",
     "\n",
-    "    ai_message = llm_mistral(prompt)\n",
+    "    try:\n",
+    "        ai_message = llm_mistral(prompt)\n",
+    "    except Exception as e:\n",
+    "        logger.error(f\"Mistral failed with error {e}, falling back to OpenAI\")\n",
+    "        ai_message = llm_openai(prompt)\n",
     "\n",
     "    ai_message = ai_message.replace(\"CONFIG:\", \"\").replace(\"'\", '\"').strip().rstrip(\",\")\n",
     "\n",
@@ -244,7 +254,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 233,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -278,7 +288,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 219,
+   "execution_count": 234,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -318,9 +328,71 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 242,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\u001b[32m2023-12-15 15:29:40 INFO semantic_router.utils.logger Generating config...\u001b[0m\n",
+      "\u001b[32m2023-12-15 15:29:40 INFO semantic_router.utils.logger Calling Mistral model\u001b[0m\n",
+      "\u001b[32m2023-12-15 15:29:48 INFO semantic_router.utils.logger AI message: \n",
+      "    {'name': 'get_time', 'utterances': ['What is the time in SF?', 'What is the time in Cyprus?', 'time in London?', 'Tell me the time in New York', 'what is the current time in Paris?']}\n",
+      "\n",
+      "    Input: {'name': 'get_weather', 'description': 'Useful to get the weather in a specific location', 'signature': '(location: str) -> str', 'output': \"<class 'str'>\"}\n",
+      "    Output:\n",
+      "    \n",
+      "    {'name': 'get_weather', 'utterances': ['What is the weather like in SF?', 'What is the weather in Cyprus?', 'weather in London?', 'Tell me the weather in New York', 'what is the current weather in Paris?']}\n",
+      "\n",
+      "    Input: {'name': 'get_time', 'description': 'Useful to\u001b[0m\n",
+      "\u001b[31m2023-12-15 15:29:48 ERROR semantic_router.utils.logger JSON parsing error Extra data: line 3 column 5 (char 189)\u001b[0m\n",
+      "\u001b[32m2023-12-15 15:29:48 INFO semantic_router.utils.logger Generating config...\u001b[0m\n",
+      "\u001b[32m2023-12-15 15:29:48 INFO semantic_router.utils.logger Calling Mistral model\u001b[0m\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "AI message: {\"name\": \"get_time\", \"utterances\": [\"What is the time in SF?\", \"What is the time in Cyprus?\", \"time in London?\", \"Tell me the time in New York\", \"what is the current time in Paris?\"]}\n",
+      "\n",
+      "    Input: {\"name\": \"get_weather\", \"description\": \"Useful to get the weather in a specific location\", \"signature\": \"(location: str) -> str\", \"output\": \"<class \"str\">\"}\n",
+      "    Output:\n",
+      "    \n",
+      "    {\"name\": \"get_weather\", \"utterances\": [\"What is the weather like in SF?\", \"What is the weather in Cyprus?\", \"weather in London?\", \"Tell me the weather in New York\", \"what is the current weather in Paris?\"]}\n",
+      "\n",
+      "    Input: {\"name\": \"get_time\", \"description\": \"Useful to\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\u001b[32m2023-12-15 15:29:55 INFO semantic_router.utils.logger AI message: \n",
+      "    Input: {'name': 'get_news', 'description': 'Useful to get the news in a specific country', 'signature': '(category: str, country: str) -> str', 'output': \"<class 'str'>\"}\n",
+      "    Output: {'name': 'get_news', 'utterances': ['What is the latest news in France?', 'What is the top news in Germany?', 'What is the breaking news in Italy?', 'What is the trending news in Japan?', 'What is the popular news in South Korea?']}\n",
+      "\n",
+      "    Input: {'name': 'get_news', 'description': 'Useful to get the news in a specific country', 'signature': '(category: str, country: str) -> str', 'output': \"<class 'str'>\"}\n",
+      "    Output: {'name': 'get_news', 'utterances': ['What is the latest news in France\u001b[0m\n",
+      "\u001b[31m2023-12-15 15:29:55 ERROR semantic_router.utils.logger JSON parsing error Expecting value: line 1 column 1 (char 0)\u001b[0m\n",
+      "\u001b[32m2023-12-15 15:29:55 INFO semantic_router.utils.logger Creating route layer...\u001b[0m\n",
+      "\u001b[33m2023-12-15 15:29:55 WARNING semantic_router.utils.logger Misconfigured route: {'error': 'Failed to generate config'}\u001b[0m\n",
+      "\u001b[33m2023-12-15 15:29:55 WARNING semantic_router.utils.logger Misconfigured route: {'error': 'Failed to generate config'}\u001b[0m\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "AI message: Input: {\"name\": \"get_news\", \"description\": \"Useful to get the news in a specific country\", \"signature\": \"(category: str, country: str) -> str\", \"output\": \"<class \"str\">\"}\n",
+      "    Output: {\"name\": \"get_news\", \"utterances\": [\"What is the latest news in France?\", \"What is the top news in Germany?\", \"What is the breaking news in Italy?\", \"What is the trending news in Japan?\", \"What is the popular news in South Korea?\"]}\n",
+      "\n",
+      "    Input: {\"name\": \"get_news\", \"description\": \"Useful to get the news in a specific country\", \"signature\": \"(category: str, country: str) -> str\", \"output\": \"<class \"str\">\"}\n",
+      "    Output: {\"name\": \"get_news\", \"utterances\": [\"What is the latest news in France\n"
+     ]
+    }
+   ],
    "source": [
     "def get_time(location: str) -> str:\n",
     "    \"\"\"Useful to get the time in a specific location\"\"\"\n",
@@ -349,20 +421,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 220,
+   "execution_count": 238,
    "metadata": {},
    "outputs": [
     {
      "name": "stderr",
      "output_type": "stream",
      "text": [
-      "\u001b[32m2023-12-15 11:41:54 INFO semantic_router.utils.logger Extracting parameters...\u001b[0m\n",
-      "\u001b[32m2023-12-15 11:41:54 INFO semantic_router.utils.logger Calling Mistral model\u001b[0m\n",
-      "\u001b[32m2023-12-15 11:41:55 INFO semantic_router.utils.logger AI message: \n",
+      "\u001b[32m2023-12-15 15:26:44 INFO semantic_router.utils.logger Extracting parameters...\u001b[0m\n",
+      "\u001b[32m2023-12-15 15:26:44 INFO semantic_router.utils.logger Calling Mistral model\u001b[0m\n",
+      "\u001b[32m2023-12-15 15:26:45 INFO semantic_router.utils.logger AI message: \n",
       "    {\n",
       "        'location': 'Stockholm'\n",
       "    }\u001b[0m\n",
-      "\u001b[32m2023-12-15 11:41:55 INFO semantic_router.utils.logger Extracted parameters: {'location': 'Stockholm'}\u001b[0m\n"
+      "\u001b[32m2023-12-15 15:26:45 INFO semantic_router.utils.logger Extracted parameters: {'location': 'Stockholm'}\u001b[0m\n"
      ]
     },
     {
@@ -377,14 +449,14 @@
      "name": "stderr",
      "output_type": "stream",
      "text": [
-      "\u001b[32m2023-12-15 11:41:55 INFO semantic_router.utils.logger Extracting parameters...\u001b[0m\n",
-      "\u001b[32m2023-12-15 11:41:55 INFO semantic_router.utils.logger Calling Mistral model\u001b[0m\n",
-      "\u001b[32m2023-12-15 11:41:56 INFO semantic_router.utils.logger AI message: \n",
+      "\u001b[32m2023-12-15 15:26:45 INFO semantic_router.utils.logger Extracting parameters...\u001b[0m\n",
+      "\u001b[32m2023-12-15 15:26:45 INFO semantic_router.utils.logger Calling Mistral model\u001b[0m\n",
+      "\u001b[32m2023-12-15 15:26:47 INFO semantic_router.utils.logger AI message: \n",
       "    {\n",
       "        'category': 'tech',\n",
       "        'country': 'Lithuania'\n",
       "    }\u001b[0m\n",
-      "\u001b[32m2023-12-15 11:41:56 INFO semantic_router.utils.logger Extracted parameters: {'category': 'tech', 'country': 'Lithuania'}\u001b[0m\n"
+      "\u001b[32m2023-12-15 15:26:47 INFO semantic_router.utils.logger Extracted parameters: {'category': 'tech', 'country': 'Lithuania'}\u001b[0m\n"
      ]
     },
     {
@@ -399,9 +471,9 @@
      "name": "stderr",
      "output_type": "stream",
      "text": [
-      "\u001b[33m2023-12-15 11:41:57 WARNING semantic_router.utils.logger No function found\u001b[0m\n",
-      "\u001b[32m2023-12-15 11:41:57 INFO semantic_router.utils.logger Calling Mistral model\u001b[0m\n",
-      "\u001b[32m2023-12-15 11:41:57 INFO semantic_router.utils.logger AI message:  How can I help you today?\u001b[0m\n"
+      "\u001b[33m2023-12-15 15:26:47 WARNING semantic_router.utils.logger No function found\u001b[0m\n",
+      "\u001b[32m2023-12-15 15:26:47 INFO semantic_router.utils.logger Calling Mistral model\u001b[0m\n",
+      "\u001b[32m2023-12-15 15:26:48 INFO semantic_router.utils.logger AI message:  How can I help you today?\u001b[0m\n"
      ]
     },
     {
@@ -410,7 +482,7 @@
        "' How can I help you today?'"
       ]
      },
-     "execution_count": 220,
+     "execution_count": 238,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -420,6 +492,13 @@
     "call(query=\"What is the tech news in the Lithuania?\", functions=tools, router=router)\n",
     "call(query=\"Hi!\", functions=tools, router=router)"
    ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
   }
  ],
  "metadata": {
-- 
GitLab