From a5104021236c0d316765e67ab9dce4b4613003a3 Mon Sep 17 00:00:00 2001 From: ShahanaBahlul Date: Sun, 28 Sep 2025 18:12:37 +0200 Subject: [PATCH] Added week2 exercise and tool project --- .../pptx_summarizer/Leonardo_da_Vinci.pptx | Bin 0 -> 31024 bytes .../pptx_summarizer/Malala_Yousafzai.pptx | Bin 0 -> 31049 bytes .../pptx_summarizer/Marie_Curie.pptx | Bin 0 -> 31018 bytes .../pptx_summarizer/Nelson_Mandela.pptx | Bin 0 -> 31045 bytes .../Shakespeare_Highlights.pptx | Bin 0 -> 31408 bytes .../pptx_summarizer/pptx summarizer.ipynb | 378 ++++++++++++++++++ .../week2 EXERCISE.ipynb | 304 ++++++++++++++ 7 files changed, 682 insertions(+) create mode 100644 week2/community-contributions/pptx_summarizer/Leonardo_da_Vinci.pptx create mode 100644 week2/community-contributions/pptx_summarizer/Malala_Yousafzai.pptx create mode 100644 week2/community-contributions/pptx_summarizer/Marie_Curie.pptx create mode 100644 week2/community-contributions/pptx_summarizer/Nelson_Mandela.pptx create mode 100644 week2/community-contributions/pptx_summarizer/Shakespeare_Highlights.pptx create mode 100644 week2/community-contributions/pptx_summarizer/pptx summarizer.ipynb create mode 100644 week2/community-contributions/week2 EXERCISE.ipynb diff --git a/week2/community-contributions/pptx_summarizer/Leonardo_da_Vinci.pptx b/week2/community-contributions/pptx_summarizer/Leonardo_da_Vinci.pptx new file mode 100644 index 0000000000000000000000000000000000000000..0d19192cafe2460006c03f9ffd0f0e00f16343ff GIT binary patch literal 31024 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 z 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 z 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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/week2/community-contributions/pptx_summarizer/Shakespeare_Highlights.pptx b/week2/community-contributions/pptx_summarizer/Shakespeare_Highlights.pptx new file mode 100644 index 0000000000000000000000000000000000000000..29c7fdbe8d713a6cc632c61574533bf93c5d1a49 GIT binary patch literal 31408 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 literal 0 HcmV?d00001 diff --git a/week2/community-contributions/pptx_summarizer/pptx summarizer.ipynb b/week2/community-contributions/pptx_summarizer/pptx summarizer.ipynb new file mode 100644 index 0000000..476cb76 --- /dev/null +++ b/week2/community-contributions/pptx_summarizer/pptx summarizer.ipynb @@ -0,0 +1,378 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ddfa9ae6-69fe-444a-b994-8c4c5970a7ec", + "metadata": {}, + "source": [ + "# Project - PPTX summarizer AI Assistant\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "8b50bbe2-c0b1-49c3-9a5c-1ba7efa2bcb4", + "metadata": {}, + "outputs": [], + "source": [ + "# imports\n", + "\n", + "import os\n", + "import json\n", + "from dotenv import load_dotenv\n", + "from openai import OpenAI\n", + "import gradio as gr\n", + "from IPython.display import Markdown, display, update_display" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "747e8786-9da8-4342-b6c9-f5f69c2e22ae", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "OpenAI API Key exists and begins sk-proj-\n" + ] + } + ], + "source": [ + "# Initialization\n", + "\n", + "load_dotenv(override=True)\n", + "\n", + "openai_api_key = os.getenv('OPENAI_API_KEY')\n", + "if openai_api_key:\n", + " print(f\"OpenAI API Key exists and begins {openai_api_key[:8]}\")\n", + "else:\n", + " print(\"OpenAI API Key not set\")\n", + " \n", + "MODEL = \"gpt-4o-mini\"\n", + "openai = OpenAI()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "bac7ac31-6ece-4aa1-87eb-329b82f0f45a", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "import os\n", + "from pptx import Presentation\n", + "import openai # adapt if you use a different client\n", + "\n", + "class PptxSummary:\n", + " def __init__(self, name: str):\n", + " self.name = name\n", + "\n", + " def summary(self):\n", + " # Load an existing PowerPoint\n", + " prs = Presentation(self.name)\n", + " newtext = \"\"\n", + "\n", + " # print(prs)\n", + " # Loop over all slides\n", + " for i, slide in enumerate(prs.slides, start=1):\n", + " # print(f\"\\n--- Slide {i} ---\")\n", + " newtext += f\"\\n\\n--- Slide {i} ---\"\n", + " \n", + " # Loop over shapes (text boxes, titles, placeholders, etc.)\n", + " for shape in slide.shapes:\n", + " if shape.has_text_frame: # Only shapes that can contain text\n", + " for paragraph in shape.text_frame.paragraphs:\n", + " # Collect text from each run in the paragraph\n", + " text = \"\".join(run.text for run in paragraph.runs)\n", + " # print(text)\n", + " newtext+= \"\\n\"\n", + " newtext += text\n", + " # print(newtext)\n", + " return newtext\n", + "\n", + " \n", + "system_message = \"You are a helpful assistant for a company and you can summarize the given topic based on the given pptx name. \"\n", + "system_message += \"Give short, courteous answers, no more than 10 sentence. \"\n", + "system_message += \"Always be accurate. If the presentation .pptx file does not exist, say so. Respond in markdown.\"\n", + "\n", + "def user_message(path):\n", + " ppt = PptxSummary(path)\n", + " summarization_message = ppt.summary()\n", + " message = \"You need to summarize the a pptx file.\"\n", + " message += f\"The context of that pptx file is here: {summarization_message}\"\n", + " message += \"Give the concise information in small paragraphs. \"\n", + " return message\n", + "\n", + "def pptx_summary(path):\n", + " if os.path.exists(path):\n", + " result = \"The file does not exist\"\n", + " response = openai.chat.completions.create(\n", + " model=MODEL,\n", + " messages=[\n", + " {\"role\": \"system\", \"content\": system_message},\n", + " {\"role\": \"user\", \"content\": user_message(path)}\n", + " ],\n", + " )\n", + " result = response.choices[0].message.content\n", + " return result\n", + " else:\n", + " return \"The file does not exist\"\n", + "\n", + "\n", + " \n", + "\n", + "# print(\"Current working directory:\", os.getcwd())\n", + "# print(\"Files here:\", os.listdir())\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "e4747d6b-d224-4ab3-b9bb-81c423497c81", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# Summary of \"Marie Curie: Highlights of a Notable Life\"\n", + "\n", + "The presentation details the life and achievements of Marie Curie, born in Warsaw, Poland in 1867. She pursued her studies in physics and mathematics in Paris, setting the stage for her groundbreaking scientific career.\n", + "\n", + "Marie Curie made history as the first woman to win a Nobel Prize and is renowned for her discovery of radioactivity, alongside her husband, Pierre Curie. Her noteworthy accomplishments include winning Nobel Prizes in both Physics and Chemistry, highlighting her significant contributions to science.\n", + "\n", + "Curie's legacy extends beyond her scientific achievements; she shattered barriers for women in science and her research ultimately aided in the development of medical X-rays. She is celebrated as one of the most influential scientists of all time, leaving an enduring impact on both science and society.\n" + ] + } + ], + "source": [ + "print(pptx_summary(\"Marie_Curie.pptx\"))" + ] + }, + { + "cell_type": "markdown", + "id": "5bd2b368-960c-40b4-adf0-db40fe713cbc", + "metadata": {}, + "source": [ + "# My tools" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "8f7c0fda-704b-4e3d-bc69-89986cf5e7a9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The file does not exist\n" + ] + } + ], + "source": [ + "print(pptx_summary(\"bts.pptx\"))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c3f8e54f-af95-4bf6-a202-89e7a3ffdec5", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "36bedabf-a0a7-4985-ad8e-07ed6a55a3a4", + "metadata": {}, + "source": [ + "## Tools\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4afceded-7178-4c05-8fa6-9f2085e6a344", + "metadata": {}, + "outputs": [], + "source": [ + "# There's a particular dictionary structure that's required to describe our function:\n", + "\n", + "summary_function = {\n", + " \"name\": \"pptx_summary\",\n", + " \"description\": \"Get the summary for the given pptx file, you need to call this function, if user asks for a pptx file, if it is outside of the pptx file, tell that you do not know.\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"path\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The name of the presentation\",\n", + " },\n", + " },\n", + " \"required\": [\"path\"],\n", + " \"additionalProperties\": False\n", + " }\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "bdca8679-935f-4e7f-97e6-e71a4d4f228c", + "metadata": {}, + "outputs": [], + "source": [ + "# And this is included in a list of tools:\n", + "\n", + "tools = [{\"type\": \"function\", \"function\": summary_function}]" + ] + }, + { + "cell_type": "markdown", + "id": "c3d3554f-b4e3-4ce7-af6f-68faa6dd2340", + "metadata": {}, + "source": [ + "## Getting OpenAI to use our Tool\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "ce9b0744-9c78-408d-b9df-9f6fd9ed78cf", + "metadata": {}, + "outputs": [], + "source": [ + "def chat(message, history):\n", + " messages = [{\"role\": \"system\", \"content\": system_message}] + history + [{\"role\": \"user\", \"content\": message}]\n", + " response = openai.chat.completions.create(model=MODEL, messages=messages, tools=tools)\n", + "\n", + " if response.choices[0].finish_reason==\"tool_calls\":\n", + " message = response.choices[0].message\n", + " print(f\"message: {message}\")\n", + " response, city = handle_tool_call(message)\n", + " print(f\"city: {city}, response: {response}\")\n", + " messages.append(message)\n", + " messages.append(response)\n", + " response = openai.chat.completions.create(model=MODEL, messages=messages)\n", + " print(f\"response: {response}\")\n", + " \n", + " return response.choices[0].message.content" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "b0992986-ea09-4912-a076-8e5603ee631f", + "metadata": {}, + "outputs": [], + "source": [ + "# We have to write that function handle_tool_call:\n", + "\n", + "def handle_tool_call(message):\n", + " tool_call = message.tool_calls[0]\n", + " print(f\"tool_call: {tool_call}\")\n", + " arguments = json.loads(tool_call.function.arguments)\n", + " print(f\"arguments: {arguments}\")\n", + " path = arguments.get('path')\n", + " print(f\"path: {path}\")\n", + " summary = pptx_summary(path)\n", + " # print(f\"price: {price}\")\n", + " response = {\n", + " \"role\": \"tool\",\n", + " \"content\": json.dumps({\"path\": path,\"summary\": summary}),\n", + " \"tool_call_id\": tool_call.id\n", + " }\n", + " print(f\"response: {response}\")\n", + " return response, path" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "f4be8a71-b19e-4c2f-80df-f59ff2661f14", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "* Running on local URL: http://127.0.0.1:7860\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": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "message: ChatCompletionMessage(content=None, refusal=None, role='assistant', annotations=[], audio=None, function_call=None, tool_calls=[ChatCompletionMessageFunctionToolCall(id='call_qgCGcnIRiknlEaT6eGFlPyN4', function=Function(arguments='{\"path\":\"nelson_mandela.pptx\"}', name='pptx_summary'), type='function')])\n", + "tool_call: ChatCompletionMessageFunctionToolCall(id='call_qgCGcnIRiknlEaT6eGFlPyN4', function=Function(arguments='{\"path\":\"nelson_mandela.pptx\"}', name='pptx_summary'), type='function')\n", + "arguments: {'path': 'nelson_mandela.pptx'}\n", + "path: nelson_mandela.pptx\n", + "response: {'role': 'tool', 'content': '{\"path\": \"nelson_mandela.pptx\", \"summary\": \"# Summary of \\\\\"Nelson Mandela: Highlights of a Notable Life\\\\\" \\\\n\\\\nThis presentation covers the life and impact of Nelson Mandela. Born in 1918 in South Africa, Mandela became politically active in the fight against apartheid after studying law. \\\\n\\\\nHe emerged as a prominent leader in the anti-apartheid movement but faced imprisonment for 27 years due to his activism. In 1994, he made history by becoming South Africa\\'s first Black president. \\\\n\\\\nMandela\\'s legacy is profound; he is celebrated as a symbol of peace, reconciliation, and justice. His efforts earned him the Nobel Peace Prize and he continues to inspire human rights movements around the globe.\"}', 'tool_call_id': 'call_qgCGcnIRiknlEaT6eGFlPyN4'}\n", + "city: nelson_mandela.pptx, response: {'role': 'tool', 'content': '{\"path\": \"nelson_mandela.pptx\", \"summary\": \"# Summary of \\\\\"Nelson Mandela: Highlights of a Notable Life\\\\\" \\\\n\\\\nThis presentation covers the life and impact of Nelson Mandela. Born in 1918 in South Africa, Mandela became politically active in the fight against apartheid after studying law. \\\\n\\\\nHe emerged as a prominent leader in the anti-apartheid movement but faced imprisonment for 27 years due to his activism. In 1994, he made history by becoming South Africa\\'s first Black president. \\\\n\\\\nMandela\\'s legacy is profound; he is celebrated as a symbol of peace, reconciliation, and justice. His efforts earned him the Nobel Peace Prize and he continues to inspire human rights movements around the globe.\"}', 'tool_call_id': 'call_qgCGcnIRiknlEaT6eGFlPyN4'}\n", + "response: ChatCompletion(id='chatcmpl-CKna164Iq9BrGm35e19Rqm8K6Yr9N', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='# Summary of \"Nelson Mandela: Highlights of a Notable Life\"\\n\\nThis presentation covers the life and impact of Nelson Mandela. Born in 1918 in South Africa, Mandela became politically active in the fight against apartheid after studying law. \\n\\nHe emerged as a prominent leader in the anti-apartheid movement but faced imprisonment for 27 years due to his activism. In 1994, he made history by becoming South Africa\\'s first Black president. \\n\\nMandela\\'s legacy is profound; he is celebrated as a symbol of peace, reconciliation, and justice. His efforts earned him the Nobel Peace Prize, and he continues to inspire human rights movements around the globe.', refusal=None, role='assistant', annotations=[], audio=None, function_call=None, tool_calls=None))], created=1759073181, model='gpt-4o-mini-2024-07-18', object='chat.completion', service_tier='default', system_fingerprint='fp_560af6e559', usage=CompletionUsage(completion_tokens=134, prompt_tokens=269, total_tokens=403, 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": [ + "gr.ChatInterface(fn=chat, type=\"messages\").launch()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d551ce21-c66c-4f56-88ad-8212f16437ab", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.11.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/week2/community-contributions/week2 EXERCISE.ipynb b/week2/community-contributions/week2 EXERCISE.ipynb new file mode 100644 index 0000000..4240925 --- /dev/null +++ b/week2/community-contributions/week2 EXERCISE.ipynb @@ -0,0 +1,304 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d006b2ea-9dfe-49c7-88a9-a5a0775185fd", + "metadata": {}, + "source": [ + "# Additional End of week Exercise - week 2\n", + "\n", + "Now use everything you've learned from Week 2 to build a full prototype for the technical question/answerer you built in Week 1 Exercise.\n", + "\n", + "This should include a Gradio UI, streaming, use of the system prompt to add expertise, and the ability to switch between models. Bonus points if you can demonstrate use of a tool!\n", + "\n", + "If you feel bold, see if you can add audio input so you can talk to it, and have it respond with audio. ChatGPT or Claude can help you, or email me if you have questions.\n", + "\n", + "I will publish a full solution here soon - unless someone beats me to it...\n", + "\n", + "There are so many commercial applications for this, from a language tutor, to a company onboarding solution, to a companion AI to a course (like this one!) I can't wait to see your results." + ] + }, + { + "cell_type": "markdown", + "id": "b6197b62-57fb-4569-a82d-bd4a15f4471b", + "metadata": {}, + "source": [ + "# Imports" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b538792e-2414-4922-bb51-95c61f6c2128", + "metadata": {}, + "outputs": [], + "source": [ + "# imports\n", + "\n", + "import os\n", + "import requests\n", + "import json\n", + "from typing import List\n", + "from dotenv import load_dotenv\n", + "from IPython.display import Markdown, display, update_display, Audio\n", + "from openai import OpenAI\n", + "import anthropic\n", + "import base64\n", + "from io import BytesIO\n", + "from PIL import Image\n", + "import gradio as gr" + ] + }, + { + "cell_type": "markdown", + "id": "95afec00-4fe5-4cc9-ae0a-37c6ea4934d6", + "metadata": {}, + "source": [ + "# OpenAI API key" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6c23ef55-daad-4ecf-893e-b83e507f2732", + "metadata": {}, + "outputs": [], + "source": [ + "# Load environment variables in a file called .env\n", + "# Print the key prefixes to help with any debugging\n", + "\n", + "load_dotenv(override=True)\n", + "openai_api_key = os.getenv('OPENAI_API_KEY')\n", + "anthropic_api_key = os.getenv('ANTHROPIC_API_KEY')\n", + "\n", + "\n", + "if openai_api_key:\n", + " print(f\"OpenAI API Key exists and begins {openai_api_key[:8]}\")\n", + "else:\n", + " print(\"OpenAI API Key not set\")\n", + " \n", + "if anthropic_api_key:\n", + " print(f\"Anthropic API Key exists and begins {anthropic_api_key[:7]}\")\n", + "else:\n", + " print(\"Anthropic API Key not set\")\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e260a7ea-fe79-4222-b6d7-7982f55a52d7", + "metadata": {}, + "outputs": [], + "source": [ + "openai = OpenAI()\n", + "\n", + "claude = anthropic.Anthropic()" + ] + }, + { + "cell_type": "markdown", + "id": "270e937e-aef9-4032-b51e-ffa0fec184a1", + "metadata": {}, + "source": [ + "# SYSTEM prompt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5639ebd6-d197-43c3-a1c4-4308b117e5ef", + "metadata": {}, + "outputs": [], + "source": [ + "# set up environment\n", + "\n", + "def system_prompt(selected_model):\n", + " return f\"\"\"\n", + " You are a tech expert and know every coding language, and can give \n", + " nice, detailed and simple explanations for the given questions.\n", + " Introduce yourself by saying which model you are every time you answer. For example, this is {selected_model}. \n", + " \n", + " \"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d1d960d3-db2e-4f7c-ab7f-d5816f3bd994", + "metadata": {}, + "outputs": [], + "source": [ + "def talker(message):\n", + " response = openai.audio.speech.create(\n", + " model=\"tts-1\",\n", + " voice=\"onyx\",\n", + " input=message)\n", + "\n", + " audio_stream = BytesIO(response.content)\n", + " output_filename = \"output_audio.mp3\"\n", + " with open(output_filename, \"wb\") as f:\n", + " f.write(audio_stream.read())\n", + "\n", + " display(Audio(output_filename, autoplay=True))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f39f1bc7-87c2-4b44-8ba7-c320acb33361", + "metadata": {}, + "outputs": [], + "source": [ + "def listener(audio_file):\n", + " with open(audio_file, \"rb\") as audio:\n", + " transcript = openai.audio.transcriptions.create(\n", + " model=\"whisper-1\",\n", + " file=audio\n", + " )\n", + " return transcript.text" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f88078a9-49ac-48b1-9f07-5b3977e88a52", + "metadata": {}, + "outputs": [], + "source": [ + "def chat(cleared_entry, history, selected_model):\n", + " messages = [{\"role\": \"system\", \"content\": system_prompt(selected_model)}] + history\n", + "\n", + " print(messages)\n", + " \n", + " if selected_model == \"GPT-4o-mini\":\n", + " stream = openai.chat.completions.create(model=\"gpt-4o-mini\", messages=messages, stream=True)\n", + " response = \"\"\n", + " \n", + " for chunk in stream:\n", + " try:\n", + " response += chunk.choices[0].delta.content or ''\n", + " \n", + " updated_history = history + [{\"role\": \"assistant\", \"content\": response}]\n", + " # talker(response)\n", + " yield updated_history, None \n", + " except Exception as e:\n", + " print(f\"Streaming error: {e}\")\n", + " yield \"Sorry, there was an error processing your request.\"\n", + " # talker(response)\n", + " elif selected_model == \"Claude-sonnet-4\":\n", + " claude_messages = [{\"role\": msg[\"role\"], \"content\": msg[\"content\"]} for msg in history]\n", + " print(claude_messages)\n", + " result = claude.messages.stream(\n", + " model=\"claude-sonnet-4-20250514\",\n", + " max_tokens=200,\n", + " temperature=0.7,\n", + " system=system_prompt(selected_model), \n", + " messages=claude_messages, \n", + " )\n", + " \n", + " response = \"\"\n", + " with result as stream:\n", + " for text in stream.text_stream:\n", + " response += text\n", + " \n", + " updated_history = history + [{\"role\": \"assistant\", \"content\": response}]\n", + " \n", + " yield updated_history, None \n", + " # talker(response)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d1863d62-a2e8-454b-9296-710c4e5f9396", + "metadata": {}, + "outputs": [], + "source": [ + "with gr.Blocks() as ui:\n", + "\n", + " gr.Markdown(\"## AI Chat Assistant\")\n", + " gr.Markdown(\"**Select your preferred AI model:**\")\n", + " \n", + " model_dropdown = gr.Dropdown(\n", + " choices=[\"GPT-4o-mini\", \"Claude-sonnet-4\"], \n", + " value=\"GPT-4o-mini\", # default selection\n", + " label=\"Choose Model\"\n", + " )\n", + "\n", + " \n", + " with gr.Row():\n", + " chatbot = gr.Chatbot(height=200, type=\"messages\")\n", + " image_output = gr.Image(height=200)\n", + " with gr.Row():\n", + " entry = gr.Textbox(label=\"Chat with our AI Assistant:\")\n", + " with gr.Row():\n", + " # Audio input for voice messages\n", + " audio_input = gr.Audio(\n", + " sources=[\"microphone\", \"upload\"], \n", + " type=\"filepath\", \n", + " label=\"🎙️ Voice Message\"\n", + " )\n", + " with gr.Row():\n", + " voice_submit = gr.Button(\"Send Voice Message\", variant=\"secondary\")\n", + " clear = gr.Button(\"Clear\")\n", + "\n", + "\n", + " def do_entry(message, history):\n", + " history += [{\"role\":\"user\", \"content\":message}]\n", + " return \"\", history\n", + "\n", + " def process_voice_input(audio_file):\n", + " \"\"\"Convert voice to text and put it in the text box\"\"\"\n", + " if audio_file is not None:\n", + " transcribed_text = listener(audio_file)\n", + " if transcribed_text and not transcribed_text.startswith(\"Error\"):\n", + " return transcribed_text\n", + " return \"\"\n", + "\n", + " entry.submit(do_entry, inputs=[entry, chatbot], outputs=[entry, chatbot]).then(\n", + " chat, inputs=[entry,chatbot, model_dropdown], outputs=[chatbot, image_output]\n", + " )\n", + "\n", + " voice_submit.click(\n", + " process_voice_input,\n", + " inputs=[audio_input],\n", + " outputs=[entry]\n", + " )\n", + " \n", + " clear.click(lambda: None, inputs=None, outputs=chatbot, queue=False)\n", + "\n", + "ui.launch(inbrowser=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "46085f59-8945-4a64-9db1-d10cd44284db", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.11.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}