File size: 5,483 Bytes
fd92eae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4ae79ba
 
fd92eae
 
 
 
 
 
 
4ae79ba
fd92eae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
---
title: HealthyEatingAdvisor
emoji: 🥗
colorFrom: purple
colorTo: green
sdk: docker
pinned: false
app_port: 7860
---

# Healthy Eating Advisor Panel

**Healthy Eating Advisor** by **Heidi Boudro** — an AI panel for easy **clean eating** and **real food**. Ask about whole foods, fruits and vegetables, simple prep, superfoods, enzymes, and healthy-eating books. Built on Neon AI's Collaborative Conversational AI (CCAI) framework (multi-advisor FastAPI + React), cloned from the LaunchPad panel pattern.

Local path: `/Users/kennedyjohnson/Projects/HealthyEatingAdvisor-Panel`

## Live links

| Resource | URL |
|----------|-----|
| GitHub | https://github.com/NeonKennedy-005/HealthyEatingAdvisor-Panel |
| Hugging Face Space | https://huggingface.co/spaces/BrainForge/HealthyEatingAdvisor |

> If the Space URL 404s, create `BrainForge/HealthyEatingAdvisor` (Docker SDK) in the HF UI, then push the `hf` remote (see below).

## Advisors (6)

1. **Kitchen Coach** — clean eating expert; sustainable whole-food habits  
2. **Veggie Chef** — vegetable specialist; prep and recipes  
3. **Fruit Maven** — fruit specialist; variety, juices, benefits  
4. **Superfoods Superman** — concentrated nutrition / superfoods  
5. **Enzyme Explorer** — enzymes in food, diet, and education  
6. **Book Advisor** — cookbooks and healthy-eating resources  

## Source materials used

Packaged under [`docs/source-materials/`](docs/source-materials/) from Heidi's July 29 2026 exports:

| Source | Used for |
|--------|----------|
| `System prompts.odt` | Deep persona YAML prompts in `personas/healthy_eating_advisors/` |
| `Jsons July 29 2026` | `advisor-panel-draft.json`, role/tagline metadata |
| `Persona Prompt Testing Chats July 29 2026` | Example topics appended into persona prompts |
| `RAG July 29 2026` | Markdown corpus under `knowledge/<persona_id>/` |

## How RAG is loaded

1. Knowledge files live in [`knowledge/`](knowledge/) (one folder per advisor).  
2. Users **upload** relevant `.md` files in chat for ChromaDB retrieval via the CCAI documents pipeline (`rag_manager.py`).  
3. Persona prompts instruct advisors to use reference material as educational, non-medical guidance.  
4. Config: `healthyeating_config.yaml` → `rag.chroma_collection: healthy_eating_documents`, embedding `all-MiniLM-L6-v2`.  
5. With `DATA_DIR` set (HF `/data`), vector store + SQLite survive rebuilds.

See also [`knowledge/README.md`](knowledge/README.md).

## Guest mode

**Try without an account** creates a disposable guest session with EmailStr-safe addresses like `guest-…@guests.healthyeating.ai` (never reserved `.local` TLDs).

## Hugging Face Spaces deployment

Single Docker image from the root [`Dockerfile`](Dockerfile):

1. Builds CRA with `REACT_APP_API_URL=""` (same-origin API).  
2. Serves SPA from FastAPI on `:7860`.  
3. Persists SQLite at `${DATA_DIR}/healthy_eating_panel.db`.

**Accounts only survive Space rebuilds if Hugging Face Persistent storage is enabled** (Settings → Persistent Storage, mounted at `/data`). Without that mount, `/data` is a normal container directory and is wiped when the Space sleeps or rebuilds — Heidi’s `hboudro@earthlink.net` login then looks like “no account found.” Optional fallback: add an `HF_TOKEN` Space secret with write access so the app can mirror the SQLite DB to a private Hub dataset (`BrainForge/healthyeatingadvisor-accounts`). `GET /api/health` reports `storage.durable_storage` and a hint when persistence is missing.

### Required Space secrets

| Secret | Purpose |
|--------|---------|
| `JWT_SECRET_KEY` | Signs auth tokens (long random string). |
| `OPENAI_API_KEY` | Default OpenAI provider (`gpt-5.4-mini`). |
| `GEMINI_API_KEY` | Optional — only if you switch `llm.provider` to `gemini`. |
| `HF_TOKEN` | Optional — write token so accounts can be mirrored to a Hub dataset when `/data` is not a persistent mount. |

## Local deployment

### Option A — Docker

```bash
# .env:
#   JWT_SECRET_KEY=some-long-random-string
#   OPENAI_API_KEY=your-openai-key
docker compose up --build
```

Open <http://localhost:7860>. Override host port with `HEALTHY_EATING_HOST_PORT`.

### Option B — Native

**Backend:**

```bash
cd multi_llm_chatbot_backend
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
CONFIG_PATH=../healthyeating_config.yaml uvicorn app.main:app --reload --port 8000
```

**Frontend:**

```bash
cd phd-advisor-frontend
npm install
REACT_APP_API_URL=http://localhost:8000 npm start
```

Open <http://localhost:3000>.

## Configuration

- UI + orchestrator + LLM/RAG: [`healthyeating_config.yaml`](healthyeating_config.yaml)  
- Personas: [`personas/healthy_eating_advisors/`](personas/healthy_eating_advisors/)  
- Author draft: [`advisor-panel-draft.json`](advisor-panel-draft.json)

## First-draft known gaps (second pass)

- Canvas widgets still partially carry template scaffolding; soft-renamed only  
- Knowledge is **upload-for-RAG**, not auto-seeded into Chroma at boot  
- Some RAG filenames retain typos from the source export (`how_to_stteam_vegetables`, `what_are_digestsive_enzymes`)  
- Path gate offers two starter focuses; full focus set is in profile/signup  
- No production brand assets / logo beyond Lucide `Leaf`  
- Voice endpoints point at Neon defaults (may need tenant config)

## License / copyright

Panel content and knowledge pack © Heidi Boudro. CCAI app shell follows the Neon multi-advisor panel pattern.