File size: 1,533 Bytes
39a9087
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
427fc13
39a9087
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
---
title: Sherlock RAG
emoji: 🕵️
colorFrom: blue
colorTo: indigo
sdk: docker
app_port: 7860
pinned: false
---

# Sherlock RAG 🕵️

A specialized Chainlit application implementing a Retrieval-Augmented Generation (RAG) pipeline. This assistant is designed to query private project documentation and resumes to provide context-aware answers using high-performance LLMs.

## 🏗️ Architecture

This project follows a decoupled data-and-code architecture:

- **Application Logic**: Hosted on GitHub and deployed to Hugging Face Spaces via Docker.
- **Knowledge Base**: Private PDF documents stored in a separate Hugging Face Dataset (`jakewatson91/sherlock-rag-docs`).
- **Sync Mechanism**: The app uses `huggingface_hub` to sync documents at runtime, bypassing Git LFS limitations and keeping the code repository lightweight.

## 🛠️ Tech Stack

- **UI/UX**: [Chainlit](https://docs.chainlit.io/)
- **Orchestration**: [LangChain](https://python.langchain.com/)
- **LLM**: Moonshot AI (Kimi-k2) via [Groq](https://groq.com/)
- **Embeddings**: Google Generative AI (`text-embedding-004`)
- **Data**: From HuggingFace Dataset `huggingface_hub` (Snapshot Download)

## 🚀 Getting Started

### Prerequisites

- Python 3.11+
- A Hugging Face **Write** Token
- API Keys for:
  - Groq (Moonshot AI)
  - Google Generative AI (Embeddings)

### Environment Variables

Create a `.env` file in the root directory:

```env
HF_TOKEN=your_huggingface_write_token
GROQ_API_KEY=your_groq_api_key
GOOGLE_API_KEY=your_google_api_key
```