add vector_store.py
This commit is contained in:
@@ -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")
|
||||
Reference in New Issue
Block a user