Shreyas094 commited on
Commit
d0d9ee0
·
verified ·
1 Parent(s): e1764cb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -5
app.py CHANGED
@@ -13,6 +13,9 @@ from transformers import pipeline
13
  from langchain.llms import HuggingFaceHub
14
  from langchain.llms import HuggingFaceHub
15
  from langchain_core.retrievers import BaseRetriever
 
 
 
16
 
17
  # Environment variables and configurations
18
  huggingface_token = os.environ.get("HUGGINGFACE_TOKEN")
@@ -33,10 +36,16 @@ def get_web_search_results(query: str, max_results: int = 10) -> List[Dict[str,
33
  print(f"An error occurred during web search: {str(e)}")
34
  return [{"error": f"An error occurred during web search: {str(e)}"}]
35
 
36
- class DuckDuckGoRetriever(BaseRetriever):
37
- def __init__(self, embeddings):
38
- self.embeddings = embeddings
39
- self.vectorstore = FAISS.from_texts(["Initial document"], embeddings)
 
 
 
 
 
 
40
 
41
  def get_relevant_documents(self, query: str) -> List[Document]:
42
  search_results = get_web_search_results(query)
@@ -49,6 +58,9 @@ class DuckDuckGoRetriever(BaseRetriever):
49
  # Perform similarity search to get most relevant documents
50
  return self.vectorstore.similarity_search(query, k=3)
51
 
 
 
 
52
  def setup_retrieval_chain(model_name):
53
  # Set up the language model using HuggingFaceHub
54
  llm = HuggingFaceHub(
@@ -61,7 +73,7 @@ def setup_retrieval_chain(model_name):
61
  embeddings = HuggingFaceEmbeddings()
62
 
63
  # Create the DuckDuckGo retriever
64
- retriever = DuckDuckGoRetriever(embeddings)
65
 
66
  # Set up the memory
67
  memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
 
13
  from langchain.llms import HuggingFaceHub
14
  from langchain.llms import HuggingFaceHub
15
  from langchain_core.retrievers import BaseRetriever
16
+ from pydantic import BaseModel, Field
17
+ from typing import List
18
+ from typing import List, Dict, Any
19
 
20
  # Environment variables and configurations
21
  huggingface_token = os.environ.get("HUGGINGFACE_TOKEN")
 
36
  print(f"An error occurred during web search: {str(e)}")
37
  return [{"error": f"An error occurred during web search: {str(e)}"}]
38
 
39
+ class DuckDuckGoRetriever(BaseRetriever, BaseModel):
40
+ embeddings: Any = Field(description="The embeddings to use for the retriever")
41
+ vectorstore: Any = Field(default_factory=lambda: None, description="The vector store to use for the retriever")
42
+
43
+ class Config:
44
+ arbitrary_types_allowed = True
45
+
46
+ def __init__(self, **data):
47
+ super().__init__(**data)
48
+ self.vectorstore = FAISS.from_texts(["Initial document"], self.embeddings)
49
 
50
  def get_relevant_documents(self, query: str) -> List[Document]:
51
  search_results = get_web_search_results(query)
 
58
  # Perform similarity search to get most relevant documents
59
  return self.vectorstore.similarity_search(query, k=3)
60
 
61
+ async def aget_relevant_documents(self, query: str) -> List[Document]:
62
+ return self.get_relevant_documents(query)
63
+
64
  def setup_retrieval_chain(model_name):
65
  # Set up the language model using HuggingFaceHub
66
  llm = HuggingFaceHub(
 
73
  embeddings = HuggingFaceEmbeddings()
74
 
75
  # Create the DuckDuckGo retriever
76
+ retriever = DuckDuckGoRetriever(embeddings=embeddings)
77
 
78
  # Set up the memory
79
  memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)