Hello Tinker

Background

When I first experienced OpenAI's GPT-3 Chat, I was astounded by its precision and its capability to engage in Zero-Shot Prompting (where the model responds to questions not covered during training) and Few-Shot Prompting (providing a few examples and then receiving accurate responses on new, similar prompts). This technology clearly stood out as a revolutionary tool that would reshape our interaction with information and the creation of new content. GPT-3's versatility in generating text, whether it be poetry, narratives, or even specific code scripts like retrieving weather updates, was evident.

Seeing the potential, my colleague in finance envisioned integrating the GPT-3 model into Microsoft Office applications such as Word, Outlook, and PowerPoint. These platforms are widely used for creating text-based documents, and incorporating a text generation model like GPT-3 could significantly enhance productivity and creativity.

The project's aim was to undertake customer discovery processes and successfully integrate and deliver a functioning GPT-3 add-on to Microsoft Word.

Implementation 

The initial objective was to develop a Minimum Viable Product (MVP) to gauge how customers interacted with, used, and perceived the product and idea. The MVP was designed to be straightforward and minimalistic, providing just enough functionality to demonstrate the technology to potential adopters.

The MVP allowed users to access GPT-3 through an add-in pane in Microsoft Word. This pane connected to Azure Data Blob web files, which hosted all necessary data for rendering the add-in, interfacing with the user, and inserting text into Word documents. In this phase, the add-on directly communicated with OpenAI's ChatGPT, bypassing a proxy server. 


The MVP allowed users to access GPT-3 through an add-in pane in Microsoft Word. This pane connected to Azure Data Blob web files, which hosted all necessary data for rendering the add-in, interfacing with the user, and inserting text into Word documents. In this phase, the add-on directly communicated with OpenAI's ChatGPT, bypassing a proxy server.

This approach was effective for rapidly deploying an MVP and garnering user feedback. However, it raised significant security concerns, primarily because it required users to input their API keys directly into the program, increasing the risk of misuse and unauthorized access.

Despite these risks, which are considerable for a production-level application, the process and temporary compromises were deemed acceptable for the MVP phase. We collaborated with OpenAI to create multiple sub-accounts with individual keys and distinct cost and spending limits, mitigating some security concerns.

Looking ahead, I envisioned an architecture that would enhance security and provide more control over user access and model interactions. This future setup would involve using Amazon Cognito for user authentication, integrating with API Gateway for backend access control, and employing AWS Lambda for its cost-effectiveness and because the inherent latency in calling OpenAI made cold start times a non-issue.

MVP

The MVP has been completed! It successfully enables users to prompt the OpenAI GPT model and seamlessly integrates the response into the Word document for further use and editing. While the project concluded after the MVP stage, the insights and potential for future development pave the way for more secure and versatile integrations in the future.

Hurdles With the Manifest.XML

Developing an Add-On for Microsoft products proved to be a unique and challenging experience, akin to the intricacies of mobile app or Chrome extension development. Adhering to the platform's guidelines enhances end-user security but introduces certain complexities in development. A prime example of this is the handling of the Manifest.xml file.

The Manifest.xml file necessitated making critical "one-way-door" decisions that were difficult to reverse. Changes to the add-on's layout, HTML, CSS, or JavaScript were straightforward, as these files were hosted online and could be updated readily. However, the Manifest.xml file dictates the source of these files, meaning the choice of hosting provider and the initial publication of the add-on are locked in once decided. Any change in hosting would necessitate a complete republishing of a new add-on version, requiring users to manually download the update.

This rigidity extended to the naming, descriptions, resources, and permissions associated with the add-on. Therefore, meticulous planning and foresight were crucial when finalizing the manifest file, particularly for aspects that had to remain static post-deployment. Looking ahead, utilizing DNS to create a more adaptable endpoint could offer a solution, especially for fields that point to hosted files, thereby mitigating some of the rigidity and allowing for more flexibility in updates and maintenance.

Conclusion

It's evident that integrating OpenAI's GPT-3 into Microsoft Office has not only been a technological adventure but a revolutionary step towards redefining how we interact with digital content. The project underscored the transformative power of AI in enhancing and streamlining workflows, creativity, and the overall user experience.

Throughout the development process, from conceptualizing to deploying the MVP, the learning curve was steep yet immensely rewarding. Delving into the intricacies of add-on development, grappling with the Manifest.xml, and navigating the complexities of HTML, CSS, and JavaScript, each hurdle was a learning opportunity that enriched my understanding of application development. The creation of the MVP served as a practical testament to the value of prototyping and iterative design, allowing for real-time feedback and swift adaptation to user needs.

The process highlighted the importance of customer-centric design and deployment in technology. Each decision, from the layout to the choice of hosting provider, was guided by a deep consideration of user experience and the need for a secure, efficient, and adaptable solution.


Feel Free to Check Out My GitHub Repository Here: https://github.com/GAstraeus/ChatGPT-OfficeExtension