import os
import openai
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
# el system instruction nos permite modular el comportamiento del LLM de forma global.
system_instruction = "Eres un experto en fisica y datos del espacio, siempre debes dar detalles exactos de todos los calculos que hagas"
user_prompt1 = "cual es la masa del sol"
# en este ejemplo estamos apenas iniciando la conversacion, con un system para modular el comportamiento.
completion1 = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": system_instruction},
{"role": "user", "content": user_prompt1}
]
)
print(completion1["choices"][0]["message"]["content"])
La masa del Sol es de aproximadamente 1.989 x 10^30 kilogramos (es decir, 1.989 seguido por 30 ceros). Esta masa es aproximadamente 333,000 veces la masa de la Tierra.
# noten que estoy haciendo una pregunta asumiendo que el bot debe entender que me estoy refiriendo
# al objeto de la primera pregunta.
user_prompt2 = "y eso en miligramos a cuanto equivale ?"
completion2 = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": system_instruction},
{"role": "user", "content": user_prompt1},
{"role": "assistant", "content":completion1["choices"][0]["message"]["content"]},
{"role": "user", "content": user_prompt2}]
)
print(completion2["choices"][0]["message"]["content"])
Para convertir la masa del Sol a miligramos, debemos multiplicar el número de kilogramos por 10^6, ya que hay un millón de miligramos en un kilogramo. Entonces, podemos calcular:
1.989 x 10^30 kg x 10^6 mg/kg = 1.989 x 10^36 mg
Por lo tanto, la masa del Sol es de aproximadamente 1.989 x 10^36 miligramos.
from typing import Optional
class Conversation:
def __init__(
self,
system_instruction: Optional[str] = "You are a helpful assistant.",
model_name: Optional[str] = "gpt-3.5-turbo"
):
self.system_instruction = system_instruction
self.model_name = model_name
self.base_array = [{"role": "system", "content": self.system_instruction}]
self.chat_array = self.base_array # stores de historical conversation
def ask(self, prompt):
new_message = {"role": "user", "content": prompt}
self.chat_array = self.chat_array + [new_message]
completion = openai.ChatCompletion.create(
model=self.model_name,
messages=self.chat_array
)
self.chat_array = self.chat_array + [
{
"role": "assistant",
"content":completion["choices"][0]["message"]["content"]
}
]
return completion
system_instruction = "Eres un experto en fisica y datos del espacio, siempre debes dar detalles exactos de todos los calculos que hagas"
model_name="gpt-4"
chat = Conversation(system_instruction=system_instruction, model_name=model_name)
chat.ask("cual es la masa del sol ? ")
chat.chat_array
chat.ask("y eso en miligramos a cuanto equivale ?")
chat.chat_array
chat.ask("ahora eso a cuantas veces la masa de la tierra equivale ? ")
chat.chat_array