Skip to content

Commit

Permalink
Update documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
TilmanGriesel committed Feb 1, 2025
1 parent 1bae97c commit b667bac
Show file tree
Hide file tree
Showing 12 changed files with 219 additions and 180 deletions.
59 changes: 42 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,28 @@
<a href="https://github.com/tilmangriesel/chipper/issues"><img src="https://img.shields.io/github/issues/tilmangriesel/chipper?colorA=1F2229&colorB=ffffff&style=for-the-badge"></a><a href="https://hub.docker.com/repository/docker/griesel/chipper"><img src="https://img.shields.io/docker/pulls/griesel/chipper?colorA=1F2229&colorB=ffffff&style=for-the-badge"></a>
</p>

**Chipper** gives you a web interface, CLI, and a hackable, simple architecture for embedding pipelines, document chunking, web scraping, and query workflows. Built with **Haystack**, **Ollama**, **Hugging Face**, **Docker**, **Tailwind**, and **ElasticSearch**, it runs locally or scales as a Dockerized service.
**Chipper** provides a web interface, CLI, and a modular, hackable architecture for embedding pipelines, document chunking, web scraping, and query workflows. Built with **Haystack**, **Ollama**, **Hugging Face**, **Docker**, **TailwindCSS**, and **ElasticSearch**, it runs locally or scales seamlessly as a Dockerized service.

This project started as a way to help my girlfriend with her new book. The idea was to use local RAG and LLMs to ask questions about characters and explore creative possibilities, all without sharing proprietary details or your own book with cloud services like ChatGPT. What began as a bunch of scripts is now growing into a fully dockerized service architecture.
This project started as a personal tool to help my girlfriend with her book, using local RAG and LLMs to explore characters and creative ideas without exposing proprietary content to cloud services like ChatGPT. What began as a collection of scripts has evolved into a fully dockerized, extensible service architecture I wanted to share with the world.

If you **like what you see, leaving a star would be sweet** and will help more people discover Chipper!
If you find Chipper useful, **dropping a star would be lovely** and will help others discover Chipper too.

Check out the **live demo**: https://demo.chipper.tilmangriesel.com/
**Live Demo:** [https://demo.chipper.tilmangriesel.com/](https://demo.chipper.tilmangriesel.com/)

## Features
## Features

- Local [Ollama](https://ollama.com/) and [hosted Hugging Face API](https://huggingface.co/)
- Build a powerful knowledge base using ElasticSearch embeddings.
- Automatically split documents via Haystack.
- Scrape content from web sources.
- Transcribe audio files into text.
- Access via a user-friendly CLI or web client interface.
- Deploy effortlessly using Docker.
- **Local & Cloud Model Support** – Run models locally with [Ollama](https://ollama.com/) or access hosted models via the [Hugging Face API](https://huggingface.co/).
- **ElasticSearch Embeddings** – Store and retrieve vectorized data efficiently for building a scalable knowledge base.
- **Document Processing** – Automatically split documents into manageable chunks using Haystack for optimized retrieval.
- **Web Scraping** – Extract and index content from web sources for enhanced data ingestion.
- **Audio Transcription** – Convert audio files to text for further processing and indexing.
- **CLI & Web Client** – Access via a command-line interface or a lightweight, framework-free web UI.
- **Docker Deployment** – Run in a containerized environment with minimal setup.
- **Customizable RAG Pipelines** – Override model selection, query parameters, system prompts and more.
- **Full Ollama API Reflection** – Use Chipper as a drop-in service to extend Ollama with RAG capabilities, enabling enhanced retrieval and contextual responses for all Ollama clients.
- **API Proxy & Security** – Reflect and proxy the Ollama API with API key route protection.
- **Offline-Capable Web UI** – Built with vanilla JavaScript and TailwindCSS, including all resources for offline use.
- **Daisy-Chaining** – Connect multiple Chipper instances for extended processing and distributed workloads.

## Installation and Setup

Expand All @@ -38,9 +43,31 @@ This project wants to be more than just a technical foundation, for educators, i

Feel free to improve, fork, copy, share or expand this project. Contributions are always very welcome!

## Demo
## Demos
### Web Interface
Leverage the built-in Chipper web interface for an easy entry into customizable RAG pipelines and tailored output. Written in vanilla JavaScript, it requires no specific framework experience. The interface is built with TailwindCSS and includes all resources offline. Use the `/help` command learn how to switch models, update the embeddings index and more.

<p align="center"><img src="https://raw.githubusercontent.com/TilmanGriesel/chipper/refs/heads/main/docs/public/assets/chipper_demo_01.gif"alt="Chipper RAG Util Demo Browser"/></p>
<p align="center"><img src="https://raw.githubusercontent.com/TilmanGriesel/chipper/refs/heads/main/docs/public//assets/demos/demo_rag_chat.gif" alt="chipper_demo_chat"/></p>

### Code Output
Automatic syntax highlighting for popular programming languages in the web interface.

<p align="center"><img src="https://raw.githubusercontent.com/TilmanGriesel/chipper/refs/heads/main/docs/public//assets/demos/demo_rag_chat_code.gif" alt="chipper_demo_code_gen"/></p>

### Reasoning
For models like DeepSeek-R1, Chipper suppresses the "think" output in the UI while preserving the reasoning steps in the console output.

<p align="center"><img src="https://raw.githubusercontent.com/TilmanGriesel/chipper/refs/heads/main/docs/public//assets/demos/demo_rag_chat_ds.gif" alt="chipper_demo_deepseek"/></p>

### CLI Interface
Full support for the Ollama CLI and API, including reflection and proxy capabilities, with API key route decorations.

<p align="center"><img src="https://raw.githubusercontent.com/TilmanGriesel/chipper/refs/heads/main/docs/public//assets/demos/demo_rag_chat_cli.gif" alt="chipper_demo_ollama_cli"/></p>

### Third-Party Client And More
Enhance every third-party Ollama client with server-side knowledge base embeddings, allowing server side model selection, query parameters, and system prompt overrides. Enable RAG for any Ollama client or use Chipper as a centralized knowledge base. Chipper also supports daisy chaining.

<p align="center"><img src="https://raw.githubusercontent.com/TilmanGriesel/chipper/refs/heads/main/docs/public//assets/demos/demo_rag_chat_ollamac.gif" alt="chipper_demo_ollamac"/></p>

## Roadmap

Expand All @@ -58,11 +85,9 @@ Feel free to improve, fork, copy, share or expand this project. Contributions ar

#### Todo

- [ ] **Support server side `think` Tag Filtering (DeepSeek R1)**
- [ ] **Support Ollama Generate API**
- [ ] **Automated Unit Tests**
- [ ] **React-Based Web Application**
- [ ] **Smart Document Chunking and Embedding**
- [ ] **React-Based Web Application**

---

Expand Down
56 changes: 37 additions & 19 deletions docs/demo.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
---
outline: deep
---

# Chipper in Action 🎬

Experience Chipper live right here! Please note that the demo's functionality is subject to limitations. It utilizes the **Hugging Face serverless inference API**, which operates under strict quotas and rate limits. Each user is allowed up to **8 prompts per day**. The embedded documents are the chipper test data.

## Live Demo

**Maybe you ask Chipper now:**

```plain
Expand All @@ -23,16 +29,44 @@ This demo **is limited by the free resources** available from Hugging Face and m

Additionally, the serverless inference API may sometimes queue your request, leading to delays. During this period, you’ll see the "**Chipper is thinking...**" message. Keep in mind that the performance of Hugging Face inference in this demo may vary and does **not represent the experience of a self-hosted setup**.

## Demos

### Web Interface
Leverage the built-in Chipper web interface for an easy entry into customizable RAG pipelines and tailored output. Written in vanilla JavaScript, it requires no specific framework experience. The interface is built with TailwindCSS and includes all resources offline. Use the `/help` command learn how to switch models, update the embeddings index and more.

![chipper_demo_chat](/assets/demos/demo_rag_chat.gif)

### Code Output
Automatic syntax highlighting for popular programming languages in the web interface.

![chipper_demo_code_gen](/assets/demos/demo_rag_chat_code.gif)

### Reasoning
For models like DeepSeek-R1, Chipper suppresses the "think" output in the UI while preserving the reasoning steps in the console output.

![chipper_demo_deepseek](/assets/demos/demo_rag_chat_ds.gif)

### CLI Interface
Full support for the Ollama CLI and API, including reflection and proxy capabilities, with API key route decorations.

![chipper_demo_ollama_cli](/assets/demos/demo_rag_chat_cli.gif)

### Third-Party Client And More
Enhance every third-party Ollama client with server-side knowledge base embeddings, allowing server side model selection, query parameters, and system prompt overrides. Enable RAG for any Ollama client or use Chipper as a centralized knowledge base. Chipper also supports daisy chaining.

![chipper_demo_ollamac](/assets/demos/demo_rag_chat_ollamac.gif)


### Experimentation 🧪

Since Chipper uses embeddings, you can ask him about his adventures based on the [embedded stories](https://github.com/TilmanGriesel/chipper/tree/main/tools/embed/testdata/md/internal).

### Models Used
### Live-Demo Setup

- **Inference**: [meta-llama/Meta-Llama-3-8B-Instruct](https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct)
- **Embedding**: [sentence-transformers/all-mpnet-base-v2](https://huggingface.co/sentence-transformers/all-mpnet-base-v2)

### Demo Server Specs
#### Server Specs

The demo operates on a **Scaleway Stardust 1** instance, utilizing the latest Chipper stack along with Elasticsearch from Docker Hub, powered by the **Hugging Face** provider.

Expand All @@ -45,23 +79,7 @@ The demo operates on a **Scaleway Stardust 1** instance, utilizing the latest Ch

[More about the stardust instance](https://www.scaleway.com/en/docs/compute/instances/reference-content/instances-datasheet/#stardust1-instances)

## Screenshots and GIFs

:::info
Soon, a more in-depth demo of Chipper will be available here. In the meantime, I’ve prepared some preliminary screen recordings for you to check out!
:::

### Web Interface

![chipper_demo](/assets/chipper_demo_01.gif)

### CLI Interface

![chipper_demo](/assets/demo_cli_01.gif)

#### Setup

![chipper_demo](/assets/chipper_setup_demo_01.gif)
---

::: info
This section is still under construction.
Expand Down
File renamed without changes
File renamed without changes
Binary file added docs/public/assets/demos/demo_rag_chat.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/public/assets/demos/demo_rag_chat_cli.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/public/assets/demos/demo_rag_chat_code.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/public/assets/demos/demo_rag_chat_ds.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"autoprefixer": "^10.4.20",
"postcss": "^8.5.1",
"tailwindcss": "^3.4.17",
"vitepress": "^1.5.0"
"vitepress": "^1.6.3"
},
"packageManager": "[email protected]+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e",
"scripts": {
Expand Down
Loading

0 comments on commit b667bac

Please sign in to comment.