from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_permit.retrievers import PermitSelfQueryRetriever
# Step 1: Create / load some documents and build a vector store
docs = [...]
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(docs, embeddings)
# Step 2: Initialize the retriever
retriever = PermitSelfQueryRetriever(
api_key="...",
pdp_url="...",
user={"key": "user-123"},
resource_type="document",
action="read",
llm=..., # Typically a ChatOpenAI or other LLM
vectorstore=vectorstore,
enable_limit=True, # optional
)
# Step 3: Query
query = "Give me docs about cats"
results = retriever.get_relevant_documents(query)
for doc in results:
print(doc.metadata.get("id"), doc.page_content)