Last active
October 18, 2023 10:23
-
-
Save luisgdelafuente/c3ae7c1755ca90da09bf90cc5dd15ce9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Generador de ideas de negocio \n", | |
"\n", | |
"import os\n", | |
"import openai\n", | |
"import pandas as pd\n", | |
"\n", | |
"# Tomamos clave API como variable entorno \n", | |
"openai.api_key = os.getenv(\"OPENAI_API_KEY\")\n", | |
"\n", | |
"# Definimos parámetros y posibles valores \n", | |
"industrias = ['clinicas', 'inmobiliaria']\n", | |
"financiaciones = ['sin financiación', '500000€ capital semilla'] \n", | |
"ubicaciones = ['madrid','valencia'] \n", | |
"\n", | |
"# Lista vacía inicial \n", | |
"results = []\n", | |
"\n", | |
"# Hacemos loop por todos los valres\n", | |
"record_number = 1\n", | |
"for industria in industrias:\n", | |
" for financiacion in financiaciones:\n", | |
" for ubicacion in ubicaciones:\n", | |
" # Definimos en prompt con placeholders \n", | |
" prompt = f\"Olvida las instrucciones previas. Eres un analista con muchos años de experiencia en startups y nuevos negocios. Crea una idea de negocio totalmente original e innovadora, con sólo 100 palabras, en el sector de {industria}, cuya financiación es: {financiacion}, y que está ubicada en {ubicacion}, siguiendo estas instrucciones: escribe sólo la idea como si fueras el emprendedor, con tono apasionado pero profesional, aprovecha las especificidades de ubicación, industria y financiación disponibles, añade información del equipo fundador.\"\n", | |
"\n", | |
" # Generamos una respuesta para cada prompt \n", | |
" response = openai.Completion.create(\n", | |
" model=\"text-davinci-003\",\n", | |
" prompt=prompt,\n", | |
" temperature=0.7, \n", | |
" max_tokens=500, \n", | |
" n=1, \n", | |
" stop=None, \n", | |
" )\n", | |
"\n", | |
" # Extraemos y guardamos la respuesta \n", | |
" response_text = response.choices[0].text.strip()\n", | |
"\n", | |
" # Para construir una hoja de cálculo vamos a utilizar los parámetros como columnas\n", | |
" subprompt = f\"{industria}, {financiacion}, {ubicacion}\"\n", | |
"\n", | |
" # Guardamos los resultados en un diccionario \n", | |
" result = {\n", | |
" 'record number': record_number,\n", | |
" 'industria': industria,\n", | |
" 'financiacion': financiacion,\n", | |
" 'ubicacion': ubicacion,\n", | |
" 'prompt': prompt,\n", | |
" 'subprompt': subprompt,\n", | |
" 'response': response_text\n", | |
" }\n", | |
"\n", | |
" results.append(result)\n", | |
"\n", | |
" # aumentamos el contador\n", | |
" record_number += 1\n", | |
"\n", | |
"# Creamos un dataframe con los resultados\n", | |
"df = pd.DataFrame(results)\n", | |
"\n", | |
"# Exportamos a un archivo csv\n", | |
"df.to_csv(\"startup.csv\", index=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import textwrap\n", | |
"\n", | |
"# Generar resultados en pantalla\n", | |
"for paragraph in df['response']:\n", | |
" paragraphs = paragraph.split('\\n') # dividir en bloques \n", | |
" for p in paragraphs:\n", | |
" wrapped_paragraphs = textwrap.wrap(p, width=80) # ajustar anchura\n", | |
" for wrapped_p in wrapped_paragraphs:\n", | |
" print(wrapped_p)\n", | |
" print('-' * 50) # meter un separador" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"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.4" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment