From 7cff957ef8d94d1938aa95257b0c18b746bf2573 Mon Sep 17 00:00:00 2001 From: Glaucia Lemos Date: Wed, 10 Apr 2024 13:31:57 -0300 Subject: [PATCH] docs: update tutorial according to the code sample [Introduction] (#38) * docs: rewrite the tutorial * docs: adds initial tutorial files and setup Azure Functions environment * fix: update tutorial with Codespaces recommendation and fix typos --- docs/{tutorial => old-tutorial}/01-session.md | 0 docs/{tutorial => old-tutorial}/02-session.md | 0 docs/{tutorial => old-tutorial}/03-session.md | 0 docs/{tutorial => old-tutorial}/04-session.md | 0 docs/{tutorial => old-tutorial}/05-session.md | 0 docs/{tutorial => old-tutorial}/06-session.md | 0 .../images/chat-api.png | Bin .../images/chat-final-result.gif | Bin .../images/chat-stream-response.png | Bin .../images/from-messages-method.png | Bin .../images/post-request-chat.png | Bin .../images/stream-response.gif | Bin .../images/test-upload-function.gif | Bin .../images/upload-function.png | Bin docs/tutorial/01-introduction.md | 120 ++++++++++++++++++ .../tutorial/02-setting-up-azure-functions.md | 3 + docs/tutorial/images/application-webapp.png | Bin 0 -> 66787 bytes 17 files changed, 123 insertions(+) rename docs/{tutorial => old-tutorial}/01-session.md (100%) rename docs/{tutorial => old-tutorial}/02-session.md (100%) rename docs/{tutorial => old-tutorial}/03-session.md (100%) rename docs/{tutorial => old-tutorial}/04-session.md (100%) rename docs/{tutorial => old-tutorial}/05-session.md (100%) rename docs/{tutorial => old-tutorial}/06-session.md (100%) rename docs/{tutorial => old-tutorial}/images/chat-api.png (100%) rename docs/{tutorial => old-tutorial}/images/chat-final-result.gif (100%) rename docs/{tutorial => old-tutorial}/images/chat-stream-response.png (100%) rename docs/{tutorial => old-tutorial}/images/from-messages-method.png (100%) rename docs/{tutorial => old-tutorial}/images/post-request-chat.png (100%) rename docs/{tutorial => old-tutorial}/images/stream-response.gif (100%) rename docs/{tutorial => old-tutorial}/images/test-upload-function.gif (100%) rename docs/{tutorial => old-tutorial}/images/upload-function.png (100%) create mode 100644 docs/tutorial/01-introduction.md create mode 100644 docs/tutorial/02-setting-up-azure-functions.md create mode 100644 docs/tutorial/images/application-webapp.png diff --git a/docs/tutorial/01-session.md b/docs/old-tutorial/01-session.md similarity index 100% rename from docs/tutorial/01-session.md rename to docs/old-tutorial/01-session.md diff --git a/docs/tutorial/02-session.md b/docs/old-tutorial/02-session.md similarity index 100% rename from docs/tutorial/02-session.md rename to docs/old-tutorial/02-session.md diff --git a/docs/tutorial/03-session.md b/docs/old-tutorial/03-session.md similarity index 100% rename from docs/tutorial/03-session.md rename to docs/old-tutorial/03-session.md diff --git a/docs/tutorial/04-session.md b/docs/old-tutorial/04-session.md similarity index 100% rename from docs/tutorial/04-session.md rename to docs/old-tutorial/04-session.md diff --git a/docs/tutorial/05-session.md b/docs/old-tutorial/05-session.md similarity index 100% rename from docs/tutorial/05-session.md rename to docs/old-tutorial/05-session.md diff --git a/docs/tutorial/06-session.md b/docs/old-tutorial/06-session.md similarity index 100% rename from docs/tutorial/06-session.md rename to docs/old-tutorial/06-session.md diff --git a/docs/tutorial/images/chat-api.png b/docs/old-tutorial/images/chat-api.png similarity index 100% rename from docs/tutorial/images/chat-api.png rename to docs/old-tutorial/images/chat-api.png diff --git a/docs/tutorial/images/chat-final-result.gif b/docs/old-tutorial/images/chat-final-result.gif similarity index 100% rename from docs/tutorial/images/chat-final-result.gif rename to docs/old-tutorial/images/chat-final-result.gif diff --git a/docs/tutorial/images/chat-stream-response.png b/docs/old-tutorial/images/chat-stream-response.png similarity index 100% rename from docs/tutorial/images/chat-stream-response.png rename to docs/old-tutorial/images/chat-stream-response.png diff --git a/docs/tutorial/images/from-messages-method.png b/docs/old-tutorial/images/from-messages-method.png similarity index 100% rename from docs/tutorial/images/from-messages-method.png rename to docs/old-tutorial/images/from-messages-method.png diff --git a/docs/tutorial/images/post-request-chat.png b/docs/old-tutorial/images/post-request-chat.png similarity index 100% rename from docs/tutorial/images/post-request-chat.png rename to docs/old-tutorial/images/post-request-chat.png diff --git a/docs/tutorial/images/stream-response.gif b/docs/old-tutorial/images/stream-response.gif similarity index 100% rename from docs/tutorial/images/stream-response.gif rename to docs/old-tutorial/images/stream-response.gif diff --git a/docs/tutorial/images/test-upload-function.gif b/docs/old-tutorial/images/test-upload-function.gif similarity index 100% rename from docs/tutorial/images/test-upload-function.gif rename to docs/old-tutorial/images/test-upload-function.gif diff --git a/docs/tutorial/images/upload-function.png b/docs/old-tutorial/images/upload-function.png similarity index 100% rename from docs/tutorial/images/upload-function.png rename to docs/old-tutorial/images/upload-function.png diff --git a/docs/tutorial/01-introduction.md b/docs/tutorial/01-introduction.md new file mode 100644 index 0000000..ae82046 --- /dev/null +++ b/docs/tutorial/01-introduction.md @@ -0,0 +1,120 @@ +# Tutorial - Create a Serverless ChatGPT with RAG using LangChain.js and TypeScript + +Welcome to the tutorial _Create a Serverless ChatGPT with RAG using LangChain.js and TypeScript_. + +This tutorial will guide you through creating a serverless a ChatGPT and RAG (Retrieval-Augmented Generation) application using **[LangChain.js](https://js.langchain.com/docs/get_started/introduction)**, **[Azure Functions](https://learn.microsoft.com/azure/azure-functions/)**, **[Azure Cosmos DB for MongoDB vCore](https://learn.microsoft.com/azure/cosmos-db/mongodb/vcore/)**, **[Azure Blob Storage](https://learn.microsoft.com/azure/storage/blobs/)**, and **[Azure Static Web Apps](https://learn.microsoft.com/azure/static-web-apps/)**. + +The chatbot will be able to answer questions based on a set of enterprise documents uploaded from a fictional company called _Contoso Real Estate_. + +The final result of this application can be seen in the following picture: + +![ChatGPT with RAG](../../docs/images/demo.gif) + +Our goal is to provide you with a hands-on experience building a serverless application using Azure Services and LangChain.js. We will guide you explaining each step of the process, from setting up the environment to deploying the application. + +The FrontEnd side of the application will already be provided, so you can focus on the Backend side of the application. + +## Prerequisites + +You can follow this tutorial in two ways: locally or using Codespaces. + +> It is highly recommended to use Codespaces for this tutorial. Codespaces is a cloud-based tool that enables you to run development environments without installing any tools on your computer. This way, you can focus on the development process without worrying about the environment setup. + +### Locally + +If you choose to use a local environment, you will need to install: + +- [Node.js](https://nodejs.org/en/download/) +- [TypeScript](https://www.typescriptlang.org/download) +- [Visual Studio Code](https://code.visualstudio.com/download) +- [Azure Functions Core Tools](https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local?tabs=windows%2Ccsharp%2Cbash) +- [Git](https://git-scm.com/downloads) +- [Azure Developer CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) + +> If you're a Windows user, you'll need to install [PowerShell](https://learn.microsoft.com/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.4), [Git Bash](https://git-scm.com/downloads) or [WSL2](https://learn.microsoft.com/windows/wsl/install) to run the bash commands. + +### Codespaces + +If you decide to continue using **[Codespaces](https://github.com/features/codespaces)**, you can follow the steps described in the `README.md` file at the root of the project. + +> **Note:** If you are using Codespaces, you don't need to install any of the prerequisites mentioned above. Codespaces already has all the necessary tools installed. Codespaces can be used for free for up to 60 hours per month, and this is renewed every month. + +## Project Overview + +Building AI applications can be complex and time-consuming, but using LangChain.js and Azure serverless technologies allows to greatly simplify the process. This application is a chatbot that uses a set of enterprise documents to generate responses to user queries. + +We provide sample data to make this sample ready to try, but feel free to replace it with your own. We use a fictitious company called _Contoso Real Estate_, and the experience allows its customers to ask support questions about the usage of its products. The sample data includes a set of documents that describes its terms of service, privacy policy and a support guide. + +## Understanding the project architecture + +Understanding the development process is extremely important. The project's architecture should be clear and well-defined. The architecture of the project is shown in the following diagram: + +![ChatGPT with RAG](../../docs/images/architecture.drawio.png) + +To understand the architecture of the project, let's break it down into its individual components: + +1. **Web App:** + + - The user interface for the chatbot is a web application built with **[Lit](https://lit.dev/)** (a library for building web components) and hosted on Azure Static Web Apps. It presents a chat interface for users to interact with. + - The code for this component is located in the `packages/webapp` folder. + +2. **Serverless API:** + + - When a user submits a query through the web app, it is sent via HTTP to an API buitl with Azure Functions. + - This API uses LangChain.js to process the query. + - The API handles the logic of ingesting enterprise documents and generating responses to the chat queries. + - The code for this component we will create later in this tutorial. Which will be located in the `packages/api` folder. + +3. **Database:** + + - Text extracted from the documents and the vectors generated by LangChain.js are stored in Azure Cosmos DB for MongoDB vCore + - The database allows for the storage and retrieval of text chunks using vector search, which enables quick and relevant responses based on the user's queries. + +4. **File Storage:** + + - The source documents such as terms of service, privacy policy and support guides for the fictional company Contoso Real Estate are stored in Azure Blob Storage. This is where the PDF documents are uploaded and from where they can be retrieved. + +5. **Azure OpenAI Service:** + - This service is where the AI Model, capable of understanding and generating natural language is hosted. This is used to embed text chunks or generate answers based on the vector search from the database. + +Now let's examine the application flow based on the application architecture image: + +- A user interacts with the chat interface in the web app +- The web app sends the user's query to the Serverless API via HTTP calls +- The Serverless API interacts with Azure OpenAI Service to generate a response, using the data from Azure Cosmos DB for MongoDB vCore. +- If there's a need to reference the original documents, Azure Blob Storage is used to retrieve the PDF documents. +- The generated response is then sent back to the web app and displayed to the user. + +The architecture is based on the RAG (Retrieval-Augmented Generation) standard. This technique combines the ability to retrieve information from a database with the ability to generate text from a language model. We will explain this pattern further throughout the tutorial. + +## Executing the Project + +Now that you understand the project's architecture, let's run it! + +Once you have `forked` and `cloned` the project, use the `starter` branch to continue with the tutorial. The `main` branch contains the finished project if you wish to view it! + +To execute the project, follow these steps: + +1. Install the project dependencies: + +```bash +npm install +``` + +2. To run the project, with only FrontEnd, execute the following command: + +```bash +start:webapp +``` + +> At this point, don't worry about the other scripts in the `package.json` file at the root of the project. They will be used throughout the tutorial. + +3. Open your browser and go to `http://localhost:8000`. The application will be displayed, as shown in the image below: + +![FrontEnd application](./images/application-webapp.png) + +## Next Steps + +In the next section, we will start to create the API using Azure Functions. See you there! + +▶ **[Next Step: Setting Up the Serverless Environment using Azure Functions](./02-setting-up-azure-functions.md)** diff --git a/docs/tutorial/02-setting-up-azure-functions.md b/docs/tutorial/02-setting-up-azure-functions.md new file mode 100644 index 0000000..fc2fa59 --- /dev/null +++ b/docs/tutorial/02-setting-up-azure-functions.md @@ -0,0 +1,3 @@ +# Setting Up the Serverless Environment using Azure Functions + +**todo** diff --git a/docs/tutorial/images/application-webapp.png b/docs/tutorial/images/application-webapp.png new file mode 100644 index 0000000000000000000000000000000000000000..2c17809126ba6b6920b37543676107061fe15744 GIT binary patch literal 66787 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 literal 0 HcmV?d00001