Source code for gptcache.embedding.langchain
import numpy as np
from gptcache.embedding.base import BaseEmbedding
from gptcache.utils import import_langchain
import_langchain()
from langchain.embeddings.base import Embeddings # pylint: disable=C0413
[docs]class LangChain(BaseEmbedding):
"""Generate text embedding for given text using LangChain
:param embeddings: the LangChain Embeddings object.
:type embeddings: Embeddings
:param dimension: The vector dimension after embedding is calculated by calling embed once by default.
If you confirm the dimension, you can assign a value to this parameter to reduce this request.
:type dimension: int
Example:
.. code-block:: python
from gptcache.embedding import LangChain
from langchain.embeddings.openai import OpenAIEmbeddings
test_sentence = 'Hello, world.'
embeddings = OpenAIEmbeddings(model="your-embeddings-deployment-name")
encoder = LangChain(embeddings=embeddings)
embed = encoder.to_embeddings(test_sentence)
"""
def __init__(self, embeddings: Embeddings, dimension: int = 0):
self._embeddings: Embeddings = embeddings
self._dimension: int = (
dimension if dimension != 0 else len(self._embeddings.embed_query("foo"))
)
[docs] def to_embeddings(self, data, **kwargs):
vector_data = self._embeddings.embed_query(data)
return np.array(vector_data).astype("float32")
@property
def dimension(self) -> int:
return self._dimension