Spaces:
Runtime error
Runtime error
{ | |
"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": [ | |
"<div><iframe src=\"http://127.0.0.1:7860/\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>" | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"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 | |
} | |