Spaces:
Running
title: Collaborative Conversational AI (CCAI) Demo
emoji: 🤝
colorFrom: blue
colorTo: purple
sdk: docker
app_port: 7860
hf_oauth: true
hf_oauth_scopes:
- read-repos
pinned: false
Collaborative Conversational AI (CCAI) Demo
A demo of Collaborative Conversational AI (CCAI) - Neon.ai's patented group-discussion technology. Up to 9 participants (any mix of AI personas, human-defined "expert" personas, or - in the future - real humans, agents, tools, or sensors) hold a structured group conversation facilitated by a neutral Orchestrator, with the goal of reaching a real group decision the way a thoughtful human meeting would.
This repo descends from NeonClary/LLMChats3 and reuses its color scheme, branding, settings menu structure, and chat formatting verbatim. The CCAI multi-participant orchestration, expert-persona modal, participant sidebar, and table view are layered on top.
Architecture (one-pager)
- Frontend (React 19, react-markdown, lucide-react) - lives in
frontend/. Talks SSE to the backend. - Backend (FastAPI, httpx) - lives in
backend/. Routes:GET /api/personas— Neon HANA personas (vanilla/RAG filtered), bundled extra personas, and (echoed) expert personas.GET /api/demo-questions— the bank of 10 long-context demo prompts.POST /api/chat/start— kicks off a CCAI session and returns SSE.POST /api/chat/{id}/continue?reason=…— resumes a paused session.GET /api/chat/{id}/export?fmt=txt|md|csv-table— exports.GET /api/chat/{id}/table— JSON for the table view.
- Orchestrator state machine — six phases (Initial Opinions, Critique x2, Status Assessment, Finalization, Consensus, Closure) with two failsafes (60+20 messages, 100+50 orchestrator calls) and per-participant on-demand context summarization.
CCAI Phase Overview
- Initial Opinions. Each participant offers an independent first opinion. The orchestrator builds a per-participant Credential Summary in the background.
- Critique x 2. Each participant gets two turns to critique others, ask follow-ups, and revise. After Phase 2 the Credential Summary is refreshed.
- Status Assessment. The orchestrator either proceeds or runs targeted follow-ups (max 3 iterations).
- Finalization. Each participant either revises their own opinion or endorses another's.
- Consensus Gathering. Allied participants advocate, solo participants seek allies / switch / propose compromises. The orchestrator routes addressed-to messages.
- Closure. Majority-report (with weighted dissent), or unaddressed-factor probe + retry, or no-consensus report.
Thinking traces (<think>, <reasoning>, etc.) are stripped from every
LLM response in backend/app/utils/sanitize.py before being stored,
displayed, or fed back to the orchestrator/summarizer/Credential builder.
Quick Start (local development)
Shared secrets (shared.env)
This project supports a cross-project secrets file (same pattern as other Neon
Cursor repos). Place API keys in shared.env outside the repo — never
commit it. The backend loads it automatically before the project .env:
SHARED_ENV_PATHorSHARED_ENV_FILEif set in the shell~/.secrets/shared.env~/Downloads/shared.env
Project .env overrides any duplicate keys from shared.env.
# Optional: only project-specific overrides (orchestrator model, CORS, etc.)
cp .env.example .env
# Or use the dev script (auto-detects shared.env + starts both servers)
./scripts/dev-local.sh
Manual start:
# Backend
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000
# Frontend (separate terminal)
cd frontend
npm install
npm start
Docker
cp .env.example .env
# Optional: point Docker at your shared secrets file
export SHARED_ENV_FILE="$HOME/Downloads/shared.env"
docker compose up --build
# Open http://localhost:7860
HuggingFace Spaces Deployment
Deployed as a Docker Space (app_port: 7860).
Required Space Secrets:
HANA_USERNAME,HANA_PASSWORD— Neon HANA credentials.HANA_KLATCHAT_PASSWORD(optional) — BrainForge/Security vLLM access.- Provider keys:
OPENAI_API_KEY,GEMINI_API_KEY,FIREWORKS_API_KEY,TOGETHER_API_KEY,MISTRAL_API_KEY. HF_RATE_LIMIT_DAILY=30— daily per-IP cap (defaults to 30; org members are unlimited).HF_RATE_LIMIT_ORG=neongeckocom— bypass org name.SESSION_SECRET— cookie session secret for OAuth.
Features
- Participant dropdown in the header with three sections (Neon /
Extra / Expert) and a
Create Expert Persona...shortcut. - Participant sidebar with on/off slider per participant; flipping
off does not deselect, and a
Removebutton appears for actually dropping someone from the conversation. - Settings menu with searchable orchestrator-model and summarizer- model pickers (summarizer defaults to "Same as Orchestrator"), a 3-9 max-participants stepper, per-participant model overrides, and the same display-options + downloads structure as LLMChats3.
- Two failsafes with explicit Continue buttons (60+20 messages, 100+50 orchestrator calls).
- Exports:
.txt,.md, RFC-4180.csvtable, JSON API log. - Table view of the whole conversation with per-participant first / contribution / revised / final columns.
- localStorage persistence for expert personas, participant selection, on/off state, model assignments, orchestrator/summarizer picks, and max-participants.
- HuggingFace OAuth with
neongeckocomorg bypass.