Skip to content

Commit

Permalink
Add Readme description with images
Browse files Browse the repository at this point in the history
  • Loading branch information
Florian Jud committed May 12, 2024
1 parent b42be86 commit b099b69
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 10 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -151,3 +151,4 @@ cython_debug/
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
/vector_db
.DS_Store
48 changes: 39 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
# DocsChat 📚🗣️

This repository contains code for a chatbot application that allows users to interact with documents using conversational queries.

`docchat` is a command-line interface that let's you start a local streamlit server and interact with your documents.

The chatbot utilizes a conversational retrieval chain to answer user queries based on the content of embedded documents. It leverages various NLP techniques, including language models and embeddings, to provide relevant responses.

## Features

- **Document Embedding:** Embeds PDF documents for efficient retrieval of information.
- **Conversational Interface:** Allows users to interact with documents through a chat interface.
- **Settings:** Provides customizable settings for configuring document retrieval and model parameters.

## Installation

To run the application locally, follow these steps for installation.
Expand All @@ -12,14 +18,19 @@ To run the application locally, follow these steps for installation.
pip install DocChat
```

Start the Ollama server:
Pulll Ollama llm:

```bash
ollama pull llama3
ollama pull llama2
ollama pull gemma
ollama pull mistral
ollama pull codellama
```

Start the Ollama server:

```bash
ollama run llama3
```

Expand All @@ -29,12 +40,31 @@ Run the application:
docchat
```

## Overview
## Configure

The chatbot utilizes a conversational retrieval chain to answer user queries based on the content of embedded documents. It leverages various NLP techniques, including language models and embeddings, to provide relevant responses.
![DocChat](assets/docchat.png)

## Features
### PDF sources

- **Document Embedding:** Embeds PDF documents for efficient retrieval of information.
- **Conversational Interface:** Allows users to interact with documents through a chat interface.
- **Settings:** Provides customizable settings for configuring document retrieval and model parameters.
- Configure the PDF source directory from which all PDFs should be read in recusively.
- Select a splitter, this has an influence on the chunks that we will make available to the LLM and thus also on the answers. By default no splitter is selected, this means a larger context.

### Vector store

![Vector store](assets/vectorestore.png)

- Chroma DB in memory is used as a vector store, which stores the data in a Persit directory, so the data in the DB is also available after the restart.
- The Retriever search type has and the various parameters influence the search of documents in the Vectore Store.

### Ollama

![Ollama](assets/ollama.png)

- Configure the ollama server connection and the model with which the server was started.
- the LLM parameters influence the embedding of the PDFs but also the answering of questions in the RAG pipeline.

## Actions

![Actions](assets/actions.png)

There are two functions available, the sync of PDF documents into the Vectore Store. This can take some time depending on the system resources, embedding and splitter. The Delete DB function deletes the Chroma Collection.
Binary file added assets/actions.png
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 assets/docchat.png
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 assets/ollama.png
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 assets/vectorestore.png
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 src/docchat/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ def run_chain(question: str, chat_history: list[str]) -> list[any]:
def start_chatbot():
global config

st.title("DocsChat 📚🗣️")
st.title("DocChat 📚🗣️")

# Initialize chat history
if "messages" not in st.session_state:
Expand Down

0 comments on commit b099b69

Please sign in to comment.