diff --git "a/4_lab4.ipynb" "b/4_lab4.ipynb" new file mode 100644--- /dev/null +++ "b/4_lab4.ipynb" @@ -0,0 +1,680 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The first big project - Professionally You!\n", + "\n", + "### And, Tool use.\n", + "\n", + "### But first: introducing Pushover\n", + "\n", + "Pushover is a nifty tool for sending Push Notifications to your phone.\n", + "\n", + "It's super easy to set up and install!\n", + "\n", + "Simply visit https://pushover.net/ and sign up for a free account, and create your API keys.\n", + "\n", + "As student Ron pointed out (thank you Ron!) there are actually 2 tokens to create in Pushover: \n", + "1. The User token which you get from the home page of Pushover\n", + "2. The Application token which you get by going to https://pushover.net/apps/build and creating an app \n", + "\n", + "(This is so you could choose to organize your push notifications into different apps in the future.)\n", + "\n", + "\n", + "Add to your `.env` file:\n", + "```\n", + "PUSHOVER_USER=put_your_user_token_here\n", + "PUSHOVER_TOKEN=put_the_application_level_token_here\n", + "```\n", + "\n", + "And install the Pushover app on your phone." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "# imports\n", + "\n", + "from dotenv import load_dotenv\n", + "from openai import OpenAI\n", + "import json\n", + "import os\n", + "import requests\n", + "from pypdf import PdfReader\n", + "import gradio as gr" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "# The usual start\n", + "\n", + "load_dotenv(override=True)\n", + "openai = OpenAI()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "# For pushover\n", + "\n", + "pushover_user = os.getenv(\"PUSHOVER_USER\")\n", + "pushover_token = os.getenv(\"PUSHOVER_TOKEN\")\n", + "pushover_url = \"https://api.pushover.net/1/messages.json\"" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "def push(message):\n", + " print(f\"Push: {message}\")\n", + " payload = {\"user\": pushover_user, \"token\": pushover_token, \"message\": message}\n", + " requests.post(pushover_url, data=payload)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "# push(\"HEY!!\")" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "def record_user_details(email, name=\"Name not provided\", notes=\"not provided\"):\n", + " push(f\"Recording interest from {name} with email {email} and notes {notes}\")\n", + " return {\"recorded\": \"ok\"}" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "def record_unknown_question(question):\n", + " push(f\"Recording {question} asked that I couldn't answer\")\n", + " return {\"recorded\": \"ok\"}" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "record_user_details_json = {\n", + " \"name\": \"record_user_details\",\n", + " \"description\": \"Use this tool to record that a user is interested in being in touch and provided an email address\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"email\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The email address of this user\"\n", + " },\n", + " \"name\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The user's name, if they provided it\"\n", + " }\n", + " ,\n", + " \"notes\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"Any additional information about the conversation that's worth recording to give context\"\n", + " }\n", + " },\n", + " \"required\": [\"email\"],\n", + " \"additionalProperties\": False\n", + " }\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "record_unknown_question_json = {\n", + " \"name\": \"record_unknown_question\",\n", + " \"description\": \"Always use this tool to record any question that couldn't be answered as you didn't know the answer\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"question\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The question that couldn't be answered\"\n", + " },\n", + " },\n", + " \"required\": [\"question\"],\n", + " \"additionalProperties\": False\n", + " }\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "tools = [{\"type\": \"function\", \"function\": record_user_details_json},\n", + " {\"type\": \"function\", \"function\": record_unknown_question_json}]" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'type': 'function',\n", + " 'function': {'name': 'record_user_details',\n", + " 'description': 'Use this tool to record that a user is interested in being in touch and provided an email address',\n", + " 'parameters': {'type': 'object',\n", + " 'properties': {'email': {'type': 'string',\n", + " 'description': 'The email address of this user'},\n", + " 'name': {'type': 'string',\n", + " 'description': \"The user's name, if they provided it\"},\n", + " 'notes': {'type': 'string',\n", + " 'description': \"Any additional information about the conversation that's worth recording to give context\"}},\n", + " 'required': ['email'],\n", + " 'additionalProperties': False}}},\n", + " {'type': 'function',\n", + " 'function': {'name': 'record_unknown_question',\n", + " 'description': \"Always use this tool to record any question that couldn't be answered as you didn't know the answer\",\n", + " 'parameters': {'type': 'object',\n", + " 'properties': {'question': {'type': 'string',\n", + " 'description': \"The question that couldn't be answered\"}},\n", + " 'required': ['question'],\n", + " 'additionalProperties': False}}}]" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tools" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "# This function can take a list of tool calls, and run them. This is the IF statement!!\n", + "\n", + "def handle_tool_calls(tool_calls):\n", + " results = []\n", + " for tool_call in tool_calls:\n", + " tool_name = tool_call.function.name\n", + " arguments = json.loads(tool_call.function.arguments)\n", + " print(f\"Tool called: {tool_name}\", flush=True)\n", + "\n", + " # THE BIG IF STATEMENT!!!\n", + "\n", + " if tool_name == \"record_user_details\":\n", + " result = record_user_details(**arguments)\n", + " elif tool_name == \"record_unknown_question\":\n", + " result = record_unknown_question(**arguments)\n", + "\n", + " results.append({\"role\": \"tool\",\"content\": json.dumps(result),\"tool_call_id\": tool_call.id})\n", + " return results" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "globals()[\"record_user_details\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Push: Recording this is a really hard question asked that I couldn't answer\n" + ] + }, + { + "data": { + "text/plain": [ + "{'recorded': 'ok'}" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "globals()[\"record_unknown_question\"](\"this is a really hard question\")" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "# This is a more elegant way that avoids the IF statement.\n", + "\n", + "def handle_tool_calls(tool_calls):\n", + " results = []\n", + " for tool_call in tool_calls:\n", + " tool_name = tool_call.function.name\n", + " arguments = json.loads(tool_call.function.arguments)\n", + " print(f\"Tool called: {tool_name}\", flush=True)\n", + " tool = globals().get(tool_name)\n", + " result = tool(**arguments) if tool else {}\n", + " results.append({\"role\": \"tool\",\"content\": json.dumps(result),\"tool_call_id\": tool_call.id})\n", + " return results" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [], + "source": [ + "reader = PdfReader(\"me/linkedin.pdf\")\n", + "linkedin = \"\"\n", + "for page in reader.pages:\n", + " text = page.extract_text()\n", + " if text:\n", + " linkedin += text\n", + "\n", + "reader = PdfReader(\"me/NareshRajaML_AI_Role.pdf\")\n", + "resume_content = \"\"\n", + "for page in reader.pages:\n", + " text = page.extract_text()\n", + " if text:\n", + " resume_content += text\n", + "\n", + "with open(\"me/summary.txt\", \"r\", encoding=\"utf-8\") as f:\n", + " summary = f.read()\n", + "\n", + "name = \"Naresh\"" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [], + "source": [ + "system_prompt = f\"You are acting as {name}. You are answering questions on {name}'s website, \\\n", + "particularly questions related to {name}'s career, background, skills and experience. \\\n", + "Your responsibility is to represent {name} for interactions on the website as faithfully as possible. \\\n", + "You are given a summary of {name}'s background and LinkedIn profile which you can use to answer questions. \\\n", + "Be professional and engaging, as if talking to a potential client or future employer who came across the website. \\\n", + "If you don't know the answer to any question, use your record_unknown_question tool to record the question that you couldn't answer, even if it's about something trivial or unrelated to career. \\\n", + "If the user is engaging in discussion, try to steer them towards getting in touch via email; ask for their email and record it using your record_user_details tool. \"\n", + "\n", + "system_prompt += f\"\\n\\n## Summary:\\n{summary}\\n\\n## LinkedIn Profile:\\n{linkedin}\\n\\n## Resume Content:\\n{resume_content} , resume link : https://drive.google.com/file/d/1i8ChOcO0b1caSqE8i4CeiJduN9EbYLua/view?usp=sharing \\n\\n\"\n", + "system_prompt += f\"With this context, please chat with the user, always staying in character as {name}.\"\n" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ChatCompletion(id='chatcmpl-BhRw40JOWTJl44VzHt3NaxGmcjbZ5', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content=\"Depression is a mental health disorder characterized by persistent feelings of sadness, hopelessness, and a lack of interest or pleasure in activities that were once enjoyable. It can affect how a person thinks, feels, and handles daily activities. Symptoms can vary widely and may include:\\n\\n- Persistent sadness or low mood\\n- Loss of interest or pleasure in activities\\n- Changes in appetite or weight\\n- Sleep disturbances (insomnia or oversleeping)\\n- Fatigue or low energy\\n- Feelings of worthlessness or excessive guilt\\n- Difficulty concentrating or making decisions\\n- Thoughts of death or suicide\\n\\nDepression can vary in severity and duration, and it may occur as a single episode or as part of recurrent episodes throughout a person's life. It can be triggered by various factors, including genetics, biology, environmental stressors, and life events. Treatment often includes therapy, medication, or a combination of both. If you or someone you know is struggling with depression, it's important to seek help from a mental health professional.\", refusal=None, role='assistant', annotations=[], audio=None, function_call=None, tool_calls=None))], created=1749695188, model='gpt-4o-mini-2024-07-18', object='chat.completion', service_tier='default', system_fingerprint='fp_34a54ae93c', usage=CompletionUsage(completion_tokens=203, prompt_tokens=16, total_tokens=219, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=0, audio_tokens=0, reasoning_tokens=0, rejected_prediction_tokens=0), prompt_tokens_details=PromptTokensDetails(audio_tokens=0, cached_tokens=0)))\n" + ] + } + ], + "source": [ + "messages = [{\"role\": \"user\", \"content\": \"Hey buddy ! what is mean by depression?\"}]\n", + "response = openai.chat.completions.create(model=\"gpt-4o-mini\",messages=messages)\n", + "\n", + "print(response)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'stop'" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "response.choices[0].finish_reason" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "ChatCompletionMessage(content=\"Depression is a mental health disorder characterized by persistent feelings of sadness, hopelessness, and a lack of interest or pleasure in activities that were once enjoyable. It can affect how a person thinks, feels, and handles daily activities. Symptoms can vary widely and may include:\\n\\n- Persistent sadness or low mood\\n- Loss of interest or pleasure in activities\\n- Changes in appetite or weight\\n- Sleep disturbances (insomnia or oversleeping)\\n- Fatigue or low energy\\n- Feelings of worthlessness or excessive guilt\\n- Difficulty concentrating or making decisions\\n- Thoughts of death or suicide\\n\\nDepression can vary in severity and duration, and it may occur as a single episode or as part of recurrent episodes throughout a person's life. It can be triggered by various factors, including genetics, biology, environmental stressors, and life events. Treatment often includes therapy, medication, or a combination of both. If you or someone you know is struggling with depression, it's important to seek help from a mental health professional.\", refusal=None, role='assistant', annotations=[], audio=None, function_call=None, tool_calls=None)" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "msg = response.choices[0].message\n", + "msg" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'role': 'user', 'content': 'Hey buddy ! what is mean by depression?'},\n", + " ('content',\n", + " \"Depression is a mental health disorder characterized by persistent feelings of sadness, hopelessness, and a lack of interest or pleasure in activities that were once enjoyable. It can affect how a person thinks, feels, and handles daily activities. Symptoms can vary widely and may include:\\n\\n- Persistent sadness or low mood\\n- Loss of interest or pleasure in activities\\n- Changes in appetite or weight\\n- Sleep disturbances (insomnia or oversleeping)\\n- Fatigue or low energy\\n- Feelings of worthlessness or excessive guilt\\n- Difficulty concentrating or making decisions\\n- Thoughts of death or suicide\\n\\nDepression can vary in severity and duration, and it may occur as a single episode or as part of recurrent episodes throughout a person's life. It can be triggered by various factors, including genetics, biology, environmental stressors, and life events. Treatment often includes therapy, medication, or a combination of both. If you or someone you know is struggling with depression, it's important to seek help from a mental health professional.\"),\n", + " ('refusal', None),\n", + " ('role', 'assistant'),\n", + " ('annotations', []),\n", + " ('audio', None),\n", + " ('function_call', None),\n", + " ('tool_calls', None)]" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "messages += msg \n", + "\n", + "messages" + ] + }, + { + "attachments": { + "image.png": { + "image/png": "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RERERERERDJgwE1EREREREQkAwbcRERERERERDJgwE1EREREREQkAwbcRERERERERDJgwE1EREREREQkAwbcRERERERERDJgwE1EREREREQkAwbcRERERERERDJgwE1EREREREQkAwbcRERERERERDJgwE1EREREREQkAwbcRERERERERDJgwE1EREREREQkAwbcRERERERERDJgwE1EREREREQkAwbcRERERERERDJgwE1EREREREQkAwbcRERERERERDKY7c/MFAoFwsPDERISgoCAAH9mTZNoeHgYAwMD6O3thcPhmOriEBERERERTUt+C7jnzp2LOXPm+Cs7klFAQABCQ0MRGhqKnp4enD9/fqqLRERERERENO34pUu5QqFgsD1DzZkzBwqFYqqLQURERERENO34JeAODw/3RzY0RXh+iYiIiIiI3Pkl4A4JCfFHNjRFeH6JiIiIiIjc+SXg5gRpMxvPLxFNJq1Wi8cee4zDVYiIiOiyx8+CERHNYEajETabDTabDWazGampqR7Xu/vuu9HQ0ACbzYampiZotVo/l/SSO++8E0899RSKiorw4x//eErKQERERDRZpk3AXVJSgtraWtTW1qKqqgp5eXmS5RUVFaisrERGRsa40ler1di1axd27doFtVo9pm2Li4snlDcR0XQQGRmJb37zmx6Xfetb35oW8zF8/PHH+OSTTzAwMICOjo6pLg4RERHRhPj1O9zeFBcXIyEhATt27MD27dunujhERDPOJ598AoVCgeTkZLdl8+fPxy233ILPP/8cn3/++RSU7t8sFgvS09OntAxEREREk2VaBNzR0dHo6elBY2Oj13Xy8/MnlEdDQwPuv//+CaVBRHS5GhgYQEBAAG688Ubcfffd+NOf/iQuy8rKwrx589DV1QWlUjmFpSQiIiKaWaZFwD2SkpISLF68GADQ39+P5557DjU1NZLlERER6O7uFtc7ffq0JECvqKjA9ddfDwDo6uqCwWBAQ0ODJJ/i4mKsWLFC/NnTekuXLoVerx8xHW8yMjLw6KOPora2Funp6YiMjMTQ0BBef/11sVVfrVZDr9cjMjLSax6u5XTdV9c0AODAgQMoLS31uNy1DMXFxUhOTkZTUxNuv/32ce0rEU0/H3/8MQYGBrBo0SJ84xvfkATc3/jGNxAUFITGxkbcdtttbtumpKRgw4YN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g4GBgakuAhERERGNwmg0Ii0tDQ6HY8RPehHRlccvY7gVCgWuvvpqubOZcc6dO+d1ohkiIiIiIiKa3vwyhtvhcKCnp8cfWc0YPT09DLaJiIiIiIguY37pUg4A58+fx8DAAMLDwxESEjJtx3RPpeHhYQwMDKC3t5fBNhERERER0WXObwE3cKmlm4EkERERERERXQmu+M+CEREREREREcmBATcRERERERGRDBhwExEREREREcmAATcRERERERGRDBhwExEREREREcmAATcRERERERGRDBhwExEREREREcmAATcRERERERGRDBhwExEREREREcmAATcRERERERGRDBhwExEREREREcmAATcRERERERGRDBhwExEREREREclgtj8yUSgU/siGiIiIiIiIaEo5HA7x/34JuJ0zJCIiIiIiIroSsEs5ERERERERkQwYcBMRERERERHJgAE3ERERERERkQwYcBMRERERERHJgAE3ERERERERkQwYcBMRERERERHJgAE3ERERERERkQwYcBMRERERERHJgAE3ERERERERkQwYcBMRERERERHJgAE3ERERERERkQwYcBMRERERERHJgAE3ERERERERkQwYcBMRERERERHJgAE3ERERERERkQwYcBMRERERERHJYLY/M1MoFAgPD0dISAgCAgL8mTVdZoaHhzEwMIDe3l44HI6pLg4REREREdGY+S3gnjt3LubMmeOv7OgyFxAQgNDQUISGhqKnpwfnz5+f6iIRERERERGNiV+6lCsUCgbbNG5z5syBQqGY6mIQERERERGNiV8C7vDwcH9kQzMYryEi8oXRaITZbEZqauqI6+l0OrS0tMBgMEx6Gaqrq1FdXT3p6QqMRiOampqg1Wr9ui3RlUytVmPXrl1oaWlBa2srKioqprQ8TzzxBOrr69Ha2op//OMf+Pa3v43HHntMcm9XV1fDZrPJUs8Rke/8EnCHhIT4IxuawXgNEU1MamoqzGYzbDab5B8fxOhydbld06MFP64vQ4T9MxqN/iwmeaBQKLB582YkJyfj4sWLsNvtGBoamrLyFBQU4JFHHsHcuXPR0dGBzs5O3H333XjyySexefNm3H333VNWNiJy55eAmxOk0UTxGiIaP4PBgJ07d6Kvrw8qlUr8t3XrVmi1Wp9ahD3RarVoamryS4Ajd6sxyUOua0Sua1ouWq0W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dBWQexJPREREyvz617/GmjVrcPjwYfzoRz+a6OJICHPxGxsbA75e62pnMBhQUFDgd20J4Mv3gR88ePCarzOiqWzK93ATERERXeuExdIuX76Mt956a6KL4yUtLQ0ulyuokSxERFeDsKxSPjw8LFmcg4JXXV2NhQsX+vz8k08+kbwXfKqRG2pHREREyrS0tOCf/umfJroYPlVWVnLlZyK6JoUl4B4cHMSsWbPCkdVVayoH00qMdvEaIiIiIiKiySosc7hVKhXmzZsX6mxoCvvss8+CWhiGiIiIiIhosgvLHG6n04n+/v5wZEVTUH9/P4NtIiIiIiK66oRlSDkAXLhwAYODg4iOjkZkZCTndF/jhoeHMTg4iEuXLjHYJiIiIiKiq1LYAm5gpKebwRURERERERFdC/haMCIiIiIiIqIQYMBNREREREREFAIMuImIiIiIiIhCgAE3ERERERERUQgw4CYiIiIiIiIKAQbcRERERERERCHAgJuIiIiIiIgoBBhwExEREREREYUAA24iIiIiIiKiEGDATURERERERBQCDLiJiIiIiIiIQoABNxEREREREVEIXBeOTFQqVTiyISIiIiIiIppQTqdT/HdYAm73DImIiIiIiIiuBRxSTkRERERERBQCDLiJiIiIiIiIQoABNxEREREREVEIMOAmIiIiIiIiCgEG3EREREREREQhwICbiIiIiIiIKAQYcBMRERERERGFAANuIiIiIiIiohBgwE1EREREREQUAgy4iYiIiIiIiEKAATcRERERERFRCDDgJiIiIiIiIgoBBtxEREREREREIcCAm4iIiIiIiCgEGHATERERERERhQADbiIiIiIiIqIQYMBNREREREREFALXhTMzlUqF6OhoREZGYtq0aeHMmoIwPDyMwcFBXLp0CU6nc6KLQ0RERERENCWFLeCeM2cOZs+eHa7saAymTZuGWbNmYdasWejv78eFCxcmukhERERERERTTliGlKtUKgbbU9Ts2bOhUqkmuhhERERERERTTlgC7ujo6HBkQyHC9iOisbBYLLBarUhPT5/oogQlPT0dVqsVNpttSpZ/MvM8JmpqatDW1ga9Xh9UOldLG+n1erS1taGmpmaiizIqBoMBp06dgslkmuiiKCbUuZIyT9VrmLvRHmNXw74TTbSwBNyRkZHhyIZChO1HNLUJN1o2m038OXXqFAwGA4DxvVme6oGDID09HRUVFXA4HNBoNMjIyEBTU9NEFwvA1AxuQmEyt1GoXC3nFxHRtSQsATcXSJva2H5EU5fJZEJFRQUOHjwIjUYj/pw6dWqiizZuDAYD2traxAcI4yEtLQ0xMTFoaWkZtzRHw2KxwGKxTGgZJqvJ0kahMh7HdSjODSIiCk5YVyknIqLwSU9PR2ZmJjo6OmA0GiWfrV27Vvx3ZWUlKisrxyVPs9kMs9k8LmmRvPFsL5paeH4REU09kyLgzs/Px3333Ye2tjaUlpZOWP4zZ84EABw6dAjl5eVhL0d1dTUWLlwIAOjt7YXJZJI8uR/PclZXVyM2Nha/+c1vUF9fP/bCE9GkEx8fD7VaDZvNNtFFISIiIromhWVIeSDnz5/H0NCQz8/LysqwZ88eaLXakOS/c+dOZGdnw2QyYWBgICR5KFFQUACdTofjx4/Lfj6e5ezr6xvT94lo8jObzbDb7UhNTfW7GJXnnGD3xYQsFos471tYOMdkMknmg7vPJVYyx9R9oSvPtAU1NTWwWq144okncOrUKcmcc890ioqKoFKpUFRUBJvNJslbbv56oPmvFosFRUVFmDlzJnJzc8V99LWwl8lk8poTLwzjda8/X4uC1dTUSMrX1taGl19+GTabDUlJSUhKSpJ839ccbs92kaszYYi6kIbSOvHkr16VtO9Y+WojgVydute93DHua+j+WM4Hz2ND4G8evr/jWukc7vE8N+TacyzTHPy1jWddetanr3PLczslafkrk5LzwbP+lCz653ldcy+XZz3LnTPBtIVn/axevXpc9l2uDFxTgMi/SRFwC7q7uye6CNeUgYEB9Pb2TnQxiCiEtm/fDgCoqKgI+qYoNzcXLS0t0Gg0qKqqQkxMDJ555hlkZmZi/fr10Gg0sFqtYhCo1Lp162Cz2cT55MXFxVCr1diyZYtkO7VaDZ1Oh/z8fNxyyy1ew6ibmpqQkZGBqqoqOJ1OVFVVQaPRIC8vD8CX89dbW1vFvKqqqrB06VK/AUNWVhaqqqowNDSEvXv3QqPReA3JDyQiIgJFRUVi/a1fvx4OhwOlpaWSm2iLxYKlS5eKZddoNGhvbxfz7ejoQEdHBzQaDVJSUnwOJ7ZYLNDr9ZJ0mpubUVRU5BVkJCUlIScnB/n5+dBoNNi7dy8yMjIUL8JmMBhgMplgt9sl9Xr58mUAytt3LHy1kRAMpKamori4WCyD3W6HyWTyOk5XrlwptlFWVpbfPEN1PngKdFyPRxpKzw2DwYCdO3eKC9MJ7ZmQkDCqhyi+jndgJJDTarWSdvNVnwUFBWJbCNvl5uaKx3Awaa1cuRIAxO2E88Hf9VI4B9zrz263Y+vWrQGD7vj4eKxatUo8/zo6OqDX6/Hcc8+hsbHR5zmjtC2Ec0CtVovHZXFxMdLS0rxe82qxWCTninAM+Np3z4UKPc99IpI3KQLu+vp6rFmzxmt4dFlZGRoaGrB48WLMnTsX5eXlaGhoQF1dHfLz8722E37Kysok6axcuRIHDhwQPz9w4IB4gR1P+fn5qKur85mP5+eh6LXXarXYs2ePpD5KSkq8tistLcUPf/jDq3axGSIaYTabkZKSgo6ODmRkZATVG+E+97uyshKdnZ346le/itraWnE16H379sHlcmHJkiWKy2Q0GiXBg9lsRmtrK9RqteQGPiIiAvv37x/VytPC/HWr1SrJq7KyEmazGYmJiSFfSMpqtYr119TUhMbGRsTExCAtLQ3ASNCTmJiI7du3Sx4m5OTkBDVP12AwICEhwSudvLw8dHR0IDMzU1KvTqcTZWVlYr3u378fXV1div4epaenIycnB52dnZIAtbKyEg899BAA5e0bCuvWrYNarcbmzZsldbhlyxb09fUhOztbsn1vb6/ihymhOh/CLZhzIzs726utzWYzqqurERMTg3Xr1inON9Dx3tTUhKysLEm7CfUZFxcn/i4iIgKtra2SdvM81pWmBYwcA+71YDQaxYc2voLn7Oxs9PX1Ydu2beLvhIeb9957r996GBoakhwzdXV1AAC73S7uk3DOJCQkiGVQ2hbCOeDtg5ShAAAgAElEQVR+jgvbuY8mNRgMSExMxMGDB8V6qqysRHNzs899F6Ypud87up/7RCRvUgTcvpSWlopDrHt7e1FSUgKdTofs7Gzs3LkTwEiwnZycDJPJBJ1OB5PJhOTkZDHoXrlyJTZt2oT29nbodDrodDq0t7dj06ZN4xp0C/Or33jjDTGfNWvWiPOjtVotFi9ejP/4j/8QyxkVFYUHHnhg3MoAAEVFRXA6nWIZdDrdhMxHJ6LJJSsrS+xNycjIUDQk1POBXE9PD1wuFzo7O8elTO5DHjMyMqBWqxEfHy9+Ppa80tLSoFarcezYMa/Pjh49GvKgyOVyeeUtjOISbvi1Wi36+vpw5MiRMeW1ZMkSOBwO2XRaWlokQT4wcmPvHog0NTXB4XAoCoiDWRk8UPuGglar9do/YGQfbTabJIABRo5ppUJ9PoyG3LDwQD3PSs8NvV6PhIQE2bY+cuQI+vr6guo0UHq8u093qKiogEqlwvz588XP5c4tYKQ9PI+xQGkB3u0KAOfOnUNERAQSExO9PhPqpbGxUfIwsKurCw6HA7GxsX73z7MOOjs74XK5/B6LwbSFr3NAyEewZMkS9PX1Yf/+/Yr3XdjHsY7iILrWTOqAOxCtVosFCxagvb1dDGzr6+vR3t6OBQsWQKvVIjU1FQDwpz/9Sfye8G/hs/GQmZkJu93uM7htaWnBpk2bxItlfX09enp6EBMTM25lEMTGxoakB5+Ipr6srCzs3bsXSUlJE/YeZ2HOIADJcE9PDocDXV1do8ojLi4OERERYypnKKWnp0OtVsPhcIz53dGBbvDHk/CwwN8UMKXtO96EOg3GuXPnQlSa8BBGsLi/8i/Q+8iVnhuJiYnjdg4pOd6FhweFhYXYvn27OBTa6XQGnd94puVJqBdh7QDhZ/fu3SF7oKS0LYI5B2JjYxEfH4/du3dL9iM3N9fnd4SpCp2dnbLrAhCRvEmxSvlozZ07F1FRUV5/+Lu7u5GcnIy5c+ciLi7Oa65yb28vBgYGvIYVjZZWq4VKpcLZs2f9bldWVobFixdLfvfJJ5+MSxkEBQUFqK6uhtFohNFolF3tnIiubfv370dmZmbIFqL0x2AwYOnSpdi7d2/Q86KD0d3dLenNGQ/nzp0btwe1Qq/yeBB69sIhUL2Gq33ljGedjpdQHIdjpbRMnj2iY6GkbQoLC+FwOFBcXDzqh1DCQ7otW7aMOS1foxeEejGbzWE7xpW2RTDngHDdGE0dCcPaTSYTcnNzYbFYAq6BQHQtm9I93L4CZ/cgu7u7G1FRUZg7d674ua9AfbRaWlrgdDr99laXlJQgJSUFu3btEod6j3ewLRBWOxfmbhcVFYUkHyKa2oIZThtK6enp0Gg045qmcKMsN2x82bJliIiIkB2WGojcUMvRPrjo6enxGuI8GufOnfMaNu5etvEYti7wV6++hKJ9ffFVp0IZ5IbahlpERITXfcqSJUvEV3yGm9JzQxg+LHd8BzO1QDCa433ZsmVeC31FRER4lV1oX3896HJpAfLnr1ar9TnCxl+9hEowbeGrnj333991Qylhvns41mcgmsqmRMDd3d2N2bNne/UstLS04OzZs0hOThaHUOfn5yMlJQXNzc1oaWlBa2srAOCuu+4Sv3f//fdjYGAADQ0N41bGEydOYOHChbILlAEjDwGGhoZw/vx5ACMBuPDO7VARHgQQ0bVJr9eLK/O627JlC9RqNfbt2xf2Mgk9Ne43jhs3bhzTUEy5AMJsNuPgwYNeqw0bDAbo9Xo0Nzd7rXoeiDC/NScnR7y5NJlMSEpKGlW5t23bBofD4bWycW1trfh/JUGK0WhEZ2cnCgsLJfMqa2pqkJiYKFmgaaz81evzzz8/bu1rMpkUvWbJk686FY55YWGrcBHm1959991ieYRRAIGM5uGGkjSUnhtNTU2ora1FYmKiZM0HvV6PgoICdHZ2BtXDG+h4F6bZCQGgXq/H3XffLZvW0qVLJcf6li1bEBMTIy5AFkxantNrampqkJSU5DVHWyAsgJiUlOQ1nNr93B1PwbSFcF13fyOC3P7v378ffX19KCgokJRZOJfl6PV61NbWiv9X8qCDiKZIwF1eXg673Y4NGzZ4rVJeWlqKnp4eGI1GNDQ0YMOGDXjjjTfEudT19fXYt28fUlJSxFW7VSqVZJi1sMq50WhEVFQUVq1aJbvaeaAyHjp0SPyu5yrlv//97zEwMCCWc+nSpfjwww/F77uvpO6+Krt7GoHKKbdCuUqlQlVV1dgbgYimJLVajYqKCskcPbVajYcffjjsPX3Al6vlJiYmiuUBMKY5vsKKvp6rsBuNRvE1N0JeRUVFMJvNQb1iybPsMTEx4rxHrVaLvXv3jqrcwnxIu90uaaPo6GixbYSb54qKCr8BaFZWlvgaMCGd1NRUGI3GoB8sBCJXr4WFhThx4sS4ta+vhZ8C8VWnE3XMNzU1iX+jhfLk5OSgpqZGsmK0HF/HdTDGem5UVlbCaDQiISFB3E54nViwQ4gDHe95eXmSucFbt27FCy+84NVxIAznLigoENNISEiQHOtK0wKAAwcOIDMzU0xLeG2Zv4cJcvVns9kwODgYsmNMaVuYzWZs3rwZarVavE7J7b+v9igoKMDrr7/usxzJycmSeesOh4PDyYkCmLZo0aLhUGeyaNGiUGdBIXbmzJmJLgIREV0DhHf9NjY2hn0eOE1uBoNBXKtmvB8kERGFypTo4SYiIqJrQ1paGlwul9frioiIiKaisKxSPjw8jGnTpoUjq3Ent7K4u2thFfDh4ZAPgiAiokmgpqYGGRkZsp85nU5s3rw55MOyKysr2XtJRERXjbAE3IODg5g1a1Y4shp3paWlE12ECTc4ODjRRSAiojAYzdx2IiIi8i0sc7hVKhXmzZsX6mwoRD777DOudk5ERERERBSksMzhdjqd6O/vD0dWNM76+/sZbBMREREREY1CWIaUA8CFCxcwODiI6OhoREZGTtk53deC4eFhDA4O4tKlSwy2iYiIiIiIRilsATcw0tPNAI6IiIiIiIiuBXwtGBEREREREVEIMOAmIiIiIiIiCgEG3EREREREREQhwICbiIiIiIiIKAQYcBMRERERERGFAANuIiIiIiIiohBgwE1EREREREQUAgy4iYiIiIiIiEKAATcRERERERFRCDDgJiIiIiIiIgoBBtxEREREREREIcCAm4iIiIiIiCgEGHATERERERERhcB14chEpVKFIxsiIiIiIiKiCeV0OsV/hyXgds+QiIiIiIiI6FrAIeVEREREREREIcCAm4iIiIiIiCgEGHATERERERERhQADbiIiIiIiIqIQYMBNREREREREFAIMuImIiIiIiIhCgAE3ERERERERUQgw4CYiIiIiIiIKAQbcRERERERERCHAgJuIiIiIiIgoBBhwExEREREREYUAA24iIiIiIiKiEGDATURERERERBQCDLiJiIiIiIiIQoABNxEREREREVEIMOAmIiIiIiIiCoHrwpmZSqVCdHQ0IiMjMW3atHBmTVPM8PAwBgcHcenSJTidzokuDhERERERUdDCFnDPmTMHs2fPDld2NMVNmzYNs2bNwqxZs9Df348LFy5MdJGIiIiIiIiCEpYh5SqVisE2jdrs2bOhUqkmuhhERERERERBCUvAHR0dHY5s6CrGY4iIiCYrg8GAU6dOwWQyAQD0ej3a2tpQU1MzLunX1NSgra0Ner1+XNKbCuTq0GKxwGq1Ij09fQJL5k0oq9D+NL7G+3wiCrewBNyRkZHhyIauYjyGiMampqYGp06dgsFgEG9ebDab5CfcN/QWi2VUeZpMJq+y22w2WCyWEJV0YlyLQRYRUagxgB8frEflwhJwc4E0GiseQ0SjZzAYkJqaiu3bt6OyslL8vdVqhUajEX/sdjtMJhMMBkNYypWV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BtxEREREREREKmDATURERERERKQCBtxEREREREREKmDATURERERERKQCBtxEREREREREKmDATURERERERKSCa+KxEq1WG4/VEBEREREREU0rr9cr/T8uAbf/ComIiIiIiIiuBhxSTkRERERERKQCBtxEREREREREKmDATURERERERKQCBtxEREREREREKmDATURERERERKQCBtxEREREREREKmDATURERERERKQCBtxEREREREREKmDATURERERERKQCBtxEREREREREKmDATURERERERKQCBtxEREREREREKmDATURERERERKQCBtxEREREREREKmDATURERERERKQCBtxEREREREREKrgmnivTarVISUlBYmIiNBpNPFc9ofHxcfh8PgwPD8Pr9U53c4iIiIiIiGgOiFvAfcMNNyA1NTVeq4uKRqNBUlISkpKS4PF4cP78+eluEhEREREREc1ycRlSrtVqZ2ywHSg1NRVarXa6m0FERERERESzXFwC7pSUlHisJmZmW3uJiIhmO61Wiy1btqCsrEz6zOFwoKenBxaLBQBgMplw6tQpOJ1OFBYWhl2W0WjE1q1bkZGRoXq7Kf7EcdHZ2Sk7XtRkMpnQ2dkJk8mk2joKCwvhdDrhcDgmvYyysjJ0dnZK50y8xGP7EM1WcQm4ExMT47GamJlt7SUimoi4Aevp6ZH+nTp1albfGNlstrjebJP6tm3bhkcffRTbt2/HPffcM+nlrF69Gk899RS2bNmC3/zmNzFsISlhs9lUvb44HA7odDps2rQJq1atAgB0dnbCZrNNalmRHt5QbDgcDl6z6aoVl4B7JhVIU2K2tZeIKByLxYJdu3bh0KFDyM7Olv6dOnVKmoY9ExRPWVlZsFqtOH78OH79619Lnw8NDWF0dBQejwcDAwOTXv7IyAg8Hg8uXbqEs2fPxqLJpJDJZEJubi727NkDq9Ua8+WXlZVBr9ejp6cHLpcr5ssn9ZSUlKCvrw/V1dXT3RSiuItrlXIiIoqfwsJCGI1GdHV1wWw2y343lR7EmaCysnK6m0CTlJGRgbVr1yItLQ3z5v3/uf8zzzyDZ555ZsrLP3PmDO6+++4pL4eiV1pair6+PlWC7XDsdjvsdvuk5i0pKYlxa2gizc3NqKqqgslkiusxQjTdpvU93A0NDWhpacHWrVulz7Zu3YoDBw7AYDBMY8uIiGa/jIwM6HS6KfUWEhEpIXqf29vbp7spNEO1tbVhZGQEeXl5090Uoria1oAbAC5cuIDly5dPdzOIiOYcu92Ovr4+5ObmhsybEwV6ampqoNVqUVNTg56eHikX0uFwwOFwwGKxBBUoEsWrRE54YB6kWLZ/3njgNIHL988tD8w7DywiFJjDbbPZ4HQ6UVVVNeF8QHBOe2dnJ1544YWIeadiHb/4xS9w6tSpoOlFISfxL7Bokc1mC7s9xLaItF3DbdvAv9M/TcC/XaFyKCdql5J9HSgjIwO//e1v0d7eju7ubnR3d+Pf//43fvCDH8BisWD//v1SMbOKigrpmFNaEE2JiYqtbdmyBU6nE93d3Th9+jSampqQk5MTdln+81ZVVeFvf/sburu70dXVhZaWFnznO9+RphXHssPhwBNPPIHOzk7p78nJycFzzz2H9957T9ou7733Hnbv3i0r7qbVavHEE0/g3XffRXd3N06dOoVXXnkFL7/8suz89G/X1q1bceLECdn+/dnPfoZ33nlHWteJEyfwxBNPSG9iqaiowJEjR3D69Gn09PTg9OnT0rIn2ofhrF27FgDwzjvvSJ+Fq7VgsVhk54+S49Vms2HXrl3QarUoKiqStoU4n/1zuMOdT4F53oE53KHOrVC54ZHOqcBpQl0PxN/kP82jjz4advsG8r9uhqvL4b/8wN8H7gNBbDPRXv8ibBMtb6I2im3scrnQ09OD7Oxs5s3TVWXaA26Px4OvfOUr2Lx583Q3hYhoztmzZw8AYNeuXUE3ji6XC0VFRaivr4fX60V9fT2ys7Nlw7X1ej1uvvlmZGdnY9WqVbDb7bBYLKipqYHdbkd2djY2bdokrUPcRG3YsEG6scrOzkZtbS10Oh22b98ua0NOTg4MBoO0nKGhIVRVVWHHjh1oaGhAdnY26uvrkZmZGbEoUkZGBkwmE+rq6sLOZzKZYLFY0NHRIbXt0KFDKC4uVrQ9dTodiouLsXnzZqxYsQJWq1W6SReFnLKzs9HY2IiKigrpptVmsyE3Nxe1tbXS3/rJJ5/Ilq3X67FhwwZs3rxZts38t6vJZMLevXsxMjIi27Z6vT4oUE1ISEBNTQ3a29uldY6MjOCxxx6TpovULiX7OtAvf/lLbNiwAUlJSfjwww/x4YcfYv78+bjhhhtw9uxZnD59GhcvXgQAnD17Fh988AE++ugjRdt/qlJSUvDwww9jbGwMvb29mD9/PtasWYNt27ZFnPfaa69FTU0NUlNT4Xa7cfnyZWRlZWHbtm247bbbZNNed911KCsrk4LbxYsXY/fu3SgtLUViYiLcbjc+/vhjXHvttbjrrruwZ88eadonn3wSlZWVSE1Nxeeffw63241Vq1YhNzc3ZLsSExNx33334frrr5c+e/rpp1FVVYXk5GR0dXXhww8/RHJyMiorK7Ft2zbcfffdMJvNuOmmm3D+/Hl88MEHGBwcxMKFCwFMvA/DWbJkCfr6+iY9vDvS8VpZWYna2lp4vV44nc6ga1WgnJwclJeXS+dTY2MjioqKwlbvLiwsxK5du2TnVn19Pb744gvFbRTLiXQ9AK4E5IHn3uLFixVV1rfZbKioqEBjY6PU1tbWVtk0FRUVACD93u12o6qqatJFy6JdnsViQUVFBZxOJ4qKiqSc+97eXuh0Or5BgK4q0x5wj46O4uzZs7jllltC/t5gMODAgQNoaWlBS0sLmpubZcH5zp070dDQgJ07d0rTNDQ0TLgMDlknoquF3W7HqlWr0NXVJesVisZLL70k/T9UXrjL5UJTUxPS0tKwYcMGAIDZbJbdDNvtdnR0dECn08kCNa/XKz0UcLlcaG1thVarRUdHh5TjZ7Va4Xa7I/aKjI2NoaGhQbrhDzVfaWkp3G63rG1msxlOp1PRtkhISMDBgwdlBZs2bNiAtLQ0NDU1SZ+bzWZ0dXXBaDSisLAQ6enpsmDE5XKhvLw8qPDT7t27pc/sdjsaGhpk21W03z/3NNR0gtPplO2n1tZWpKWloaCgAAAmbJfSfR1o6dKl0Gg0eP3111FSUoKSkhI88MADcLlc2L17N5588kl8/vnnAIB//OMfuPPOO/H4448r2v5TlZSUhKNHj+LWW2/FrbfeimPHjkGj0WDFihVYvXr1hPOmpKTA5XLBaDSiuLgYO3bswPDwMBYtWoQ77rhDNm1aWhpOnTqFe++9F0VFRfjWt76FFStWYHh4GDt27EBxcTFuu+02PP/88xgdHcWKFSvw/e9/H7fddhuMRiPmzZsHh8MBo9GIkpISbNu2DV6vN2S7UlNTMTQ0hM2bN2PVqlVITEzE7bffjsHBQdTU1KC0tBQlJSX4y1/+Ao1GA6PRiPz8fGi1WgwMDGDr1q248847sW7dOimHfqJ9GE56enqUeyNYpOM1Gl6vFzt37pTafPDgQZw7dy7s/Z9IwfEfEm+1WvHggw9G1UYl1wOTyQS9Xi+7XrlcLuzcuTPsfhZMJhPy8/PR2Ngoq83x4IMPyvKiu7q6ZNe55uZmJCQkSCMRohXN8vyD7cCHIv39/QCAzMzMSbWDaDaa9oAbAN544w2kpaUFXQQNBgPMZjO8Xi+Ki4tRXFyMo0ePYuPGjbKge9myZUhLS0NxcTH27dsHvV4v5YWHWobX64XZbGbQTURXjZKSEmRnZ0uBt9L3vI6MjODcuXPSzwUFBdDpdGhubpZN53a7MTo6iiVLlsg+9x9WWVRUFNSzEdgj1t/fL/U+RmtoaAhtbW2yzwYGBqR1ihzTUDntStc3OjoKt9st+8xgMMDtdgcVAfJf98DAAHJyciZ82BGqd9B/u06UI9vW1oahoSHZ99ro6ChOnDghm07c7C5atEhqY7h2RbuvBRFMl5aW4rnnnkNBQQFOnDgRtG+mw2effYbXX39d+vnkyZMYGxvDNddcI/Uwh+PxePD6669LAdH+/fvR1dUFjUaDxYsXy6YdGRnB/v37pX21YsUKaDQa/Otf/8L+/ful6X7/+9+jt7cXiYmJMBgMWL16NVJSUoLWdejQIZw+fTpku8bGxmC326UezlWrVkGn02HRokVoaGiQzr9NmzZh3rx5SExMxKVLlzA6Oor09HTU1dVJlaMPHz4MYPL7cCr1IpQcr9EIPJ9cLhdGRkaCHvoJ586dw8jICMrKysIOlVbSRiXXg7y8PIyMjARtT9GGieTl5WF0dFQ2dD+UwOtEpPM2EqXLu/nmm1FWVhYy2Pafj+hqMiMC7jfffBMAgob05ebmIjk5WTZMpqWlBR6PR9YjPjg4iPr6egBAR0cHPB6PdOHLzc3FggUL8PLLL0vTt7a2Ijk5OezwLCKiuaqkpASNjY3IyckJO7TS38jIiKxXa9GiRbJ8b/FP5FYKItcP+P8QRKW9yGrJzMxEQkLCpIJ5IfABRGFhIXQ6HXJycmTbQzxgECorK6UhrUryoCdqfyxN1C6l+zqQ1WpFZ2cnkpKSUFpain379uHVV1+dEQ+5x8bGcOHCBenny5cvK5734sWL+Oyzz2Sf+Xy+kNMODg6ipaVF+llUYz9//rxsOq/XKwVsycnJmD9/PjQaTch1jY+Ph1yXx+NBZ2en9LNYRn9/v1TB2//fkSNHsG/fPhw4cADDw8NYvnw5tm3bhrfffhu1tbUAZvY+VItIsXG73UH1LJRSej2YymiA9PT0oOvQTJGQkIDi4mIMDQ3h2Wefne7mEM0YM+a1YCdPnsTNN9+MkydPSp+JXCL/fLL29nZ4vV6kpaUpWu7ChQuRmpoKs9ksG3ozNjYWo5YTEc0uBw8ehNFonNTNc39/P7xeLxoaGsK+1iXckMe5SPSajYyMRHzFkPgeKisrw44dO/CHP/wBdXV1inJee3t7VesZCtcuJfs6lLa2NmzYsAEFBQXYuHEjiouLYTAYUFtbO6tf5zZv3jzMnz9f+lmr1Ur3KV9++aVs2suXL4ccGhyYA63VaqUOAv9gfMGCBUhOTpZNm5iYGLJdly9fDlo/AFy6dAk2my1s1fCnnnoKVqsVGzduRHl5OXJycvC9730Pn3zyCV555ZVJ7cPAQLK3t3fWdW6I81gMi3Y4HIpfH6b0enDvvfdCp9NNqn2ip3yq+vv7Y349GR0dhd1ux/r167Fr1y7U1tYGpSGo8eCQaKabET3cAKQnwdddd5302eDgIADIhmoZDAZotVoMDQ0pWu7g4CA8Hg8sFos0pLy4uBilpaXYu3dvDP8CIqLZZTLDP8Vw6mhf61JYWIjs7Oyo1xdLoYZdC1PpuRsYGIBer1dcjEjkXAPyPMZQy1i7di0SEhLQ398vDTcN1daCggKkpaVN6ZVMge2azL5evXo1qqqqoNVq0dbWhp/+9KfSKLZQvXr+AexMl5aWJqtI/vDDD2PZsmW4dOkS/vOf/0w47/vvv4/x8XF885vflArPiWUsWbIEFy9exMmTJ/Hxxx/D5/Ph+uuvx1133SVNt2nTJtx0002K2nnmzBlcvHgRGRkZsnVptVrU1dXhhz/8IcrLy7Fu3Tp4vV68+OKLsFgsGBwcxLXXXotvfOMbUe1DIdz1JCEhIShfdzb0lIvaDuGGoIej5HrQ29sbMjddnMcTCTfvZCQkJAQN18/Ly8OCBQsmvcz+/n7U1dUFFXz0Fyo1h2gumzEBd3t7O4aGhqDX66XPOjo6cOHCBRiNRumz+++/H8nJyXjjjTcULbejowNjY2O47777Yt5mIqKZTOTRBd74bd++HTqdDq+++iqA6IJoUfwssNpvYWEhmpqaUFhYKPXE+t9UP/LII9NelVYUOArMWbZYLBO+FioSsR39KxWL5Ypt1NTUJNsPYlv733RqtVoplxaA9Ho0kQ8qCpZlZmbKcvDLyspQVVUFt9sd9YiCidqlZF8H0mq1eOCBB9Da2orDhw/D4XDgjjvuwPj4uJSD/N5772F4eBgAcNddd6GlpQXPP/98VO2eDmNjY7jzzjtx7NgxtLS04MEHH0RiYiK6urrQ1NQ04bwHDhzAJ598gpSUFNTV1aGlpQXHjh3Dj370IyQkJOD48ePYt28fjhw5go6ODmg0Gtxzzz1wOp1oaWnB448/jkuXLilqp81mw4kTJzBv3jzpGnD48GG0trbi/vvvR0pKCvLy8vC73/0OLS0tOHz4MCwWCxYuXIjh4WH09fVF3Ieh9Pb2BgWa77zzDkZHR1FeXi4dL1M939RSVlYm24/iIWFgWk0kSq4HBw8elN7IILZXYWEhysvLIwa7ZrMZbrcb1dXVslzzF154IeJruvyJB5Dr16+Xve4xPz9f8TLC8S/kGBh05+Xlwefzzcgh8URqmTEBN3CleJr/09P29nb88Y9/RHp6ulRhfOXKlXjmmWekp62RtLe3w2KxQKvVSstgpXIiulqIXgb/XEKdToeHHnpIGsrsH1gpyVsUeb/iHco9PT3Yv38/uru74XK5pJutzMxM6fcApj2HG7hys+qfs9zT0wODwYDGxsZJL9Nut+Ohhx4CcKWQlliu0WjEwYMHAVypcO2/H3Jzc4OGk3d1dWFgYECapqamBsePH5cNTbVarTCbzdDr9bKc6o6ODsXDXv1FalekfR3o3LlzcLvdSEpKwsqVK7F8+XJ88cUXsNvt0sMA0ava39+PhIQELF26dFb0dH/++ec4cOAAUlNTkZWVhcuXL+Of//wnfv7zn+PMmTMTzutyufCTn/wEx44dw+joKLKysvC1r30N58+fx0svvYQtW7bA6/XC6/Vix44dePvttzE6OoqMjAzceOONcDgceP/99xW10+v14rHHHpOKri1atAgrVqzAggUL4HQ6cezYMZw5cwafffYZli5dipUrV+K6667D6dOn8atf/QqvvfZaxH0Yiiji5V+12j/wEufGVM83Na1cuVJ2nCtJFQmk5HrgcrlQW1uLkZER6fzbu3cvjhw5oigQLSkpwfHjx2X1FW655ZaoChOKqugApDaUl5fDZrPFJO3SarViz549SEtLw969e2EymaSHGD09PVE9xCCa7TRZWVmhq3DEUFZWltqriLlIX55ERDR3WCwWrF+/XnFOdayJHuvJBM2kLpPJhOrqagwNDYXMSY0HrVaLV199FTfddBOOHj0qBXQzDY9jmojJZEJVVVXUdSGIZrsZ1cNNREQ0HQwGw4yt/Ev04x//GMuWLYPP55tSnr7ampubodfroxraTFeP0tJS9PX1Mdimq05cqpSPj49Do9HEY1UxEe7VG0RENLvZbDb09vbKhsbabDZkZmZiz549HOZI0+6ll16CwWBAf38/vvzyS6Snp0vVzZ1OJ/70pz9NcwvDs1qtyMvLk2oRMLAiweFwQK/Xo66ubrqbQhR3cQm4fT4fkpKS4rGqmAj3Xk0iIprdent7UVFRgYqKCukzr9cLs9k8LUPJiQINDAxAo9Fg+fLl0Gg0+PLLLzE0NITW1lY8/fTTIV83NpPM5le/kXqYZkBXs7jkcGu1Wtx4441qryZmPv300xn/hUZEREREREQzW1xyuL1eLzweTzxWNWUej4fBNhEREREREU1ZXIaUA8D58+fh8/mQkpKCxMTEGZXTPT4+Dp/Ph+HhYQbbREREREREFBNxC7gBSO+YJCIiIiIiIprr+FowIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSAQNuIiIiIiIiIhUw4CYiIiIiIiJSwf8Ad7D2mLUXchYAAAAASUVORK5CYII=" + } + }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![image.png](attachment:image.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "def chat(message, history):\n", + " messages = [{\"role\": \"system\", \"content\": system_prompt}] + history + [{\"role\": \"user\", \"content\": message}]\n", + " done = False\n", + " while not done:\n", + "\n", + " # This is the call to the LLM - see that we pass in the tools json\n", + "\n", + " response = openai.chat.completions.create(model=\"gpt-4o-mini\", messages=messages, tools=tools)\n", + "\n", + " finish_reason = response.choices[0].finish_reason\n", + " \n", + " # If the LLM wants to call a tool, we do that!\n", + " \n", + " if finish_reason==\"tool_calls\":\n", + " message = response.choices[0].message\n", + " tool_calls = message.tool_calls\n", + " results = handle_tool_calls(tool_calls)\n", + " print(f\"Message - \\n{message}\")\n", + " print(\"--------\")\n", + " print(f\"Result - \\n{results}\")\n", + " messages.append(message)\n", + " messages.extend(results)\n", + " else:\n", + " done = True\n", + " return response.choices[0].message.content" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "* Running on local URL: http://127.0.0.1:7863\n", + "* To create a public link, set `share=True` in `launch()`.\n" + ] + }, + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tool called: record_user_details\n", + "Push: Recording interest from Arshad with email arshadhr@bigvision.ai and notes Interested in connecting regarding interview scheduling for Computer Vision Role.\n", + "Message - \n", + "ChatCompletionMessage(content=None, refusal=None, role='assistant', annotations=[], audio=None, function_call=None, tool_calls=[ChatCompletionMessageToolCall(id='call_bjWiqB1GILfev5SCVGTbc6TO', function=Function(arguments='{\"email\":\"arshadhr@bigvision.ai\",\"name\":\"Arshad\",\"notes\":\"Interested in connecting regarding interview scheduling for Computer Vision Role.\"}', name='record_user_details'), type='function')])\n", + "--------\n", + "Result - \n", + "[{'role': 'tool', 'content': '{\"recorded\": \"ok\"}', 'tool_call_id': 'call_bjWiqB1GILfev5SCVGTbc6TO'}]\n", + "Tool called: record_unknown_question\n", + "Push: Recording Which sports do you play when you are bored? asked that I couldn't answer\n", + "Message - \n", + "ChatCompletionMessage(content=None, refusal=None, role='assistant', annotations=[], audio=None, function_call=None, tool_calls=[ChatCompletionMessageToolCall(id='call_A8u5zp5ieUKufi9hw99HWanZ', function=Function(arguments='{\"question\":\"Which sports do you play when you are bored?\"}', name='record_unknown_question'), type='function')])\n", + "--------\n", + "Result - \n", + "[{'role': 'tool', 'content': '{\"recorded\": \"ok\"}', 'tool_call_id': 'call_A8u5zp5ieUKufi9hw99HWanZ'}]\n" + ] + } + ], + "source": [ + "gr.ChatInterface(chat, type=\"messages\").launch()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## And now for deployment\n", + "\n", + "This code is in `app.py`\n", + "\n", + "We will deploy to HuggingFace Spaces. Thank you student Robert M for improving these instructions.\n", + "\n", + "Before you start: remember to update the files in the \"me\" directory - your LinkedIn profile and summary.txt - so that it talks about you! \n", + "Also check that there's no README file within the 1_foundations directory. If there is one, please delete it. The deploy process creates a new README file in this directory for you.\n", + "\n", + "1. Visit https://huggingface.co and set up an account \n", + "2. From the Avatar menu on the top right, choose Access Tokens. Choose \"Create New Token\". Give it WRITE permissions.\n", + "3. Take this token and add it to your .env file: `HF_TOKEN=hf_xxx` and see note below if this token doesn't seem to get picked up during deployment \n", + "4. From the 1_foundations folder, enter: `uv run gradio deploy` and if for some reason this still wants you to enter your HF token, then interrupt it with ctrl+c and run this instead: `uv run dotenv -f ../.env run -- uv run gradio deploy` which forces your keys to all be set as environment variables \n", + "5. Follow its instructions: name it \"career_conversation\", specify app.py, choose cpu-basic as the hardware, say Yes to needing to supply secrets, provide your openai api key, your pushover user and token, and say \"no\" to github actions. \n", + "\n", + "#### Extra note about the HuggingFace token\n", + "\n", + "A couple of students have mentioned the HuggingFace doesn't detect their token, even though it's in the .env file. Here are things to try: \n", + "1. Restart Cursor \n", + "2. Rerun load_dotenv(override=True) and use a new terminal (the + button on the top right of the Terminal) \n", + "3. In the Terminal, run this before the gradio deploy: `$env:HF_TOKEN = \"hf_XXXX\"` \n", + "Thank you James and Martins for these tips. \n", + "\n", + "#### More about these secrets:\n", + "\n", + "If you're confused by what's going on with these secrets: it just wants you to enter the key name and value for each of your secrets -- so you would enter: \n", + "`OPENAI_API_KEY` \n", + "Followed by: \n", + "`sk-proj-...` \n", + "\n", + "And if you don't want to set secrets this way, or something goes wrong with it, it's no problem - you can change your secrets later: \n", + "1. Log in to HuggingFace website \n", + "2. Go to your profile screen via the Avatar menu on the top right \n", + "3. Select the Space you deployed \n", + "4. Click on the Settings wheel on the top right \n", + "5. You can scroll down to change your secrets, delete the space, etc.\n", + "\n", + "#### And now you should be deployed!\n", + "\n", + "Here is mine: https://huggingface.co/spaces/ed-donner/Career_Conversation\n", + "\n", + "I just got a push notification that a student asked me how they can become President of their country 😂😂\n", + "\n", + "For more information on deployment:\n", + "\n", + "https://www.gradio.app/guides/sharing-your-app#hosting-on-hf-spaces\n", + "\n", + "To delete your Space in the future: \n", + "1. Log in to HuggingFace\n", + "2. From the Avatar menu, select your profile\n", + "3. Click on the Space itself\n", + "4. Click the settings wheel on the top right\n", + "5. Scroll to the Delete section at the bottom\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " \n", + " \n", + "

Exercise

\n", + " • First and foremost, deploy this for yourself! It's a real, valuable tool - the future resume..
\n", + " • Next, improve the resources - add better context about yourself. If you know RAG, then add a knowledge base about you.
\n", + " • Add in more tools! You could have a SQL database with common Q&A that the LLM could read and write from?
\n", + " • Bring in the Evaluator from the last lab, and add other Agentic patterns.\n", + "
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " \n", + " \n", + "

Commercial implications

\n", + " Aside from the obvious (your career alter-ego) this has business applications in any situation where you need an AI assistant with domain expertise and an ability to interact with the real world.\n", + " \n", + "
" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}