Skip to content

Commit a588739

Browse files
authored
switch to partner lib for weaviate (#352)
1 parent 23463ad commit a588739

File tree

4 files changed

+401
-233
lines changed

4 files changed

+401
-233
lines changed

backend/graph.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import weaviate
55
from langchain_anthropic import ChatAnthropic
66
from langchain_cohere import ChatCohere
7-
from langchain_community.vectorstores import Weaviate
87
from langchain_core.documents import Document
98
from langchain_core.language_models import LanguageModelLike
109
from langchain_core.messages import (
@@ -24,6 +23,7 @@
2423
from langchain_google_genai import ChatGoogleGenerativeAI
2524
from langchain_groq import ChatGroq
2625
from langchain_openai import ChatOpenAI
26+
from langchain_weaviate import WeaviateVectorStore
2727
from langgraph.graph import END, StateGraph, add_messages
2828

2929
from backend.constants import WEAVIATE_DOCS_INDEX_NAME
@@ -184,18 +184,18 @@ class AgentState(TypedDict):
184184

185185

186186
def get_retriever() -> BaseRetriever:
187-
weaviate_client = weaviate.Client(
188-
url=os.environ["WEAVIATE_URL"],
189-
auth_client_secret=weaviate.AuthApiKey(
190-
api_key=os.environ.get("WEAVIATE_API_KEY", "not_provided")
187+
weaviate_client = weaviate.connect_to_wcs(
188+
cluster_url=os.environ["WEAVIATE_URL"],
189+
auth_credentials=weaviate.classes.init.Auth.api_key(
190+
os.environ.get("WEAVIATE_API_KEY", "not_provided")
191191
),
192+
skip_init_checks=True,
192193
)
193-
weaviate_client = Weaviate(
194+
weaviate_client = WeaviateVectorStore(
194195
client=weaviate_client,
195196
index_name=WEAVIATE_DOCS_INDEX_NAME,
196197
text_key="text",
197198
embedding=get_embeddings_model(),
198-
by_text=False,
199199
attributes=["source", "title"],
200200
)
201201
return weaviate_client.as_retriever(search_kwargs=dict(k=6))

backend/ingest.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
from langchain.indexes import SQLRecordManager, index
1010
from langchain.text_splitter import RecursiveCharacterTextSplitter
1111
from langchain.utils.html import PREFIXES_TO_IGNORE_REGEX, SUFFIXES_TO_IGNORE_REGEX
12-
from langchain_community.vectorstores import Weaviate
1312
from langchain_core.embeddings import Embeddings
1413
from langchain_openai import OpenAIEmbeddings
14+
from langchain_weaviate import WeaviateVectorStore
1515

1616
from backend.constants import WEAVIATE_DOCS_INDEX_NAME
1717
from backend.parser import langchain_docs_extractor
@@ -103,16 +103,16 @@ def ingest_docs():
103103
text_splitter = RecursiveCharacterTextSplitter(chunk_size=4000, chunk_overlap=200)
104104
embedding = get_embeddings_model()
105105

106-
client = weaviate.Client(
107-
url=WEAVIATE_URL,
108-
auth_client_secret=weaviate.AuthApiKey(api_key=WEAVIATE_API_KEY),
106+
client = weaviate.connect_to_wcs(
107+
cluster_url=WEAVIATE_URL,
108+
auth_credentials=weaviate.classes.init.Auth.api_key(WEAVIATE_API_KEY),
109+
skip_init_checks=True,
109110
)
110-
vectorstore = Weaviate(
111+
vectorstore = WeaviateVectorStore(
111112
client=client,
112113
index_name=WEAVIATE_DOCS_INDEX_NAME,
113114
text_key="text",
114115
embedding=embedding,
115-
by_text=False,
116116
attributes=["source", "title"],
117117
)
118118

@@ -152,7 +152,11 @@ def ingest_docs():
152152
)
153153

154154
logger.info(f"Indexing stats: {indexing_stats}")
155-
num_vecs = client.query.aggregate(WEAVIATE_DOCS_INDEX_NAME).with_meta_count().do()
155+
num_vecs = (
156+
client.collections.get(WEAVIATE_DOCS_INDEX_NAME)
157+
.aggregate.over_all()
158+
.total_count
159+
)
156160
logger.info(
157161
f"LangChain now has this many vectors: {num_vecs}",
158162
)

0 commit comments

Comments
 (0)