Zack Saadioui
8/26/2024
1
2
bash
pip install llama-index
1
2
3
4
python
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.vector_stores.pinecone import PineconeVectorStore
from llama_index.core import StorageContext
1
2
python
documents = SimpleDirectoryReader('./data').load_data()
1
2
python
storage_context = StorageContext.from_defaults()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
from llama_index.core.retrievers import VectorIndexRetriever, KeywordTableSimpleRetriever from llama_index.core import QueryBundle, BaseRetriever from typing import List class CustomRetriever(BaseRetriever): def __init__(self, vector_retriever, keyword_retriever, mode='AND'): self.vector_retriever = vector_retriever self.keyword_retriever = keyword_retriever self.mode = mode def _retrieve(self, query_bundle: QueryBundle) -> List: vector_nodes = self.vector_retriever.retrieve(query_bundle) keyword_nodes = self.keyword_retriever.retrieve(query_bundle) combined_nodes = self.combine_nodes(vector_nodes, keyword_nodes) return combined_nodes def combine_nodes(self, vector_nodes, keyword_nodes): # Logic to combine nodes based on 'AND'/'OR' logic ...
1
2
3
python
import pinecone
pinecone.create_index(name="my-index", dimension=1536)
1
2
python
pinecone_index.upsert(vectors)
1
2
python
results = pinecone_index.query(vector)
1 2 3 4 5
from llama_index.core.vector_stores import MetadataFilters, ExactMatchFilter filters = MetadataFilters(filters=[ExactMatchFilter(key="author", value="LlamaIndex")]) query_engine = index.as_query_engine(filters=filters)
1 2
Settings.chunk_size = 256 Settings.chunk_overlap = 20
Copyright © Arsturn 2025