{"id":25953558,"url":"https://github.com/abu14/chat-with-website-langchain","last_synced_at":"2025-03-04T15:29:15.661Z","repository":{"id":280518332,"uuid":"941341780","full_name":"abu14/chat-with-website-langchain","owner":"abu14","description":"An interactive chatbot built using LangChain \u0026 deployed on Stramlit.","archived":false,"fork":false,"pushed_at":"2025-03-03T21:47:33.000Z","size":2432,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T22:20:36.104Z","etag":null,"topics":["generative-ai","huggingface","langchain","mistral-ai","streamlit"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abu14.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-02T03:53:51.000Z","updated_at":"2025-03-03T21:47:36.000Z","dependencies_parsed_at":"2025-03-03T22:20:37.451Z","dependency_job_id":"a94a8efe-9c63-476f-82b4-9270b7166f3b","html_url":"https://github.com/abu14/chat-with-website-langchain","commit_stats":null,"previous_names":["abu14/chat-with-website-langchain"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abu14%2Fchat-with-website-langchain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abu14%2Fchat-with-website-langchain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abu14%2Fchat-with-website-langchain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abu14%2Fchat-with-website-langchain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abu14","download_url":"https://codeload.github.com/abu14/chat-with-website-langchain/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241871468,"owners_count":20034470,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["generative-ai","huggingface","langchain","mistral-ai","streamlit"],"created_at":"2025-03-04T15:29:15.143Z","updated_at":"2025-03-04T15:29:15.635Z","avatar_url":"https://github.com/abu14.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WebChat+ - Chat with Websites from URL\n\n\n![GitHub contributors](https://img.shields.io/github/contributors/abu14/chat-with-website-langchain)\n![GitHub forks](https://img.shields.io/github/forks/abu14/chat-with-website-langchain?style=social)\n![GitHub stars](https://img.shields.io/github/stars/abu14/chat-with-website-langchain?style=social)\n![GitHub issues](https://img.shields.io/github/issues/abu14/chat-with-website-langchain)\n![GitHub license](https://img.shields.io/github/license/abu14/chat-with-website-langchain)\n[![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-blue)](https://www.linkedin.com/in/abenezer-tesfaye-191579214/)\n\nWebChat+ is an AI-powered web assistant that I built that allows anyone to interact with and extract meaningful insights from website and it's content. Built using Streamlit, LangChain, and Huggingface, WebChat+ leverages state-of-the-art language model from Mistral (Mistral-7B-Instruct-v0.2) and embeddings to facilitate intelligent conversations based on retrieved website data.\n\n## 🚀 Features\n\n- **Website Content Processing**: Extracts and tokenizes website content for efficient retrieval.\n- **Conversational AI**: Uses a retrieval-augmented generation (RAG) model to answer user queries based on website data.\n- **Hugging Face Integration**: Utilizes models from Hugging Face Hub for intelligent response generation.\n- **Vector Store for Retrieval**: Employs ChromaDB for semantic search and fast document retrieval.\n- **Streamlit UI**: Provides a user-friendly and interactive chat experience.\n- **Real-Time API Status Check**: Displays system and API connection status.\n- **Customizable Settings**: Supports dynamic website input and personalized interaction.\n\n\n## 🛠️ Installation \u0026 Setup\n#### Prerequisites\n\n```\nPython 3.8+\npip\nA Hugging Face API token \n```\n\n#### Clone the Repository\n```\ngit clone https://github.com/abu14/chat-with-website-langchain\ncd WebChat+\n```\n\n#### Requirements\n```\npip install -r requirements.txt\n```\n\n#### Set Up Environment Variables\nCreate a ```.env``` file in the root directory and add your Hugging Face API token:\n```\nHUGGINGFACEHUB_API_TOKEN=your_api_token_here\n```\n\n\n## Tech Stack\n\u003cp\u003e\n\u003cimg src=\"https://img.shields.io/badge/-Python-3776AB?style=flat\u0026logo=python\u0026logoColor=white\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/-Streamlit-FF4B4B?style=flat\u0026logo=streamlit\u0026logoColor=white\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/-LangChain-1E88E5?style=flat\u0026logo=langchain\u0026logoColor=white\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/-Hugging%20Face-FFBF00?style=flat\u0026logo=huggingface\u0026logoColor=white\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/-ChromaDB-009688?style=flat\u0026logo=databricks\u0026logoColor=white\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/-OpenAI-412991?style=flat\u0026logo=openai\u0026logoColor=white\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/-HTML-E34F26?style=flat\u0026logo=html5\u0026logoColor=white\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/-BeautifulSoup-181717?style=flat\u0026logo=python\u0026logoColor=white\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/-Requests-0052CC?style=flat\u0026logo=python\u0026logoColor=white\"\u003e\n\u003c/p\u003e\n\n```\nFrontend: Streamlit\nLanguage Models: Hugging Face Hub (e.g., Mistral-7B-Instruct-v0.2)\nEmbeddings: Hugging Face Embeddings (e.g., sentence-transformers/all-MiniLM-L6-v2)\nVector Store: Chroma\nText Processing: LangChain, BeautifulSoup, RecursiveCharacterTextSplitter\nEnvironment Management: dotenv\n```\n\n## 🔧 Usage\n\n#### Run the Streamlit app\nOnce the application starts, follow these steps:\n```\n1. Enter a website URL in the sidebar.\n2. Wait for content processing to complete.\n3. Ask questions related to the website content.\n```\n\n## 📌 How It Works\n\n- **Content Loading**: Extracts text from the given website URL.\n- **Text Splitting**: Breaks the content into manageable chunks for better retrieval.\n- **Embedding Generation**: Converts text into vector embeddings using Hugging Face models.\n- **Vector Storage \u0026 Retrieval**: Stores the embeddings in ChromaDB for quick semantic search.\n- **Conversational RAG Model**: Uses LangChain to retrieve relevant content and generate responses.\n- **Response Processing**: Filters and cleans responses before displaying them in chat\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/HTML-rag-diagram1.PNG\" alt=\"Project Workflow\" width=\"900\" height=\"400\"\u003e\n\u003c/p\u003e\n\n## 📷 Screenshot\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/webchat_project_v1.3.PNG\" alt=\"Project Workflow\" width=\"900\" height=\"500\"\u003e\n\u003c/p\u003e\n\n\n## 📞 Contact\n\nDeveloped by Abenezer Tesfaye\n\n- GitHub: [abu14](https://github.com/abu14/chat-with-website-langchain)\n- Email: tesfayeabenezer64@gmail.com\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabu14%2Fchat-with-website-langchain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabu14%2Fchat-with-website-langchain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabu14%2Fchat-with-website-langchain/lists"}