From 383c67c1b259ddd0faada1469abdfa7b04cfe481 Mon Sep 17 00:00:00 2001 From: Hasegawa Yuya <52068175+Hase-U@users.noreply.github.com> Date: Fri, 17 Feb 2023 17:53:16 +0900 Subject: [PATCH] Fix Issue #1100 (#1101) https://github.com/hwchase17/langchain/issues/1100 When faiss data and doc.index are created in past versions, error occurs that say there was no attribute. So I put hasattr in the check as a simple solution. However, increasing the number of such checks is not good for conservatism, so I think there is a better solution. Also, the code for the batch process was left out, so I put it back in. --- langchain/embeddings/openai.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/langchain/embeddings/openai.py b/langchain/embeddings/openai.py index fbf6a1bc..3b8fa555 100644 --- a/langchain/embeddings/openai.py +++ b/langchain/embeddings/openai.py @@ -147,11 +147,13 @@ class OpenAIEmbeddings(BaseModel, Embeddings): texts, engine=self.document_model_name, chunk_size=chunk_size ) else: - responses = [ - self._embedding_func(text, engine=self.document_model_name) - for text in texts - ] - return responses + results = [] + for i in range(0, len(texts), chunk_size): + response = self.client.create( + input=texts[i : i + chunk_size], engine=self.document_model_name + ) + results += [r["embedding"] for r in response["data"]] + return results def embed_query(self, text: str) -> List[float]: """Call out to OpenAI's embedding endpoint for embedding query text.