add vector_store.py

This commit is contained in:
2026-05-28 07:30:07 +00:00
parent ade71ad08f
commit 9d36fb2beb
+42
View File
@@ -0,0 +1,42 @@
"""
Vector store initialization using Qdrant in-memory.
The vector store is used by the search tool to perform semantic similarity search.
"""
import os
from pathlib import Path
from langchain_qdrant import QdrantVectorStore
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams
from langchain_openai import OpenAIEmbeddings
# Embedding model compatible with OpenRouter API (used by BroJS LLM)
embeddings = OpenAIEmbeddings(
model="text-embedding-3-small",
base_url="https://openrouter.ai/api/v1",
api_key=os.getenv("OPENAI_API_KEY"),
)
# In-memory Qdrant client no external server required
client = QdrantClient(":memory:")
client.create_collection(
"knowledge",
vectors_config=VectorParams(size=1536, distance=Distance.COSINE),
)
vector_store = QdrantVectorStore(client=client, collection_name="knowledge", embedding=embeddings)
# Helper to add documents used in examples
from langchain_core.documents import Document
def add_documents(docs: list[Document]):
"""Add a list of :class:`~langchain_core.documents.Document` objects to the store."""
vector_store.add_documents(docs)
# Example documents can be extended by users
if __name__ == "__main__":
docs = [
Document(page_content="LangChain is a framework for building applications powered by language models.", metadata={"title": "LangChain Overview"}),
Document(page_content="Qdrant is an open-source vector database that stores embeddings and performs similarity search efficiently.", metadata={"title": "Qdrant Documentation"}),
]
add_documents(docs)
print("Added example documents to Qdrant in-memory store")