File size: 936 Bytes
f114412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from langchain_weaviate import WeaviateVectorStore as LCWeaviate
from lawchatbot.embedding import JinaEmbeddingWrapper
from lawchatbot.config import AppConfig

def initialize_vector_store(client, config: AppConfig) -> LCWeaviate:
    """
    Initialize LangChain Weaviate vector store.

    Args:
        client: A connected Weaviate client.
        config (AppConfig): Configuration object.

    Returns:
        LCWeaviate: LangChain-compatible Weaviate vector store.
    """
    print("📦 Initializing vector store...")

    embedder = JinaEmbeddingWrapper(device="cuda" if hasattr(config, "cuda") and config.cuda else "cpu")

    vectorstore = LCWeaviate(
        client=client,
        index_name=config.weaviate_class,
        text_key=config.text_key,
        attributes=config.metadata_attributes,
        embedding=embedder
    )

    print(f"✅ Vector store ready for class: {config.weaviate_class}")
    return vectorstore