Create a gpt-3.5 API request that determines whether any time range in a list intersects with a given time range

25 Views Asked by At

I've created a prompt that should select a requested number of employees from the list. But the step 1 doesn't work properly. Sometimes GPT takes in account only the time range and ignores the date. I tried to describe this step in a different way many times, tried different time formats including UTC, but didn't succeed. Maybe experienced prompt creators can tell what's wrong with my prompt?


User message:

{
  "employees": [
    {
      "id": 1,
      "name": "Bender Rodriguez",
      "position": "developer",
      "experience": "middle",
      "interviews_conducted": 0,
      "busy_date_time": [
        {"start_time": "February 10 2024 06:00", "end_time": "February 10 2024 07:00"},
        {"start_time": "February 11 2024 10:00", "end_time": "February 11 2024 11:00"}
      ]
    },
    {
      "id": 2,
      "name": "Philip Fry",
      "position": "developer",
      "experience": "middle",
      "interviews_conducted": 2,
      "busy_date_time": [
        {"start_time": "February 10 2024 13:00", "end_time": "February 10 2024 14:00"}
      ]
    },
    {
      "id": 3,
      "name": "John Zoidberg",
      "position": "developer",
      "experience": "junior",
      "interviews_conducted": 1,
      "busy_date_time": [
        {"start_time": "February 10 2024 10:00", "end_time": "February 10 2024 11:00"}
      ]
    },
    {
      "id": 4,
      "name": "Turanga Leela",
      "position": "developer",
      "experience": "senior",
      "interviews_conducted": 1,
      "busy_date_time": [
        {"start_time": "February 10 2024 10:00", "end_time": "February 10 2024 11:00"}
      ]
    },
    {
      "id": 5,
      "name": "Amy Wong",
      "position": "developer",
      "experience": "senior",
      "interviews_conducted": 0,
      "busy_date_time": [
        {"start_time": "February 10 2024 10:00", "end_time": "February 10 2024 11:00"}
      ]
    }
  ]
}

Do step-by-step:

1. Remove from the "employees" list above each employee if any time interval in 
"busy_date_time" list overlaps with "required_date_time".

2. If the number of employees left in the "employees" list is less than 
"required_employees_number", set the new value to "required_employees_number" equal 
to the number of employees left in the "employees" list.

3. Select "required_employees_number" employees with "required_experience" and lower 
"interviews_conducted" value. You shouldn't find the one with the lowest 
"interviews_conducted" value among all, but a required number of employees which is 
"required_employees_number".

4. Check the previous step where you usually make the mistake of selecting 1 employee
with minimum "interviews_conducted" value among all employees when you need to select 
a list of "required_employees_number" employees.

required_date_time = '''{"start_time": "February 10 2024 10:00", "end_time": "February 10 2024 11:00"}'''
required_employees_number = 1
required_experience = "middle"

System message: You are a computer program that strictly follows the user's instructions. Your output is always only a list of employee's id. Any other notes or comments are forbidden.


GPT settings:

  • Temperature: 0
  • Top P: 0
  • Frequency penalty: 0
  • Presence penalty: 0

  • Expected result: [1]
  • Actual result: [2]
0

There are 0 best solutions below