diff --git a/README.md b/README.md index 97dad95..eedc824 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- + Unwind AI

diff --git a/docs/banner/unwind.png b/docs/banner/unwind.png index ef9f06a..d1836e5 100644 Binary files a/docs/banner/unwind.png and b/docs/banner/unwind.png differ diff --git a/llama3_local_rag/README.md b/llama3_local_rag/README.md deleted file mode 100644 index 2fead61..0000000 --- a/llama3_local_rag/README.md +++ /dev/null @@ -1,34 +0,0 @@ -## 💻 Local Lllama-3 with RAG -Streamlit app that allows you to chat with any webpage using local Llama-3 and Retrieval Augmented Generation (RAG). This app runs entirely on your computer, making it 100% free and without the need for an internet connection. - - -### Features -- Input a webpage URL -- Ask questions about the content of the webpage -- Get accurate answers using RAG and the Llama-3 model running locally on your computer - -### How to get Started? - -1. Clone the GitHub repository - -```bash -git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git -``` -2. Install the required dependencies: - -```bash -pip install -r requirements.txt -``` -3. Run the Streamlit App -```bash -streamlit run llama3_local_rag.py -``` - -### How it Works? - -- The app loads the webpage data using WebBaseLoader and splits it into chunks using RecursiveCharacterTextSplitter. -- It creates Ollama embeddings and a vector store using Chroma. -- The app sets up a RAG (Retrieval-Augmented Generation) chain, which retrieves relevant documents based on the user's question. -- The Llama-3 model is called to generate an answer using the retrieved context. -- The app displays the answer to the user's question. - diff --git a/llama3_local_rag/llama3_local_rag.py b/llama3_local_rag/llama3_local_rag.py deleted file mode 100644 index 6ae0e64..0000000 --- a/llama3_local_rag/llama3_local_rag.py +++ /dev/null @@ -1,50 +0,0 @@ -import streamlit as st -import ollama -from langchain.text_splitter import RecursiveCharacterTextSplitter -from langchain_community.document_loaders import WebBaseLoader -from langchain_community.vectorstores import Chroma -from langchain_community.embeddings import OllamaEmbeddings - -st.title("Chat with Webpage 🌐") -st.caption("This app allows you to chat with a webpage using local llama3 and RAG") - -# Get the webpage URL from the user -webpage_url = st.text_input("Enter Webpage URL", type="default") - -if webpage_url: - # 1. Load the data - loader = WebBaseLoader(webpage_url) - docs = loader.load() - text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=10) - splits = text_splitter.split_documents(docs) - - # 2. Create Ollama embeddings and vector store - embeddings = OllamaEmbeddings(model="llama3") - vectorstore = Chroma.from_documents(documents=splits, embedding=embeddings) - - # 3. Call Ollama Llama3 model - def ollama_llm(question, context): - formatted_prompt = f"Question: {question}\n\nContext: {context}" - response = ollama.chat(model='llama3', messages=[{'role': 'user', 'content': formatted_prompt}]) - return response['message']['content'] - - # 4. RAG Setup - retriever = vectorstore.as_retriever() - - def combine_docs(docs): - return "\n\n".join(doc.page_content for doc in docs) - - def rag_chain(question): - retrieved_docs = retriever.invoke(question) - formatted_context = combine_docs(retrieved_docs) - return ollama_llm(question, formatted_context) - - st.success(f"Loaded {webpage_url} successfully!") - - # Ask a question about the webpage - prompt = st.text_input("Ask any question about the webpage") - - # Chat with the webpage - if prompt: - result = rag_chain(prompt) - st.write(result) \ No newline at end of file diff --git a/llama3_local_rag/requirements.txt b/llama3_local_rag/requirements.txt deleted file mode 100644 index 2824430..0000000 --- a/llama3_local_rag/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -streamlit -ollama -langchain -langchain_community \ No newline at end of file