Cleanup
This commit is contained in:
6
.env
6
.env
@@ -1,4 +1,10 @@
|
|||||||
# Paperless
|
# Paperless
|
||||||
|
PAPERLESS_ADMIN_USER=admin
|
||||||
|
PAPERLESS_ADMIN_PASSWORD=ein_sehr_sicheres_admin_passwort
|
||||||
|
PAPERLESS_ADMIN_MAIL=deine.email@beispiel.de
|
||||||
|
PAPERLESS_TIME_ZONE=Europe/Berlin
|
||||||
|
PAPERLESS_UI_LANGUAGE=de
|
||||||
|
PAPERLESS_OCR_LANGUAGE=deu
|
||||||
PAPERLESS_URL=http://your-paperless-ip:8000
|
PAPERLESS_URL=http://your-paperless-ip:8000
|
||||||
PAPERLESS_TOKEN=your_api_token_here
|
PAPERLESS_TOKEN=your_api_token_here
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,20 @@
|
|||||||
version: '3.8'
|
version: '3.8'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
# Continer für PostgreSQL Datenbank
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:15
|
image: postgres:15
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: ${POSTGRES_USER}
|
POSTGRES_USER: ${POSTGRES_USER}
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_DB: ${POSTGRES_DB}
|
POSTGRES_MULTIPLE_DATABASES: paperless,ragdb
|
||||||
volumes:
|
volumes:
|
||||||
- postgres_data:/var/lib/postgresql/data
|
- postgres_data:/var/lib/postgresql/data
|
||||||
|
- ./init-scripts/init-databases.sh:/docker-entrypoint-initdb.d/init-databases.sh:ro
|
||||||
ports:
|
ports:
|
||||||
- "5432:5432"
|
- "5432:5432"
|
||||||
|
|
||||||
|
# Container für Vectordatenbank
|
||||||
chromadb:
|
chromadb:
|
||||||
image: chromadb/chroma:latest
|
image: chromadb/chroma:latest
|
||||||
volumes:
|
volumes:
|
||||||
@@ -19,13 +22,12 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "8000:8000"
|
- "8000:8000"
|
||||||
|
|
||||||
|
# Container für ollama
|
||||||
ollama:
|
ollama:
|
||||||
image: ollama/ollama:latest
|
image: ollama/ollama:latest
|
||||||
volumes:
|
volumes:
|
||||||
- ollama_data:/root/.ollama
|
- ollama_data:/root/.ollama
|
||||||
# Binde das lokale Skript in den Container ein
|
- ./init-scripts/init_ollama.sh:/init_ollama.sh:ro
|
||||||
- ./init_ollama.sh:/init_ollama.sh
|
|
||||||
# Setze das Skript als Startbefehl und stelle sicher, dass es mit bash ausgeführt wird
|
|
||||||
entrypoint: ["/usr/bin/env", "bash", "/init_ollama.sh"]
|
entrypoint: ["/usr/bin/env", "bash", "/init_ollama.sh"]
|
||||||
ports:
|
ports:
|
||||||
- "11434:11434"
|
- "11434:11434"
|
||||||
@@ -62,7 +64,35 @@ services:
|
|||||||
- chromadb
|
- chromadb
|
||||||
- ollama
|
- ollama
|
||||||
|
|
||||||
|
# Container für Paperless-ngx redis Broker
|
||||||
|
broker:
|
||||||
|
image: docker.io/library/redis:7
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- redisdata:/data
|
||||||
|
|
||||||
|
# Container für Paperless-ngx
|
||||||
|
paperless:
|
||||||
|
image: ghcr.io/paperless-ngx/paperless-ngx:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
- broker
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
volumes:
|
||||||
|
- paperless_data:/usr/src/paperless/data
|
||||||
|
- paperless_media:/usr/src/paperless/media
|
||||||
|
env_file: .env
|
||||||
|
environment:
|
||||||
|
PAPERLESS_REDIS: redis://broker:6379
|
||||||
|
PAPERLESS_DBHOST: ${POSTGRES_HOST}
|
||||||
|
PAPERLESS_DBNAME: paperless
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
postgres_data:
|
postgres_data:
|
||||||
chroma_data:
|
chroma_data:
|
||||||
ollama_data:
|
ollama_data:
|
||||||
|
redisdata:
|
||||||
|
paperless_data:
|
||||||
|
paperless_media:
|
||||||
36
src/app.py
36
src/app.py
@@ -4,8 +4,8 @@ from langchain.chains.combine_documents import create_stuff_documents_chain
|
|||||||
from langchain_core.prompts import ChatPromptTemplate
|
from langchain_core.prompts import ChatPromptTemplate
|
||||||
from src.rag_core import get_retriever, get_llm
|
from src.rag_core import get_retriever, get_llm
|
||||||
|
|
||||||
st.set_page_config(page_title="RAG Chat", layout="wide")
|
st.set_page_config(page_title="DocuMind-G4 Chat", layout="wide")
|
||||||
st.title("Paperless-NGX RAG Assistant")
|
st.title("DocuMind-G4 RAG Assistant")
|
||||||
|
|
||||||
retriever, vectorstore, _ = get_retriever()
|
retriever, vectorstore, _ = get_retriever()
|
||||||
llm = get_llm()
|
llm = get_llm()
|
||||||
@@ -64,4 +64,34 @@ if prompt_input := st.chat_input("Stelle eine Frage zu deinen Dokumenten..."):
|
|||||||
for s in unique_sources:
|
for s in unique_sources:
|
||||||
st.write(f"- {s}")
|
st.write(f"- {s}")
|
||||||
|
|
||||||
st.session_state.messages.append({"role": "assistant", "content": answer})
|
st.session_state.messages.append({"role": "assistant", "content": answer})
|
||||||
|
|
||||||
|
hide_streamlit_style = """
|
||||||
|
<style>
|
||||||
|
footer {visibility: hidden;}
|
||||||
|
</style>
|
||||||
|
"""
|
||||||
|
st.markdown(hide_streamlit_style, unsafe_allow_html=True)
|
||||||
|
|
||||||
|
custom_footer = """
|
||||||
|
<style>
|
||||||
|
.footer {
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
color: #31333F;
|
||||||
|
text-align: center;
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
z-index: 99;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="footer">
|
||||||
|
<p>DocuMind-G4 created by Julius Wolff 2026</p>
|
||||||
|
</div>
|
||||||
|
"""
|
||||||
|
|
||||||
|
# 3. Den Footer in die App rendern
|
||||||
|
st.markdown(custom_footer, unsafe_allow_html=True)
|
||||||
Reference in New Issue
Block a user