iver / README.md
hevold's picture
Update README.md
f600c67 verified
---
license: mit
title: Iver
sdk: gradio
emoji: πŸ“š
colorFrom: blue
colorTo: red
short_description: Verifiseringsspesialisten Iver
sdk_version: 5.23.3
---
# Iver
A Retrieval-Augmented Generation (RAG) based chatbot with excellent Norwegian language support, built using Hugging Face's Inference API.
## Features
- **Norwegian Language Support**: Leverages state-of-the-art Norwegian language models like NorMistral, Viking, and NorskGPT
- **Document Processing**: Upload and process documents in various formats (PDF, TXT, HTML)
- **RAG Implementation**: Retrieves relevant context from documents to generate accurate responses
- **Embeddable Interface**: Easily embed the chatbot in any website using iframe or JavaScript widget
- **Lightweight Architecture**: Uses Hugging Face's Inference API instead of running models locally
## Architecture
This chatbot uses a lightweight architecture that leverages Hugging Face's hosted models:
1. **Document Processing**: Documents are processed locally, extracting text and splitting into chunks
2. **Embedding Generation**: Document chunks are embedded using Hugging Face's Inference API
3. **Retrieval**: When a query is received, the most relevant document chunks are retrieved
4. **Response Generation**: The LLM generates a response based on the retrieved context
## Getting Started
### Prerequisites
- Python 3.10+
- A Hugging Face account (for API access)
### Installation
1. Clone the repository:
```bash
git clone https://huggingface.co/spaces/username/norwegian-rag-chatbot
cd norwegian-rag-chatbot
```
2. Install dependencies:
```bash
pip install -r requirements-ultra-light.txt
```
3. Set up your Hugging Face API key:
```bash
export HF_API_KEY="your_api_key_here"
```
### Running the Chatbot
```bash
python app.py
```
The chatbot will be available at http://localhost:7860
## Usage
### Chat Interface
The main chat interface allows you to:
- Ask questions in Norwegian
- Receive responses based on your uploaded documents
- Adjust temperature and other settings
### Document Upload
You can upload documents to provide context for the chatbot:
- Supported formats: PDF, TXT, HTML
- Documents are automatically processed and indexed
- The chatbot will use these documents to provide more accurate responses
### Embedding
You can embed the chatbot in your website using:
- iFrame embedding
- JavaScript widget
- Direct link
## Deployment
The chatbot is designed to be deployed to Hugging Face Spaces:
1. Create a new Space on Hugging Face
2. Upload the code to the Space
3. Set the HF_API_KEY secret in the Space settings
4. The Space will automatically build and deploy the chatbot
## Models
The chatbot can use various Norwegian language models:
- **NorMistral-7b-scratch**: A large Norwegian language model pretrained from scratch
- **Viking 7B**: A multilingual model for Nordic languages
- **NorskGPT**: A Norwegian language model based on Mistral or LLAMA2
For embeddings, it uses:
- **NbAiLab/nb-sbert-base**: A Norwegian sentence embedding model
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Acknowledgements
- [Hugging Face](https://huggingface.co/) for hosting the models and providing the Inference API
- [Gradio](https://gradio.app/) for the web interface framework
- The creators of the Norwegian language models used in this project