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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­q9D(iD8V8WT>EfWQnBS|z1-e} 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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