Ingeniería de prompts para el desarrollo de chatbots

Ingeniería de prompts con la API de OpenAI

Fouad Trad

Machine Learning Engineer

La necesidad de la ingeniería de prompts para los chatbots

  • Difícil de predecir las preguntas de los usuarios
  • Desafío para garantizar respuestas eficaces
  • La ingeniería de prompts guía el comportamiento del chatbot

Imagen de un chatbot en un teléfono móvil.

Ingeniería de prompts con la API de OpenAI

Ingeniería de prompts para chatbots con la API de OpenAI

Imagen que muestra los tres roles de un mensaje y la comunicación entre ellos.

  • Cada mensaje tiene un rol asignado
Ingeniería de prompts con la API de OpenAI

Ingeniería de prompts para chatbots con la API de OpenAI

Imagen que muestra los tres roles de un mensaje y la comunicación entre ellos, con un resaltado alrededor de la interacción entre el usuario y el asistente.

  • Cada mensaje tiene un rol asignado
  • El foco se ha puesto en los prompts de usuario
Ingeniería de prompts con la API de OpenAI

Ingeniería de prompts para chatbots con la API de OpenAI

Imagen que muestra los tres roles de un mensaje y la comunicación entre ellos, con un resaltado alrededor de la interacción entre el sistema y el asistente.

  • Cada mensaje tiene un rol asignado
  • El enfoque se ha centrado en los prompts de usuario
  • Los prompts del sistema guían el comportamiento del chatbot
Ingeniería de prompts con la API de OpenAI

Endpoint de finalización de chats para el desarrollo de chatbots

  • Envía una serie de mensajes al modelo como una lista
response = client.chat.completions.create(
  model="gpt-4o-mini",
  messages=[{"role": "system",
             "content": "You are an expert data scientist that explains complex concepts in simple terms"},

{"role": "user", "content": "What is prompt engineering?"}] )
print(response.choices[0].message.content)
Imagine you're giving instructions to a computer program, like teaching a robot to make a sandwich. 
Prompt engineering is all about crafting those instructions, or "prompts," in a way that helps the 
computer understand and perform the task better.
Ingeniería de prompts con la API de OpenAI

Cambio de get_response() para el chatbot

  • Enviando un prompt
def get_response(prompt):
    messages = [
      {"role": "user", "content": prompt}
    ]
    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=messages,
        temperature=0,
    )
    return response.choices[0].message.content

prompt = "<PROMPT>" print(get_response(prompt))
  • Enviar dos prompts
def get_response(system_prompt, user_prompt):

messages = [ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_prompt}]
response = client.chat.completions.create( model="gpt-4o-mini", messages=messages, temperature=0, ) return response.choices[0].message.content
system_prompt = "<SYSTEM_PROMPT>" user_prompt = "<USER_PROMPT>" print(get_response(system_prompt, user_prompt))
Ingeniería de prompts con la API de OpenAI

Mensaje del sistema: definir el propósito

system_prompt = "You are a chatbot that answers financial questions."

user_prompt = "Who are you?" print(get_response(system_prompt, user_prompt))
I'm a financial chatbot that answers financial questions. How can I help you?
  • Permite que el chatbot ofrezca ayuda precisa en el ámbito
  • No definir el propósito puede dar lugar a respuestas irrelevantes en ese contexto
Ingeniería de prompts con la API de OpenAI

Mensaje del sistema: directrices de respuesta

  • Especifica el público, el tono, la extensión y la estructura
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective"""

user_prompt = "What do you think about cryptocurrencies?" print(get_response(system_prompt, user_prompt))
Ingeniería de prompts con la API de OpenAI

Mensaje del sistema: directrices de respuesta

Cryptocurrencies are digital or virtual currencies that use cryptography for security and operate on 
decentralized networks based on blockchain technology. 
[...]

Advantages of cryptocurrencies include: - Decentralization: [...] - Security:[...] - Global Accessibility: [...]
However, there are also notable concerns: - Volatility: [...] - Regulatory Uncertainty: [...] - Lack of Consumer Protection: [...]
In summary, cryptocurrencies have the potential to offer various benefits, but their adoption and impact on the financial landscape are still evolving [...]
Ingeniería de prompts con la API de OpenAI

Mensaje del sistema: guía de comportamiento

  • Prompts condicionales para responder a preguntas
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective.


"""
Ingeniería de prompts con la API de OpenAI

Mensaje del sistema: pautas de comportamiento

  • Prompts condicionales para responder a preguntas
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective.
If the question you receive is within the financial field, answer it to the best of your knowledge.

"""
Ingeniería de prompts con la API de OpenAI

Mensaje del sistema: pautas de comportamiento

  • Prompts condicionales para responder a preguntas
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective.
If the question you receive is within the financial field, answer it to the best of your knowledge.
Otherwise, answer with 'Sorry, I only know about finance.'
"""
user_prompt = "How's the weather today?"

print(get_response(system_prompt, user_prompt))
Sorry, I only know about finance.
Ingeniería de prompts con la API de OpenAI

¡Practiquemos!

Ingeniería de prompts con la API de OpenAI

Preparing Video For Download...