VoyageAI Rerank
If you’re opening this Notebook on colab, you will probably need to install LlamaIndex 🦙.
%pip install llama-index > /dev/null%pip install llama-index-postprocessor-voyageai-rerank > /dev/null%pip install llama-index-embeddings-voyageai > /dev/null
[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m A new release of pip is available: [0m[31;49m23.3.2[0m[39;49m -> [0m[32;49m24.0[0m[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m To update, run: [0m[32;49mpip install --upgrade pip[0mNote: you may need to restart the kernel to use updated packages.
from llama_index.core import VectorStoreIndex, SimpleDirectoryReaderfrom llama_index.core.response.pprint_utils import pprint_response
Download Data
!mkdir -p 'data/paul_graham/'!wget 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txt' -O 'data/paul_graham/paul_graham_essay.txt'
--2024-05-09 17:56:26-- https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txtResolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8003::154, 2606:50c0:8000::154, 2606:50c0:8002::154, ...Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8003::154|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 75042 (73K) [text/plain]Saving to: ‘data/paul_graham/paul_graham_essay.txt’
data/paul_graham/pa 100%[===================>] 73.28K --.-KB/s in 0.009s
2024-05-09 17:56:26 (7.81 MB/s) - ‘data/paul_graham/paul_graham_essay.txt’ saved [75042/75042]
import osfrom llama_index.embeddings.voyageai import VoyageEmbedding
api_key = os.environ["VOYAGE_API_KEY"]voyageai_embeddings = VoyageEmbedding( voyage_api_key=api_key, model_name="voyage-3")
# load documentsdocuments = SimpleDirectoryReader("./data/paul_graham/").load_data()
# build indexindex = VectorStoreIndex.from_documents( documents=documents, embed_model=voyageai_embeddings)
Retrieve top 10 most relevant nodes, then filter with VoyageAI Rerank
Section titled “Retrieve top 10 most relevant nodes, then filter with VoyageAI Rerank”from llama_index.postprocessor.voyageai_rerank import VoyageAIRerank
voyageai_rerank = VoyageAIRerank( api_key=api_key, top_k=2, model="rerank-2", truncation=True)
query_engine = index.as_query_engine( similarity_top_k=10, node_postprocessors=[voyageai_rerank],)response = query_engine.query( "What did Sam Altman do in this essay?",)
pprint_response(response, show_source=True)
Directly retrieve top 2 most similar nodes
Section titled “Directly retrieve top 2 most similar nodes”query_engine = index.as_query_engine( similarity_top_k=2,)response = query_engine.query( "What did Sam Altman do in this essay?",)
Retrieved context is irrelevant and response is hallucinated.
pprint_response(response, show_source=True)