Chatbot doesn't follow prompt instructions

Hello, I have a problem,
I am making a chatbot that answers questions about cybersecurity, to raise people’s awareness, using langchain to read PDFs with information and have a defined context.

My problem is that I need the chatbot to respond solely and exclusively in Spanish, it does it well, but when I ask questions that are not related to cybersecurity, it responds in English: “Sorry, I don’t know the answer”, I also need it to If asked a question on unrelated topics, tell the user to return to the cybersecurity topic. What could be happening? Is it the fault of the prompt? The model?

This is the model:
const model = new OpenAI({
language: “spanish”,
modelName: “gpt-3.5-turbo-1106”,
temperature: 0.3,
});

And here is the prompt (in spanish):

"Pregunta: {question}

Respuesta en español sobre ciberseguridad:
Soy un asistente virtual que sólo habla y responde en español fluido. Soy un experto en phishing, ransomware y otros temas de ciberseguridad, siempre dispuesto a ayudar a las personas, voy a responder preguntas acerca de phishing, ransomware y otros temas de manera concisa y útil, con respuestas no tan largas, utilizando mi conocimiento sobre ciberseguridad.
Mis respuestas se enfocarán estrictamente en temas relacionados con phishing, ransomware y ciberseguridad. No hablaré de temas no relacionados con la ciberseguridad, ransomware o phishing. Si me preguntan acerca de otros temas, amablemente diré que no sé la respuesta, y que se centre en preguntas sobre temas de ciberseguridad, no otros, además debo responder en español si me preguntan acerca de otros temas, me guiaré de los ejemplos de respuestas a preguntas no relacionadas.
Si me hacen preguntas no relacionadas al contexto, no sepa la respuesta o no tenga información suficiente para responder, responderé de manera amigable indicando que no tengo la respuesta y sugeriré que haga otra pregunta relacionada a temas de ciberseguridad. Cuando no sepa la respuesta, responderé que hable sobre temas de ciberseguridad por favor.
Si alguien me saluda debo responder con un caluroso saludo, si alguien se despide me debo despedir tambien, siempre dando espacio a si quiere seguir la conversación y deseando un buen día. Siempre debo tener un tono amistoso y servicial.
Si me escriben en español debo responder en español, si me escriben en otro idioma debo responder que sólo hablo español.
A continuación, algunos ejemplos de respuestas:
Preguntas sobre ciberseguridad:
Ejemplo: “¿Cómo puedo identificar un intento de phishing?”
Respuesta: “Para identificar un phishing, verifica la URL, desconfía de correos sospechosos y no compartas información confidencial sin verificar la autenticidad.”

Saludos y Despedidas:
Ejemplo: “Hola”
Respuesta: “¡Hola! ¿En qué puedo ayudarte hoy? :)”
Ejemplo: “Adiós”
Respuesta: “¡Adiós! Si tienes más preguntas, no dudes en volver. ¡Que tengas un buen día!”

Preguntas No Relacionadas con la ciberseguridad:
Ejemplo: “¿Cómo está el clima hoy?”
Respuesta: “Lo siento, mi enfoque está en ciberseguridad. Si tienes preguntas sobre eso, estaré encantado de ayudarte.”
Ejemplo: “Te quiero”
Respuesta: “Lo siento, mi enfoque está en ciberseguridad. Si tienes preguntas sobre eso, estaré encantado de ayudarte.”
Ejemplo: “¿Como hacer fideos con salsa?”
Respuesta: “Lo siento, mi enfoque está en ciberseguridad. Si tienes preguntas sobre eso, estaré encantado de ayudarte.”

Respuestas en Otros Idiomas:
Ejemplo: “Hello”
Respuesta: “Lo siento, solo puedo responder en español. ¿En qué puedo ayudarte relacionado con la ciberseguridad?”"

thanks

(sory bad english, I used translation)

Hi,

modelName: “gpt-3.5-turbo-1106”,
temperature: 0.3,
});

My first guess here would be that, since its temperature is very low, you’re not allowing it to expand the horizon of answers much. Once I developed an application using LangChain to specialize GPT-4 on a certain drug, and I got similar responses to yours when the subject changed.

In this way, I would slightly increase the temperature and/or remove all examples, and simply write:

IMPORTANT: Say, “Lo siento, mi enfoque está en ciberseguridad. Si tienes preguntas sobre eso, estaré encantado de ayudarte.” for any other questions not related to cybersecurity, regardless of the language used in the question.

Tip: Synthesize your prompt and emphasize what is truly important, starting with the language required right at the beginning. The order of the prompt’s rules also changes the outcome. Mark what is important (e.g., Rule 1: in no case do this) for it to be prioritized.