You've already forked Curso-lenguaje-python
Update python-chatGPT course
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
68
python-chatgpt/src/01_miPrograma.py
Normal file
68
python-chatgpt/src/01_miPrograma.py
Normal file
@@ -0,0 +1,68 @@
|
||||
"""
|
||||
Primer programa con chatgpt
|
||||
"""
|
||||
|
||||
import os
|
||||
import openai
|
||||
import spacy
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
api_key = os.getenv('OPENAI_API_KEY')
|
||||
|
||||
openai.api_key = api_key
|
||||
|
||||
# modelos = openai.Model.list()
|
||||
|
||||
# print(modelos)
|
||||
|
||||
modelo = "text-davinci-002"
|
||||
prompt = "Cuenta una historia breve de algún lugar concreto"
|
||||
|
||||
respuesta = openai.Completion.create(
|
||||
engine=modelo,
|
||||
prompt=prompt,
|
||||
n=1, # Opcional. Número de respuestas
|
||||
temperature=1, # Opcional. Controla la creatividad de la respuesta
|
||||
max_tokens=200 # Opcional. Número máximo de tokens en la respuesta
|
||||
)
|
||||
|
||||
# print(respuesta)
|
||||
|
||||
texto_generado = respuesta.choices[0].text.strip()
|
||||
print(texto_generado)
|
||||
|
||||
|
||||
# for idx, opcion in enumerate(respuesta.choices):
|
||||
# texto_generado = opcion.text.strip()
|
||||
# print(f"Respuesta {idx + 1}: {texto_generado}\n")
|
||||
|
||||
print("***")
|
||||
|
||||
modelo_spacy = spacy.load("es_core_news_md")
|
||||
|
||||
analisis = modelo_spacy(texto_generado)
|
||||
|
||||
# for token in analisis:
|
||||
# print(token.text, token.pos_, token.dep_, token.head.text)
|
||||
|
||||
ubicacion = None
|
||||
|
||||
for ent in analisis.ents:
|
||||
# print(ent.text, ent.label_)
|
||||
if ent.label_ == "LOC":
|
||||
ubicacion = ent
|
||||
break
|
||||
|
||||
if ubicacion:
|
||||
prompt2 = f"Dime más acerca de {ubicacion}"
|
||||
respuesta2 = openai.Completion.create(
|
||||
engine=modelo,
|
||||
prompt=prompt2,
|
||||
n=1,
|
||||
temperature=1,
|
||||
max_tokens=100
|
||||
)
|
||||
|
||||
print(respuesta2.choices[0].text.strip())
|
||||
63
python-chatgpt/src/02_chatbot.py
Normal file
63
python-chatgpt/src/02_chatbot.py
Normal file
@@ -0,0 +1,63 @@
|
||||
"""
|
||||
Chatbot con OpenAI GPT-3
|
||||
"""
|
||||
|
||||
import openai
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
from colorama import init, Fore
|
||||
|
||||
load_dotenv()
|
||||
api_key = os.getenv("OPENAI_API_KEY")
|
||||
|
||||
openai.api_key = api_key
|
||||
|
||||
preguntas_anteriores = []
|
||||
respuestas_anteriores = []
|
||||
|
||||
# Inicializar colorama
|
||||
init()
|
||||
|
||||
|
||||
def preguntar_chat_gpt(prompt, modelo="text-davinci-002"):
|
||||
"""
|
||||
Pregunta a la API de OpenAI GPT-3
|
||||
"""
|
||||
|
||||
respuesta = openai.Completion.create(
|
||||
engine=modelo,
|
||||
prompt=prompt,
|
||||
n=1,
|
||||
temperature=1,
|
||||
max_tokens=150
|
||||
)
|
||||
|
||||
return respuesta.choices[0].text.strip()
|
||||
|
||||
|
||||
# Bienvenida
|
||||
print(Fore.RED + "Bienvenido al chatbot de OpenAI GPT-3." + Fore.RESET)
|
||||
print(Fore.RED + "Escribe \"salir\" cuando quieras terminar la conversación." + Fore.RESET)
|
||||
|
||||
# Loop para controlar el flujo de la conversación
|
||||
while True:
|
||||
|
||||
conversacion_historica = ""
|
||||
|
||||
ingreso_usuario = input(Fore.MAGENTA + "Tú: " + Fore.RESET)
|
||||
|
||||
if ingreso_usuario == "salir":
|
||||
break
|
||||
|
||||
for pregunta, respuesta in zip(preguntas_anteriores, respuestas_anteriores):
|
||||
conversacion_historica += f"{Fore.BLUE}Usuario pregunta: {Fore.RESET}{pregunta}"
|
||||
conversacion_historica += f"{Fore.GREEN}Bot responde: {Fore.RESET}{respuesta}\n"
|
||||
|
||||
prompt = f"{Fore.CYAN}Usuario pregunta: {Fore.RESET}{ingreso_usuario}"
|
||||
conversacion_historica += prompt
|
||||
respuesta_gpt = preguntar_chat_gpt(conversacion_historica)
|
||||
|
||||
print(f"{respuesta_gpt}")
|
||||
|
||||
preguntas_anteriores.append(ingreso_usuario)
|
||||
respuestas_anteriores.append(respuesta_gpt)
|
||||
47
python-chatgpt/src/03_crear_contenido.py
Normal file
47
python-chatgpt/src/03_crear_contenido.py
Normal file
@@ -0,0 +1,47 @@
|
||||
"""
|
||||
Programa para crear contenido
|
||||
y resumirlo con la API de OpenAI
|
||||
"""
|
||||
|
||||
import openai
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
api_key = os.getenv("OPENAI_API_KEY")
|
||||
|
||||
openai.api_key = api_key
|
||||
|
||||
|
||||
def crear_contenido(tema, tokens, temperatura, modelo="text-davinci-002"):
|
||||
"""
|
||||
Crea contenido con OpenAI GPT-3
|
||||
"""
|
||||
|
||||
prompt = f"Escribe un artículo corto sobre el tema: {tema}"
|
||||
|
||||
respuesta = openai.Completion.create(
|
||||
engine=modelo,
|
||||
prompt=prompt,
|
||||
n=1,
|
||||
temperature=temperatura,
|
||||
max_tokens=tokens
|
||||
)
|
||||
|
||||
return respuesta.choices[0].text.strip()
|
||||
|
||||
|
||||
# Bienvenida
|
||||
print("Bienvenido a la aplicación de creación de contenido. \n Necesito que me des algunos datos.")
|
||||
|
||||
# Pedir datos
|
||||
tema = input("Elige un tema para tu artículo: ")
|
||||
tokens = int(input("Tokens máximos: "))
|
||||
temperatura = int(
|
||||
input("Del 1 al 10, ¿Cuánto quieres que sea de creativo el artículo?: ")) / 10
|
||||
|
||||
# Crear contenido
|
||||
articulo_creado = crear_contenido(tema, tokens, temperatura)
|
||||
|
||||
|
||||
print(articulo_creado)
|
||||
47
python-chatgpt/src/04_resumir_articulo.py
Normal file
47
python-chatgpt/src/04_resumir_articulo.py
Normal file
@@ -0,0 +1,47 @@
|
||||
"""
|
||||
Programa para crear contenido
|
||||
y resumirlo con la API de OpenAI
|
||||
"""
|
||||
|
||||
import openai
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
api_key = os.getenv("OPENAI_API_KEY")
|
||||
|
||||
openai.api_key = api_key
|
||||
|
||||
|
||||
def resumir_text(texto, tokens, temperatura, modelo="text-davinci-002"):
|
||||
"""
|
||||
Resumir texto con OpenAI GPT-3
|
||||
"""
|
||||
|
||||
prompt = f"Resume el siguiente texto: {texto}\n\n"
|
||||
|
||||
respuesta = openai.Completion.create(
|
||||
engine=modelo,
|
||||
prompt=prompt,
|
||||
n=1,
|
||||
temperature=temperatura,
|
||||
max_tokens=tokens
|
||||
)
|
||||
|
||||
return respuesta.choices[0].text.strip()
|
||||
|
||||
|
||||
# Bienvenida
|
||||
print("Bienvenido a la aplicación de creación de contenido. \n Necesito que me des algunos datos.")
|
||||
|
||||
# Pedir datos
|
||||
original = input("Pega aquí el artículo a resumir: ")
|
||||
tokens = int(input("Tokens máximos: "))
|
||||
temperatura = int(
|
||||
input("Del 1 al 10, ¿Cuánto quieres que sea de creativo el resumen?: ")) / 10
|
||||
|
||||
# Crear contenido
|
||||
resumen = resumir_text(original, tokens, temperatura)
|
||||
|
||||
|
||||
print(resumen)
|
||||
1541
python-chatgpt/src/modelos_openai.json
Normal file
1541
python-chatgpt/src/modelos_openai.json
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user