-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathretriever.py
More file actions
35 lines (27 loc) · 1.04 KB
/
Copy pathretriever.py
File metadata and controls
35 lines (27 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from langchain_community.document_loaders import WebBaseLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain_core.tools import create_retriever_tool
from .config import get_embeddings
def ingest_documents(url: list[str]):
loader = WebBaseLoader(url)
docs = loader.load()
text_splitter = RecursiveCharacterTextSplitter(
chunk_size = 1000,
chunk_overlap = 200
)
splits = text_splitter.split_documents(docs)
embeddings = get_embeddings()
vectorstore = FAISS.from_documents(
documents=splits,
embedding=embeddings
)
return vectorstore
def get_retriever_tools(vectorstore):
retriever = vectorstore.as_retriever(search_kwargs={"k": 4})
retriever_tool = create_retriever_tool(
retriever,
"retrieve_document",
"Search and retrieve relevant documents from the knowledge base. Use this when you need external information to answer the question."
)
return retriever_tool