import faiss
from sentence_transformers import SentenceTransformer
# 1. Load the embedding model
model = SentenceTransformer("all-MiniLM-L6-v2")
# 2. Define sentences
sentences = [
"I love learning machine learning",
"Artificial intelligence is fascinating",
"Python is a popular programming language",
"I enjoy studying deep learning",
"Pizza is my favorite food"
]
# 3. Convert sentences into embeddings
embeddings = model.encode(
sentences,
normalize_embeddings=True
)
# 4. Get embedding dimension
dimension = embeddings.shape[1]
# 5. Create a FAISS index
index = faiss.IndexFlatIP(dimension)
# 6. Add embeddings to the index
index.add(embeddings)
print("Number of vectors in index:", index.ntotal)
# 7. Define a new query sentence
query = "I am interested in artificial intelligence"
# 8. Convert the query into an embedding
query_embedding = model.encode(
[query],
normalize_embeddings=True
)
# 9. Search for the 3 most similar sentences
scores, indices = index.search(query_embedding, k=3)
# 10. Display results
print("\nQuery:", query)
print("\nMost similar sentences:")
for rank, sentence_index in enumerate(indices[0]):
print(
f"{rank + 1}. {sentences[sentence_index]}"
f" | Similarity Score: {scores[0][rank]:.4f}"
)