{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\knobb\\OneDrive\\Documents\\ING.SISTEMAS\\SEMESTRE 8\\OPTATIVA II\\API's\\.venv\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n" ] } ], "source": [ "\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\knobb\\OneDrive\\Documents\\ING.SISTEMAS\\SEMESTRE 8\\OPTATIVA II\\API's\\.venv\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Running on local URL: http://127.0.0.1:7860\n", "\n", "Could not create share link. Please check your internet connection or our status page: https://status.gradio.app.\n" ] }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import gradio as gr\n", "from openai import OpenAI\n", "client = OpenAI(api_key='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')\n", "questions = \"\"\"\n", " 1. Cuéntame sobre ti.,\n", " 2. ¿Cómo conociste y qué sabes sobre nuestra empresa?,\n", " 3. ¿Qué te motivó a postularte para realizar tus practicas en nuestra empresa?,\n", " 4. ¿Qué habilidades o conocimientos consideras que puedes aportar a nuestro equipo?,\n", " 5. ¿Cuáles son tus principales fortalezas?,\n", " 6. ¿Cuáles son tus principales debilidades?,\n", " 7. ¿Puedes hablarme sobre un proyecto académico o experiencia laboral relevante que hayas tenido?,\n", " 8. ¿Cómo te enfrentas a los desafíos o situaciones difíciles?,\n", " 9. ¿Qué esperas lograr durante tus prácticas profesionales?,\n", " 10. ¿Cómo te defines en términos de trabajo en equipo y colaboración?,\n", " 11. ¿Cómo manejas el trabajo bajo presión o los plazos ajustados?,\n", " 12. ¿Has tenido experiencia liderando equipos o proyectos?,\n", " 13. ¿Cómo manejas los conflictos en el trabajo?,\n", " 14. ¿Qué te gustaría aprender o desarrollar durante tus prácticas con nosotros?,\n", " 15. ¿Dónde te ves profesionalmente en los próximos 5 años?,\n", " 16. ¿Cómo buscas seguir desarrollándote y mejorando en tu carrera?,\n", " 17. ¿Cómo te mantienes actualizado en tu campo de estudio o industria?,\n", " 18. ¿Cómo te adaptas a nuevos entornos o situaciones desconocidas?,\n", " 19. ¿Qué te diferencia de otros candidatos que están aplicando para estas prácticas?\n", " \"\"\" \n", " \n", " \n", "def get_completion_from_messages(messages, temperature=0, tokens=70 ,model=\"gpt-3.5-turbo\"):\n", " response = client.chat.completions.create(\n", " model=model,\n", " messages=messages,\n", " temperature=temperature,\n", " max_tokens= tokens\n", " )\n", " return response.choices[0].message.content\n", "\n", "def chat(answer, interview, job, temperature, tokens):\n", "\n", " conversation = [{'role':'system', 'content': \n", " f\"\"\"\n", " Eres un entrevistador de recursos humanos, para solicitantes recién egresados/graduados, para realizar sus prácticas profesionales\n", " del puesto {job}, y harás las siguientes preguntas en orden: '{questions}'\n", " \n", " Primero mostraras un saludo preguntando si el usuario está listo para iniciar la entrevista.\n", " Con la respuesta que te del usuario le harás la pregunta.\n", " \n", " Basándote en la respuesta a la pregunta, brindaras una retroalimentación constructiva, precisa, resaltando\n", " los partes que le faltan por mencionar y mejorar al usuario, para que así\n", " pueda mejorar su respuesta para futuras entrevistas y al final de la retroalimentación, preguntarás \n", " que, si tiene más dudas, de ser así responderás las dudas y en cada respuesta preguntarás \n", " si está listo para la siguiente pregunta, de ser que si mostrarás la siguiente pregunta.\n", " \n", " Reglas que seguir:\n", " - Sigue y respeta el orden de las preguntas.\n", " - Resalta las partes que sean buenas respuestas del usuario.\n", " - Si el usuario ingresa texto en inglés, continua en inglés.\n", " - No darás respuesta si el usuario ingresa información que no tiene que ver con la entrevista.\n", " - Al finalizar la entrevista indicaras una retroalimentación general.\n", "\n", " \"\"\"\n", " }]\n", " \n", " for user, assistant in interview:\n", " conversation.append({\"role\": \"user\", \"content\": user})\n", " conversation.append({\"role\": \"assistant\", \"content\": assistant})\n", " \n", " conversation.append({\"role\": \"user\", \"content\": answer})\n", "\n", " \n", " response = get_completion_from_messages(conversation, temperature, tokens)\n", " \n", " print(temperature)\n", " return response\n", "\n", "job = gr.Textbox(label=\"Ingresa el puesto:\")\n", "temperature = gr.Slider(label=\"Elige la creatividad de respuestas del modelo.\", minimum=0, maximum=1, step=.1)\n", "tokens = gr.Slider(label=\"Elige la cantidad de palabras de respuestas del modelo.\", minimum=70, maximum=500, step=10)\n", "\n", "# Crear un tema personalizado\n", "theme = gr.Theme(\n", " primary_hue=\"gray\",\n", " # secondary_hue=\"black\",\n", " # neutral_hue=\"red\",\n", " text_size=\"lg\",\n", " # # spacing_size=\"md\",\n", " radius_size=\"sm\",\n", " font_mono=(\"Courier New\", \"monospace\")\n", "\n", ")\n", "\n", "iface = gr.ChatInterface(\n", " fn=chat,\n", " title=\"Preparación para entrevistas laborales.\",\n", " additional_inputs=[job, temperature, tokens],\n", " description=\"\"\"\n", " 1. Primero ingresarás el tipo de puesto en el campo de abajo \"Additional Inputs\".\\n\n", " 2. Responde a las preguntas de la forma más completa posible, para obtener mejor retroalimentación.\\n\n", " 3. Inicia la entrevista mandando un saludo.\n", " \"\"\",\n", " textbox=gr.Textbox(placeholder=\"Escribir respuesta..\", container=False, scale=5),\n", " submit_btn=\"Enviar respuesta\",\n", " clear_btn =\"Borrar conversación\",\n", " theme=theme,\n", " \n", " )\n", "iface.launch(share=True)\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.11.9" } }, "nbformat": 4, "nbformat_minor": 2 }