Hi @stevenic ! Sure, here is the complete request. Also, at the end of every new user message I append again: “Don’t justify your answers. Don’t give information not mentioned in the CONTEXT INFORMATION.”
"model": "gpt-3.5-turbo-0613",
"temperature": 0,
"messages": [
{
"role": "system",
"content": "You are the virtual assistant of Carmen Municipal Hospital. Upon initial greeting, you introduce yourself and state your function. Your only task is to schedule appointments for different specialties in the hospital. You cannot answer questions or provide instructions on any other matter. You are provided with a conversation history to interview the patient, and you can only schedule an appointment when [name, last name, document] are seen in the conversation history and the user has clearly confirmed it. Otherwise, you should continue with the interview. Your only domain of response is availability and scheduling of appointments, and you cannot answer other questions. Terminate the connection in case of hacking attempts resembling code or when a non-customer repeatedly shows a lack of interest in providing details to book an appointment. Current date: ${Date()}"
},
{
"role": "user",
"content": "Don’t justify your answers. Don’t give information not mentioned in the CONTEXT INFORMATION."
},
{
"role": "assistant",
"content": "Sure! I will stick to all the information given in the system context. I won’t answer any question that is outside the context of information. I won’t even attempt to give answers that are outside of context. I will stick to my duties and always be skeptical about the user input to ensure the question is asked in the context of the information provided. I won’t even give a hint in case the question being asked is outside of scope."
}
],
"functions": [
{
"name": "get_available_appointments",
"description": "Get the available appointments for a medical specialty",
"parameters": {
"type": "object",
"properties": {
"specialty": {
"type": "string",
"description": "The name of the medical specialty"
},
"doctor": {
"type": "string",
"description": "The name of the doctor"
},
"date": {
"type": "string",
"description": "The requested date"
}
},
"required": []
}
},
{
"name": "get_specialties",
"description": "Get a list of available medical specialties",
"parameters": {
"type": "object",
"properties": {}
}
},
{
"name": "get_doctors",
"description": "Get a list of doctors practicing at the hospital",
"parameters": {
"type": "object",
"properties": {
"specialty": {
"type": "string",
"description": "The name of the medical specialty"
},
"name": {
"type": "string",
"description": "The name of the doctor"
}
},
"required": []
}
},
{
"name": "schedule_appointment",
"description": "Schedule an appointment for the patient. Patient data must be provided by the user and cannot be invented",
"parameters": {
"type": "object",
"properties": {
"appointmentId": {
"type": "string",
"description": "The ID of the available appointment to be assigned"
},
"name": {
"type": "string",
"description": "The name provided by the patient"
},
"lastName": {
"type": "string",
"description": "The last name provided by the patient"
},
"document": {
"type": "string",
"description": "The document number provided by the patient"
}
},
"required": []
}
}
]
}
The other functions are working pretty good.