diff --git a/docs/genai/01_getting_started/01_intro.mdx b/docs/genai/01_getting_started/01_intro.mdx
index 12aaf3136c..57a1b4940a 100644
--- a/docs/genai/01_getting_started/01_intro.mdx
+++ b/docs/genai/01_getting_started/01_intro.mdx
@@ -7,7 +7,6 @@ If you're looking to harness Generative AI for administrative or classroom use,
Welcome to Pythia, the generative AI platform for research workflows. As part of the Pythia platform, the following capabilities are offered:
- [Access to externally hosted LLMs](../02_external_llms/01_llm_access.mdx)
- [HPC resources for fine tuning LLMs](../03_llm_fine_tuning/01_intro.md)
-- [Milvus vector database](../04_vector_databases/01_intro.md)
:::tip[Personal use]
If you want to access NYU provided LLMs for personal use, proceed to https://gemini.google.com/app with your NYU credentials.
diff --git a/docs/genai/02_external_llms/02_catalogue.md b/docs/genai/02_external_llms/02_catalogue.md
index 56d4a59507..4b87220e98 100644
--- a/docs/genai/02_external_llms/02_catalogue.md
+++ b/docs/genai/02_external_llms/02_catalogue.md
@@ -10,7 +10,7 @@ We currently facilitate access to the following externally hosted LLMs:
- text-embedding-3-small
## VertexAI
-- Gemini-2.5-flash-preview-04-17
+- gemini-2.5-flash-preview-05-20
- Gemini-2.0 models (flash, flash-lite)
- Gemini-1.5 models (flash, pro) (deprecated)
diff --git a/docs/genai/05_how_to_guides/01_temperature.md b/docs/genai/04_how_to_guides/01_temperature.md
similarity index 98%
rename from docs/genai/05_how_to_guides/01_temperature.md
rename to docs/genai/04_how_to_guides/01_temperature.md
index b4fc8a97bb..7db07eb963 100644
--- a/docs/genai/05_how_to_guides/01_temperature.md
+++ b/docs/genai/04_how_to_guides/01_temperature.md
@@ -1,4 +1,4 @@
-# Temperature
+# Effect of Temperature
Generating text (or images) from LLMs is inherently probabilistic. However, as an end user you have many parameters at your disposal to tweak the behavior of LLMs. Of these, temperature is the most commonly used. Broadly, it controls the randomness of the generated text. A lower temperature produces more deterministic outputs, while a higher temperature produces more random "creative" output. For a more comprehensive explanation on this topic, refer to the following:
- [How to generate text: using different decoding methods for language generation with Transformers](https://huggingface.co/blog/how-to-generate)
diff --git a/docs/genai/04_how_to_guides/02_embeddings.mdx b/docs/genai/04_how_to_guides/02_embeddings.mdx
new file mode 100644
index 0000000000..b833d950d7
--- /dev/null
+++ b/docs/genai/04_how_to_guides/02_embeddings.mdx
@@ -0,0 +1,48 @@
+# Embeddings
+
+While Decoder-only LLMs gained massive popularity via their usage in chatbots, Encoder-only LLMs can be used for a wider variety of tasks. Decoder-only LLMs "generate" tokens ("text") one at a time probabalisticsally. Encoder-only LLMs on the other hand take text as their input, tokenize it and generate "embeddings" as their output. Here, we shall walk through a task of generating embeddings from a text document.
+
+```mermaid
+flowchart LR;
+ A["natual language text string
*GenAI can be used for research*"]
+ B["encoder-only LLM"]
+ C["vector embedding
[0.052587852, 0.094195396, 0.24439038, 0.104940414, ...]"]
+ A-- "Input" -->B;
+ B-- "Output" -->C;
+```
+
+## How to generate embeddings from plain text:
+
+The snippet below uses the `text-embedding-3-small` model to create 32-dimensional floating point vector embeddings for the input string:
+
+```python
+from portkey_ai import Portkey
+
+portkey = Portkey(
+ base_url="https://ai-gateway.apps.cloud.rt.nyu.edu/v1/",
+ api_key="", # Replace with your Portkey API key
+ virtual_key="", # Replace with your virtual key
+)
+
+response = portkey.embeddings.create(
+ model="text-embedding-3-small",
+ input="GenAI can be used for research.",
+ encoding_format="float",
+ dimensions=32,
+)
+
+print(response["data"][0].embedding)
+```
+
+and gives the following response:
+```
+[0.052587852, 0.094195396, 0.24439038, 0.104940414, -0.028921358, -0.31591928, -0.1846261, 0.221018, 0.033215445, -0.1382735, -0.14776362, -0.15058714, 0.057725072, -0.23435123, 0.07956805, -0.32156628, -0.08454841, 0.04066637, -0.022215525, 0.19090058, -0.11160703, 0.22258662, -0.06843088, -0.22854735, 0.1033718, -0.38085997, 0.2933312, -0.023215517, 0.20768477, -0.039333045, 0.17192031, -0.14180289]
+```
+
+## Applications of embeddings
+
+Embeddings have the ability to encode the semantic meaning of the text. Thus, they find applications in:
+- retrieval-augmented generation
+- search
+- classification
+among others
diff --git a/docs/genai/04_how_to_guides/03_retrieval_augmented_generation.mdx b/docs/genai/04_how_to_guides/03_retrieval_augmented_generation.mdx
new file mode 100644
index 0000000000..f6aacad83b
--- /dev/null
+++ b/docs/genai/04_how_to_guides/03_retrieval_augmented_generation.mdx
@@ -0,0 +1,76 @@
+# Retrieval-augmented generation
+
+Large Language Models only know about the data they were trained upon and do not have the context needed to be effective at answering questions based on:
+- private datasets
+- newer knowledge past the cutoff date (i.e. the date at which data collection was frozen)
+
+To get around this issue, one of the most popular techniques is Retrieval-augmented generation, the most basic version of which is outlined below:
+
+```mermaid
+flowchart TB;
+ A["Documents to use in RAG pipeline"]
+ B@{shape: docs, label: "Document parsed and divided into multiple chunks"}
+ C["encoder-only LLM"]
+ D@{shape: procs, label: "text chunk embedding"}
+ E[("vector database")]
+ F["natual language prompt"]
+ G["query embedding"]
+ I["relevant chunks"]
+ J["original prompt with added context"]
+ K["relevant response from LLM using context"]
+ subgraph Ingestion
+ A-- "Parse and Chunk" -->B;
+ end
+ subgraph Embeddings
+ B-- "Pass to embedding model" -->C;
+ C-- "Generate Embeddings" -->D;
+ D-- "Store Emebddings" -->E;
+ end
+ subgraph Retrieval
+ F-- "Pass to embedding model" -->C;
+ C-- "Generate Emebddings" -->G;
+ G-- "Query vector database" -->E;
+ E-- "Gather text chunks with embeddings similar to prompt" -->I;
+ end
+ I-- "With expanded prompt" -->J;
+ subgraph Augmented Generation
+ J-- "LLM" -->K;
+ end
+```
+
+It starts with the "Ingestion" phase where a document to be used as context is parsed and broken into chunks. These chunks are then converted to embeddings and stored in a vector database (which specializes in storing and retrieving vectors). This setup allows us now "retrieve" the required context for an incoming prompt before it is sent to an LLM. The "retrieval" phase consists of converting the prompt to an embedding and looking up embeddings for chunks of the document that are similar to it. The text chunks associated with the embeddings similar to the embedding for the query are then added as additional context to the prompt before passing it to an LLM.
+The LLM now has the associated context it needs to generate an relevant response to the prompt.
+
+Here's a script to test this out yourself, once you have API access to an embedding model and an LLM: https://github.com/NYU-RTS/rts-docs-examples/tree/main/genai/rag . You can run it to ask a question about a recent event that occurred after the knowledge cutoff for the dataset used to train the LLM:
+```sh
+ss19980@ITS-JQKQGQQMTX ~/D/p/r/g/rag (main)> uv run rag_basic.py \
+ https://en.wikipedia.org/wiki/2025_London_Marathon \
+ "Which athletes won the 2025 London Marathon?"
+...
+Processing chunks: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 44/44 [00:13<00:00, 3.22it/s]
+----------------------------------------------------------------
+Query embedding vector (first 5 dims) is: [-0.013783585280179977, 0.022411219775676727, -0.018617955967783928, -0.04355597868561745, -0.009368936531245708]
+----------------------------------------------------------------
+Retrieved chunks and similarity scores:
+
+('The 2025 London Marathon was the 45th running of the London Marathon; it took place on 27 April 2025.[1][2]', 0.8441829085350037)
+('1. ^ Martin, Andy (26 April 2025). "London Marathon 2025: route, runners and everything else you need to know". The Guardian. Retrieved 26 April 2025.\n2. ^ Poole, Harry (26 April 2025). "Will \'greatest\' London Marathon line-ups break records?". BBC News. Retrieved 26 April 2025.\n3. ^ a b c d "2025 London Marathon results". NBC Sports. 27 April 2025. Retrieved 27 April 2025.', 0.837587296962738)
+('Venue, 45th London Marathon = London, England. Date, 45th London Marathon = 27 April 2025. Champions, 45th London Marathon = Champions. Men, 45th London Marathon = Sabastian Sawe (2:02:27). Women, 45th London Marathon = Tigst Assefa (2:15:50). Wheelchair men, 45th London Marathon = Marcel Hug (1:25:25). Wheelchair women, 45th London Marathon = Catherine Debrunner (1:34:18). ←\xa020242026\xa0→, 45th London Marathon = ←\xa020242026\xa0→', 0.8032743334770203)
+----------------------------------------------------------------
+Generated response from LLM without additional context is:
+
+The 2025 London Marathon has not happened yet!
+
+The event typically takes place in **April** each year. We will only know the winners after the race takes place in April 2025.
+---------------------------------------------------------------
+Generated response from LLM with additional context is:
+
+The athletes who won the 2025 London Marathon are:
+
+* **Men:** Sabastian Sawe
+* **Women:** Tigst Assefa
+* **Wheelchair men:** Marcel Hug
+* **Wheelchair women:** Catherine Debrunner
+E20250611 14:32:54.595919 362220 server.cpp:47] [SERVER][BlockLock][] Process exit
+ss19980@ITS-JQKQGQQMTX ~/D/p/r/g/rag (main)>
+```
diff --git a/docs/genai/05_how_to_guides/_category_.json b/docs/genai/04_how_to_guides/_category_.json
similarity index 100%
rename from docs/genai/05_how_to_guides/_category_.json
rename to docs/genai/04_how_to_guides/_category_.json
diff --git a/docs/genai/04_vector_databases/01_intro.md b/docs/genai/04_vector_databases/01_intro.md
deleted file mode 100644
index 1e3d5d47d1..0000000000
--- a/docs/genai/04_vector_databases/01_intro.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Vector Databases
-
-What is it? How is it different from a regular database?
diff --git a/docs/genai/04_vector_databases/_category_.json b/docs/genai/04_vector_databases/_category_.json
deleted file mode 100644
index 81514c64bb..0000000000
--- a/docs/genai/04_vector_databases/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Vector Databases"
-}