My name is Maria Shabanova and I did my internship at Centigrade in July 2024 in the UX Design department. I was given the task of creating an AI assistant with OpenAI (GPT-4). Centigrade works a lot with LeanScope AI and has created the possibility to create AI assistants, many of which are already in use. My task was to create a prompt (instruction) for an assistant. I was supported in this by Jonas Enck, who supervised me during my internship together with Luzie Seeliger and Thomas Immich. This is a diary that documents my progress and the creation of the assistant.
Create out-of-office notes with soul & humour
My aim was to create a wizard that creates an out-of-office note that can be entered in Outlook. The wizard should require as little information and effort from the user as possible. A standard text would not be sufficient – the aim is to give the out-of-office note a personality and to state the reason for the absence, with a little humour if desired, and to name substitutes. There should be two versions of the note: one for internal colleagues and one for external contacts, such as customers and project partners.
Eddie: The creation of my chatbot
I drew this ‘persona picture’ for the assistant myself, with some inspiration from this owl that lives in our office.
The beginning: first draft and distribution of tasks
First, I made a draft based on the example and a whiteboard sketch I had made with Jonas Enck. This sketch represented the ideal case. I approached it step by step and proceeded in small steps to get to grips with the complexity. To start with, I worked on the following points:
- German and English version
- Return date
- Contact person for urgent cases and their contact details
- Administration contact details as an alternative contact
The first task: asking for information
The first thing I had to do was to formulate the task so that the chat bot asks for information if it doesn’t have all the information yet. At this point, the required information was
- The return date
- The replacement person and his/her email and phone number
The hardest part for me was making sure that it didn’t create an out of office note while it was still missing information. Once I had managed that, I had to make sure that he didn’t ask for anything that he already knew. Unfortunately, that doesn’t work so well.
Projects & contact persons for internal colleagues
Next, I added the prompt to request new information:
- Projects you are involved in
- Substitutes/contact persons for these projects
- Contact details of the contact persons
Funny note
The next extension was to add some humour to the note to make it a little more lively. The idea was to add a comment about the destination. Both were quickly adopted by the bot after the request was well customised.
Offering help
The aim was that when it was approached without an order, it would not only offer its help, but also explain how it could help and what it needed to do so.
Internal & external
Next, I have the external and internal variants created.
- Only in the notes for internal colleagues does he state the reason for the absence and make the funny comment.
- For internal colleagues only, he specifies the projects and the project representatives.
- For external notes, the form of address is more formal.
Now the assistant creates four versions: – a German and an English version of the internal and external version.
For data protection reasons, I have also added a query as to whether it is allowed to enter a reason for absence. It only asks for the reason and inserts it into the note if it is allowed to do so.
Obtaining sample data
We had ChatGPT generate a sample list of employees and their contact details as well as a list of projects, each with a project manager, as test data. The bot now independently finds the contact details of the employees and the contact persons for the projects in this list. It took a while for it to stop asking about things it already knew, and sometimes it still asks about projects. But if you ignore these requests, he finds the information himself. That’s a problem I still need to solve.
Name of the user and projects
We have added a list of participating colleagues to the list of projects. Then I customised the prompt so that it asks for the user name. With the user name, the user can now select the projects they are working on and add them to the note. It took a while for him to select more than just one project, but now he adds all projects with project management or, if the person is the project manager, with employees as representatives to the internal absence note.
Return date
Ideally, when querying the return date, it should check whether it falls on a weekend or a public holiday and in this case enter the next working day as the return date. As GPT does not have access to the current calendar, I had to extend the prompt so that it can calculate the weekday from the date. As it only has access to the year 2023, I have described this accordingly.
Problems
There were some problems during the process, such as requesting data that already existed (mostly projects), writing the note without all the information or ‘inventing’ a piece of information. One problem that I unfortunately could not solve was trying to get the assistant to ask for the last name of employees whose first name appears more than once when it is not given. It seems to understand that it should give the surname in the note, but it rarely asks which employee is meant and usually just takes the first name in the list. When I checked my result with Thomas Immich, our managing director, we found some errors not only in my prompt but also in the AI personas in general. For example, we tried to teach the AI to count from today’s date for relative times like ‘the day after tomorrow’ and found out that today’s date for the assistant is after 25/04/2023. At the moment you have to specify the current date, and it needs an extension to get the date externally. Finally, we removed some repetitions from the prompt and wrote a numbered statement that seems to work now!
Conclusion
As my first student internship, I definitely think Centigrade is a very good choice. I have learnt a lot about UX design and the creation of bots/assistants, and it is a very nice feeling to create something that can be used in everyday life, even if it might need some fine-tuning beforehand. It was a great experience for me and I would like to thank everyone who made it possible.