From f2b6f042dc0c85ed0442837e49f8dd7e4a1a693f Mon Sep 17 00:00:00 2001 From: Mark Pors Date: Fri, 28 Apr 2023 11:28:15 +0300 Subject: [PATCH 1/3] Fix for issue #46. All credits to @efraintorlo --- query_data.py | 12 ++++++------ requirements.txt | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/query_data.py b/query_data.py index c0028317f..9e592b1b0 100644 --- a/query_data.py +++ b/query_data.py @@ -1,7 +1,7 @@ """Create a ChatVectorDBChain for question/answering.""" from langchain.callbacks.base import AsyncCallbackManager from langchain.callbacks.tracers import LangChainTracer -from langchain.chains import ChatVectorDBChain +from langchain.chains import ConversationalRetrievalChain from langchain.chains.chat_vector_db.prompts import (CONDENSE_QUESTION_PROMPT, QA_PROMPT) from langchain.chains.llm import LLMChain @@ -12,9 +12,9 @@ def get_chain( vectorstore: VectorStore, question_handler, stream_handler, tracing: bool = False -) -> ChatVectorDBChain: - """Create a ChatVectorDBChain for question/answering.""" - # Construct a ChatVectorDBChain with a streaming llm for combine docs +) -> ConversationalRetrievalChain: + """Create a ConversationalRetrievalChain for question/answering.""" + # Construct a ConversationalRetrievalChain with a streaming llm for combine docs # and a separate, non-streaming llm for question generation manager = AsyncCallbackManager([]) question_manager = AsyncCallbackManager([question_handler]) @@ -45,8 +45,8 @@ def get_chain( streaming_llm, chain_type="stuff", prompt=QA_PROMPT, callback_manager=manager ) - qa = ChatVectorDBChain( - vectorstore=vectorstore, + qa = ConversationalRetrievalChain( + retriever=vectorstore.as_retriever(), combine_docs_chain=doc_chain, question_generator=question_generator, callback_manager=manager, diff --git a/requirements.txt b/requirements.txt index 1b7831d96..91c0f0d76 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,10 +4,11 @@ black isort websockets pydantic -langchain +langchain==0.0.152 uvicorn jinja2 faiss-cpu bs4 unstructured libmagic +tiktoken From 94a6fa798326ce929ce578eb63934fd026e258e2 Mon Sep 17 00:00:00 2001 From: Niraj Desai Date: Sun, 25 Jun 2023 16:45:43 -0700 Subject: [PATCH 2/3] Fix BeautifulSoup feature type error --- ingest.py | 2 +- requirements.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ingest.py b/ingest.py index 148a8a5f4..3c3c49923 100644 --- a/ingest.py +++ b/ingest.py @@ -9,7 +9,7 @@ def ingest_docs(): """Get documents from web pages.""" - loader = ReadTheDocsLoader("langchain.readthedocs.io/en/latest/") + loader = ReadTheDocsLoader("langchain.readthedocs.io/en/latest/", features="lxml") raw_documents = loader.load() text_splitter = RecursiveCharacterTextSplitter( chunk_size=1000, diff --git a/requirements.txt b/requirements.txt index 91c0f0d76..be4053288 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,11 +4,11 @@ black isort websockets pydantic -langchain==0.0.152 +langchain uvicorn jinja2 faiss-cpu -bs4 +beautifulsoup4 unstructured libmagic tiktoken From fcab0921ac658ab7eb31c392b32e36126e0aa632 Mon Sep 17 00:00:00 2001 From: Niraj Desai Date: Sun, 25 Jun 2023 16:49:30 -0700 Subject: [PATCH 3/3] Fix AsyncCallbackManager import --- query_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query_data.py b/query_data.py index 9e592b1b0..59f72aec3 100644 --- a/query_data.py +++ b/query_data.py @@ -1,5 +1,5 @@ """Create a ChatVectorDBChain for question/answering.""" -from langchain.callbacks.base import AsyncCallbackManager +from langchain.callbacks.manager import AsyncCallbackManager from langchain.callbacks.tracers import LangChainTracer from langchain.chains import ConversationalRetrievalChain from langchain.chains.chat_vector_db.prompts import (CONDENSE_QUESTION_PROMPT,