Spaces:
Sleeping
Sleeping
| from dotenv import load_dotenv | |
| from langchain_text_splitters import RecursiveCharacterTextSplitter | |
| from langchain_community.document_loaders import WebBaseLoader | |
| from langchain_community.vectorstores import Chroma | |
| from langchain_huggingface import HuggingFaceEndpointEmbeddings | |
| load_dotenv() | |
| urls = [ | |
| "https://lilianweng.github.io/posts/2023-06-23-agent/", | |
| "https://lilianweng.github.io/posts/2023-03-15-prompt-engineering/", | |
| "https://lilianweng.github.io/posts/2023-10-25-adv-attack-llm/", | |
| ] | |
| docs = [WebBaseLoader(urls).load() for url in urls] | |
| docs_list = [item for sublist in docs for item in sublist] | |
| text_splitter = RecursiveCharacterTextSplitter() | |
| text_splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder( | |
| chunk_size=800, chunk_overlap=0 | |
| ) | |
| splits = text_splitter.split_documents(docs_list) | |
| #embedding = OllamaEmbeddings(model="nomic-embed-text") | |
| embedding = HuggingFaceEndpointEmbeddings(model="sentence-transformers/all-MiniLM-L6-v2") | |
| vectorstore = Chroma.from_documents( | |
| documents=splits, | |
| collection_name="rag-chroma", | |
| embedding=embedding, | |
| persist_directory="./.chroma" | |
| ) | |
| retriever = Chroma( | |
| collection_name="rag-chroma", | |
| persist_directory="./.chroma", | |
| embedding_function=embedding, | |
| ).as_retriever() | |