Skip to content

Instantly share code, notes, and snippets.

@luisgdelafuente
Last active October 18, 2023 10:23
Show Gist options
  • Save luisgdelafuente/c3ae7c1755ca90da09bf90cc5dd15ce9 to your computer and use it in GitHub Desktop.
Save luisgdelafuente/c3ae7c1755ca90da09bf90cc5dd15ce9 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"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