{"id":47783728,"url":"https://github.com/vibtellect/rag-document-chatbot","last_synced_at":"2026-04-03T14:02:56.345Z","repository":{"id":342363380,"uuid":"1173746980","full_name":"vibtellect/rag-document-chatbot","owner":"vibtellect","description":"RAG Dokumenten-Chatbot – FastAPI + React + AWS Bedrock + Qdrant","archived":false,"fork":false,"pushed_at":"2026-03-05T17:51:32.000Z","size":29,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-05T20:27:42.917Z","etag":null,"topics":["aws","bedrock","chatbot","dsgvo","fastapi","ki","mittelstand","qdrant","rag","react"],"latest_commit_sha":null,"homepage":null,"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/vibtellect.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-05T17:51:22.000Z","updated_at":"2026-03-05T17:51:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vibtellect/rag-document-chatbot","commit_stats":null,"previous_names":["vibtellect/rag-document-chatbot"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/vibtellect/rag-document-chatbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vibtellect%2Frag-document-chatbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vibtellect%2Frag-document-chatbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vibtellect%2Frag-document-chatbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vibtellect%2Frag-document-chatbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vibtellect","download_url":"https://codeload.github.com/vibtellect/rag-document-chatbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vibtellect%2Frag-document-chatbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31355751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T08:03:20.796Z","status":"ssl_error","status_checked_at":"2026-04-03T08:00:37.834Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["aws","bedrock","chatbot","dsgvo","fastapi","ki","mittelstand","qdrant","rag","react"],"created_at":"2026-04-03T14:01:44.180Z","updated_at":"2026-04-03T14:02:56.333Z","avatar_url":"https://github.com/vibtellect.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RAG-Dokumenten-Chatbot (PoC)\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)\n[![GitHub](https://img.shields.io/badge/GitHub-vibtellect/rag--document--chatbot-blue?logo=github)](https://github.com/vibtellect/rag-document-chatbot)\n\nDE-first README. English version: [README_EN.md](./README_EN.md)\n\n## 3-Minuten-Ergebnis\n\nDiese Demo liefert einen lauffaehigen RAG-Stack fuer Unternehmensdokumente:\n\n`PDF/Markdown Upload -\u003e Chunking + Embeddings -\u003e Qdrant -\u003e Quellenbasierte Antwort`\n\n**Proof-of-Concept**: Schnell einsatzbereit, ideal zum Lernen und Experimentieren. Fuer produktiven Einsatz siehe [Naechste Schritte](#naechste-schritte).\n\n## Problem\n\nWissen steckt in vielen internen Dokumenten und ist schwer auffindbar.\n\n## Loesung\n\nEin FastAPI-Backend mit Qdrant und Bedrock beantwortet Fragen auf Basis hochgeladener Inhalte, inkl. Quellenhinweisen.\n\n## Architektur\n\n- **Frontend**: React + Vite (Web-UI fuer Upload + Chat)\n- **Backend**: FastAPI (Ingestion, Retrieval, LLM-Integration)\n- **Vector Store**: Qdrant (In-Memory oder persistent)\n- **Modelle**: AWS Bedrock (Claude 3.5 Sonnet + Titan Embeddings)\n- **Containerisierung**: Docker Compose\n\n## Quickstart\n\n### 1) Setup\n\n```bash\nmake setup\n```\n\nDann `.env` aus `.env.example` kopieren und fuellen:\n\n```bash\nAWS_ACCESS_KEY_ID=AKIAXXXXXXXXXXXXXXXX\nAWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nAWS_REGION=eu-central-1\n```\n\n### 2) Start (Docker Compose)\n\n```bash\nmake up\n```\n\nFrontend erreichbar unter `http://localhost:3000`, API unter `http://localhost:8000`.\n\n### 3) Smoke-Test\n\n```bash\nmake smoke\n```\n\nErwartung:\n- API Health `http://localhost:8000/health` erreichbar\n- Frontend `http://localhost:3000` erreichbar\n\n### 4) Stop\n\n```bash\nmake down\n```\n\n## Demo-Nutzung {#demo}\n\n### 1) Demo-Dokumente hochladen\n\n5 Unternehmensdokumente stehen in `demo-docs/` bereit:\n\n```bash\n# Alle Demo-Dokumente hochladen\nfor doc in demo-docs/*.md; do\n  curl -X POST http://localhost:8000/api/upload \\\n    -F \"file=@$doc\" -F \"tenant_id=demo\"\ndone\n```\n\n### 2) Fragen stellen (cURL)\n\n```bash\n# IT-Sicherheit\ncurl -X POST http://localhost:8000/api/ask \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"question\": \"Wie viele Zeichen muss ein Passwort mindestens haben?\", \"tenant_id\": \"demo\"}'\n\n# Reisekosten\ncurl -X POST http://localhost:8000/api/ask \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"question\": \"Wie hoch ist die Hotelkostenpauschale in Muenchen?\", \"tenant_id\": \"demo\"}'\n\n# Homeoffice\ncurl -X POST http://localhost:8000/api/ask \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"question\": \"Wie viele Tage pro Woche darf ich im Homeoffice arbeiten?\", \"tenant_id\": \"demo\"}'\n\n# Onboarding\ncurl -X POST http://localhost:8000/api/ask \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"question\": \"Was muss ich in der ersten Woche als neuer Mitarbeiter erledigen?\", \"tenant_id\": \"demo\"}'\n```\n\n### 3) UI-basiert\n\nFrontend unter `http://localhost:3000` oeffnen:\n1. Documents hochladen (Drag-and-Drop oder Button)\n2. Fragen stellen im Chat-Interface\n3. Quellen anzeigen und validieren\n\n## API-Endpunkte\n\n- `POST /api/upload` (PDF oder Markdown)\n- `POST /api/ask`\n- `GET /api/documents`\n- `DELETE /api/documents/{doc_id}`\n- `GET /health`\n\n## Projektstruktur\n\n```text\n.\n|-- Makefile\n|-- docker-compose.yml\n|-- .env.example\n|-- backend/\n|-- frontend/\n`-- demo-docs/\n    |-- it-sicherheitsrichtlinie.md\n    |-- urlaubsregelung.md\n    |-- onboarding-checkliste.md\n    |-- reisekostenrichtlinie.md\n    `-- homeoffice-regelung.md\n```\n\n## Kosten (Richtwert)\n\nAbhaengig von Tokenvolumen und Dokumentmenge, typischerweise im niedrigen zweistelligen USD-Bereich fuer kleine PoCs.\n\nBedrock-Pricing: https://aws.amazon.com/de/bedrock/pricing/\n\n## Grenzen des PoC\n\n- Kein Auth-/Rechtemodell\n- Kein Langzeit-Monitoring/Observability\n- Retrieval-Strategie ist bewusst einfach gehalten\n- Nicht fuer direkten Produktivbetrieb ausgelegt\n\n## Naechste Schritte fuer Produktivbetrieb\n\n1. **Sicherheit**: Secret Management, Authentifizierung/Autorisierung, TLS\n2. **Retrieval**: Reranking, Hybrid Search, Query-Expansion\n3. **Betriebsbetrieb**: Logging, Monitoring, Alerting, Datenhaltung\n4. **Skalierung**: Load-Balancing, Database-Backup, Disaster-Recovery\n\nSiehe [SECURITY.md](./SECURITY.md) fuer Mindestanforderungen.\n\n## Lizenz\n\nMIT License - siehe [LICENSE](./LICENSE)\n\n## Contributing\n\nContributions sind willkommen! Siehe [CONTRIBUTING.md](./CONTRIBUTING.md) fuer Details.\n\n---\n\n## Weitere Ressourcen\n\n- **Portfolio**: [bojatschkin.de](https://bojatschkin.de) – Cloud Engineer mit KI-Integration\n- **Blogpost**: [RAG-Chatbot mit Bedrock – Praxiswissen aus Unternehmensdokumenten](https://bojatschkin.de/blog/rag-chatbot-bedrock?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=rag-chatbot-demo)\n- **Kontakt**: Wenn du den PoC in einen produktiven Wissensassistenten mit sauberem Betriebskonzept ueberfuehren willst → [Kostenloses Erstgesprach buchen](https://bojatschkin.de?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=rag-chatbot-contact)\n\n---\n\nBuilt by [vibtellect](https://github.com/vibtellect) – Cloud Engineering \u0026 AI Integration\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvibtellect%2Frag-document-chatbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvibtellect%2Frag-document-chatbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvibtellect%2Frag-document-chatbot/lists"}