Talk to Sparrow For Your Next Reservation

Context - This summer, I had the opportunity to intern for a subsidiary of Amadeus, the world’s largest travel distribution system(GDS). The environment in which I worked was a global product development and services organization whose staff were based mainly out of India and the United States. Under the head of engineering, I was working on a pilot project, code-named "Sparrow," to prove that AI-based chatbots, when compared to humans, have the potential to revolutionize the field in terms of responsiveness and cost effectiveness. To do this, I developed a natural language processing chatbot which could be used to book flights without any human interaction. Depending on the success of the project, this chatbot would be used throughout the enterprise. The project constituted around 240-250 hours of effort over a 6 week period. Development was done using Amazon Web Services' Lex Chatbot Interface and Lambda functions coded in Python.  The following are my key learnings from this remarkable experience:  

  1. Managing Package Sizes – The AWS Lex development interface only allows a maximum of 12KB of data to be stored within the session attributes for sharing with different intents. However, some of the API responses I was receiving exceeded the amount by about twofold. Because of this, I had learned how to programmatically compress JSON and HTML files. The most effective method I found for this, in the short amount of time I had, was parsing the contents of the file to a string, then converting the string to its hexadecimal values. This allowed me to compress the files to about one-third their original size.
  2. Handling Web Requests – All of the data that I needed to access was available only through POST requests to the company's REST API. I learned that this was actually very simple to do this in Python. The two features that helped me the most with this were the Python requests library and the ability to convert JSON files to and from Strings. I had to initialize the POST requests as a dictionary that resembled a JSON file, then would have to convert the dictionary to a String and finally convert the String to a JSON file using the very helpful “jsonDumps” method in Python’s JSON library.
  3. User Interaction – During development, I had to account for the many different styles of user interaction. The chatbot choses its response based on a list of preset “utterances” (just a fancy word for user input). The chatbot uses natural language processing to try and match up the user’s input with the preset list of utterances to determine how it should respond. In order to make the use of the chatbot seamless, I had to study the kind of verbiage users use when typing to the chatbot to tailor the preset utterances to match up with the input.
  4. Proficiency in Python – In the years leading up to my internship, the languages I was most proficient in were Java, C#, and Swift. When I began my work, I was given free reign to chose which language I coded in since AWS Lambda gives the developer freedom to choose their language. I decided to give Python a shot since I had heard many good things about the simplicity of coding web requests using the language. So, over my six-week internship, I became somewhat proficient in Python, and have come to admire the benefits of having an open-source structure to a programming language. The thousands of libraries offered by Python are quite literally a lifesaver.
  5. Collaboration – During my time at Amadeus, I was working with a team of software engineers based out of Delhi and Atlanta. My daily progress check calls were at 6:30am due to the difference in time zones. This took a bit of getting used to since I’m usually not up that early in the summer, but it was totally worth it. I was also faced with overcoming a massive language barrier since most of the people I worked with from India didn’t have the best English, and my Hindi skills were even worse. Despite this, my communication skills improved immensely, especially in terms of my ability to explain my code.
Priyadharshini Manickam

Automation Leader in Application Support Services Area(Associate Director)

4 年

Excellent

要查看或添加评论,请登录

社区洞察

其他会员也浏览了