mirror of
https://github.com/kennethreitz/langchain.git
synced 2026-06-05 23:00:18 +00:00
Update Pinecone Upsert method usage (#7358)
Description: Refactor the upsert method in the Pinecone class to allow for additional keyword arguments. This change adds flexibility and extensibility to the method, allowing for future modifications or enhancements. The upsert method now accepts the `**kwargs` parameter, which can be used to pass any additional arguments to the Pinecone index. This change has been made in both the `upsert` method in the `Pinecone` class and the `upsert` method in the `similarity_search_with_score` class method. Falls in line with the usage of the upsert method in [Pinecone-Python-Client](https://github.com/pinecone-io/pinecone-python-client/blob/4640c4cf27b1ab935e76929c46d230dea9fe5506/pinecone/index.py#L73) Issue: [This feature request in Pinecone Repo](https://github.com/pinecone-io/pinecone-python-client/issues/184) Maintainer responsibilities: - General / Misc / if you don't know who to tag: @baskaryan - Memory: @hwchase17 --------- Co-authored-by: kwesi <22204443+yankskwesi@users.noreply.github.com> Co-authored-by: Bagatur <baskaryan@gmail.com> Co-authored-by: Lance Martin <122662504+rlancemartin@users.noreply.github.com>
This commit is contained in:
@@ -94,7 +94,9 @@ class Pinecone(VectorStore):
|
||||
metadata[self._text_key] = text
|
||||
docs.append((ids[i], embedding, metadata))
|
||||
# upsert to Pinecone
|
||||
self._index.upsert(vectors=docs, namespace=namespace, batch_size=batch_size)
|
||||
self._index.upsert(
|
||||
vectors=docs, namespace=namespace, batch_size=batch_size, **kwargs
|
||||
)
|
||||
return ids
|
||||
|
||||
def similarity_search_with_score(
|
||||
@@ -274,6 +276,7 @@ class Pinecone(VectorStore):
|
||||
text_key: str = "text",
|
||||
index_name: Optional[str] = None,
|
||||
namespace: Optional[str] = None,
|
||||
upsert_kwargs: Optional[dict] = None,
|
||||
**kwargs: Any,
|
||||
) -> Pinecone:
|
||||
"""Construct Pinecone wrapper from raw documents.
|
||||
@@ -346,8 +349,9 @@ class Pinecone(VectorStore):
|
||||
to_upsert = zip(ids_batch, embeds, metadata)
|
||||
|
||||
# upsert to Pinecone
|
||||
index.upsert(vectors=list(to_upsert), namespace=namespace)
|
||||
return cls(index, embedding.embed_query, text_key, namespace)
|
||||
_upsert_kwargs = upsert_kwargs or {}
|
||||
index.upsert(vectors=list(to_upsert), namespace=namespace, **_upsert_kwargs)
|
||||
return cls(index, embedding.embed_query, text_key, namespace, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def from_existing_index(
|
||||
|
||||
Reference in New Issue
Block a user