Spaces:
Runtime error
Runtime error
File size: 8,425 Bytes
152413c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
{
"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
}
|