Qalam's picture
fix: pin Python 3.11 to avoid pyaudioop error on Py 3.13
4d7a996 verified
|
Raw
History Blame Contribute Delete
10.3 kB
---
title: Nuclear Intelligence
emoji: ⚛️
colorFrom: yellow
colorTo: red
sdk: gradio
sdk_version: 4.36.0
python_version: 3.11
app_file: app.py
pinned: false
---
# ⚛️ Nuclear Intelligence v4.0
> Autonomous nuclear-energy research pipeline that turns validated Q&A into on-chain NES tokens.
**Nuclear Intelligence** is a 24/7 autonomous system that:
1. **Generates** cutting-edge research questions about nuclear energy (fusion, SMR, Gen IV, waste, materials, safety, AI-assisted design, etc.)
2. **Researches** each question using a chain of free LLM providers (HF Router, Groq, DeepSeek, Gemini, Together, Fireworks, AIMLAPI) with automatic fallback.
3. **Evaluates** every answer with an independent LLM call (multi-layer: accuracy, novelty, usefulness, completeness, self-consistency).
4. **Mints** a NES token on a real SHA-3 Proof-of-Work blockchain for every answer that passes the thresholds.
5. **Syncs** all minted records to a public HuggingFace Dataset *and* the GitHub repo, so the corpus is openly readable.
## 🛡️ v4.0 Highlights (June 2026)
- **Safety & Ethics Guardrails** — hard pre-LLM + post-generation filter; refuses weapons / proliferation / RDD / cyber-proliferation prompts and redirects to legitimate peaceful-use topics.
- **Enhanced Evaluation** — multi-pass self-consistency, citation-quality scoring, novelty vs Knowledge Graph, and a Tokenization-Readiness composite (Accuracy ≥ 93 %, Novelty ≥ 75 %, Usefulness ≥ 80 %, Overall ≥ 85 %).
- **Enhanced RAG** — domain weighting (IAEA 2.5×, NRC 2.5×, peer-reviewed 1.7–1.8×), recency boost, diversity round-robin.
- **Multilingual** — automatic Persian / English detection + localized UI labels.
- **Security** — hardcoded API keys removed from `app.py` and LLM engines; all keys now flow through `.env` only.
- **Health Check**`python scripts/health_check.py` runs 9 smoke tests; available in the Gradio UI under **🛡️ Safety & Health**.
See [CHANGELOG_V4.md](CHANGELOG_V4.md) for the full release notes.
---
## 🏗️ Architecture
```
┌──────────────────────────────┐
│ GitHub Actions (every 25m) │
│ • run_operation_cycle.py │
│ • sync_huggingface.py │
└──────────────┬───────────────┘
┌──────────────────────────────────────────┐
│ NuclearIntelligenceCore (core/) │
│ ┌────────┐ ┌────────┐ ┌────────────┐ │
│ │ LLM │ │ RAG │ │ Knowledge │ │
│ │ Engine │ │ FAISS │ │ Graph │ │
│ └────┬───┘ └────────┘ └────────────┘ │
│ │ multi-provider fallback │
└───────┼──────────────────────────────────┘
┌──────────────────┐ ┌──────────────────┐
│ VirtualLedger │ │ HF Dataset │
│ SHA-3 PoW chain │◄──►│ (public) │
│ NES tokens │ │ + GitHub repo │
└──────────────────┘ └──────────────────┘
```
**Two deployment modes:**
- **GitHub Actions** (`.github/workflows/operation-loop.yml`) — runs the full pipeline every 25 min.
- **HuggingFace Space** (`hf_deploy/app.py`) — Gradio UI + the same pipeline, runs 24/7 if upgraded to a paid tier, otherwise kept alive by `keep_alive.yml`.
---
## 🚀 Quick Start
### HuggingFace Space (easiest)
1. Visit https://huggingface.co/spaces/Qalam/Nuclear-Intelligence
2. Click **Run Research Cycle** to mint a token.
3. Browse the **Blockchain** and **Knowledge Graph** tabs.
### GitHub Actions (production)
1. Fork this repo.
2. Add secrets in **Settings → Secrets and variables → Actions**:
- `HF_TOKEN` (required)
- `GITHUB_TOKEN` (auto-provided, but `secrets.GITHUB_TOKEN` is read-only for PRs — use a PAT if you need to push from PRs)
- `GROQ_API_KEY`, `DEEPSEEK_API_KEY`, `GEMINI_API_KEY`, etc. (optional, for more LLM providers)
3. The workflow runs every 25 minutes automatically.
### Local development
```bash
git clone https://github.com/QalamHipHop/nuclear-intelligence.git
cd nuclear-intelligence
pip install -r requirements.txt
cp .env.template .env # fill in API keys
python scripts/run_operation_cycle.py # one cycle
python -m uvicorn api.health:app --reload # API on :8000
```
---
## 🔑 Required Secrets
| Secret | Required? | Used by |
|---|---|---|
| `HF_TOKEN` | ✅ | LLM provider, dataset sync, space deploy |
| `GITHUB_TOKEN` | optional | report commit, ledger push |
| `GROQ_API_KEY` | optional | LLM provider (fastest) |
| `DEEPSEEK_API_KEY` | optional | LLM provider (best free) |
| `GEMINI_API_KEY` | optional | LLM provider |
| `TOGETHER_API_KEY` | optional | LLM provider |
| `FIREWORKS_API_KEY` | optional | LLM provider |
| `AIMLAPI_API_KEY` | optional | LLM provider |
| `BLOCKCHAIN_SECRET` | optional | HMAC for tx signing |
Without any LLM key, the system falls back to **demo mode** (no real research, no minting).
---
## 📁 Project Structure
```
nuclear-intelligence/
├── core/ # Main pipeline (LLM + RAG + KG)
│ ├── llm_engine_v4.py # Multi-provider LLM engine
│ ├── nuclear_intelligence_v4.py # Research-to-token pipeline
│ ├── operation_loop_v4.py # Autonomous loop
│ ├── knowledge_graph.py # KG
│ ├── embeddings.py # Sentence-transformers wrapper
│ └── web_search.py # arXiv / web research
├── blockchain/
│ └── virtual_ledger.py # SHA-3 PoW blockchain
├── api/
│ ├── health.py # Health check + cycle trigger API
│ ├── main.py # Legacy FastAPI
│ └── enhanced_api.py # Full FastAPI
├── hf_deploy/ # Self-contained for HF Space
│ ├── app.py # Gradio UI + inline pipeline
│ ├── requirements.txt
│ └── Dockerfile
├── scripts/
│ ├── run_operation_cycle.py # One cycle entrypoint
│ ├── sync_huggingface.py # Push to HF dataset + GH
│ ├── initialize_knowledge_base.py
│ └── keep_alive.py
├── knowledge_base/ # Persisted state (gitignored)
├── reports/ # Cycle reports (gitignored)
├── logs/ # Runtime logs (gitignored)
├── .github/workflows/
│ ├── operation-loop.yml # Every 25 min
│ ├── keep_alive.yml # Every 20 min (ping HF Space)
│ ├── deploy-hf.yml # Push hf_deploy → Space
│ └── ci-cd.yml # Lint + smoke tests
├── requirements.txt
├── requirements_enhanced.txt
├── requirements_hf.txt
└── docker-compose.yml
```
---
## ⚙️ Configuration
Edit `.env` (or set GitHub Actions secrets):
```env
# Mint thresholds
MIN_ACCURACY=70
MIN_NOVELTY=60
MIN_USEFULNESS=60
MIN_OVERALL=65
# Mining
POW_DIFFICULTY=3 # 3 ≈ a few seconds; 4 ≈ a minute; 5+ = slow
# Loop
OPERATION_LOOP_INTERVAL_MINUTES=25
# LLM
DEFAULT_TEMPERATURE=0.7
MAX_TOKENS=4096
```
---
## 📊 API
Run locally: `uvicorn api.health:app --port 8000`
| Method | Endpoint | Description |
|---|---|---|
| GET | `/health` | Liveness probe |
| GET | `/ready` | Readiness probe (checks LLM configured) |
| GET | `/stats` | Full system stats |
| GET | `/chain` | Blockchain stats |
| GET | `/recent?limit=20` | Recent cycles |
| GET | `/search?q=...` | Search knowledge graph |
| POST | `/cycle` | Trigger a research cycle |
| POST | `/cycle` with `{"question": "..."}` | Direct Q&A |
Full docs at `/docs` (Swagger UI).
---
## 🪙 NES Tokenomics
- **Symbol:** NES (Nuclear Energy Science)
- **Mint rate:** 1 NES per validated research cycle (when all 4 thresholds + consistency pass)
- **Supply:** unbounded but rate-limited by the 25-min loop
- **Ledger:** `/knowledge_base/virtual_ledger.json` (full chain with PoW)
- **Public mirror:** https://huggingface.co/datasets/Qalam/nuclear-intelligence-dataset
The chain is a real blockchain:
- SHA-3-256 block hashes
- Real Proof-of-Work (configurable difficulty)
- Adaptive difficulty (raises if blocks mined too fast, lowers if too slow)
- Merkle-tree transaction verification
- HMAC-signed transactions
---
## 🧪 Testing
```bash
# Quick import + smoke test
python -c "from core.nuclear_intelligence import NuclearIntelligenceCore; print('OK')"
# Full ledger test
python -c "
from blockchain.virtual_ledger import VirtualLedger
import tempfile, os
with tempfile.TemporaryDirectory() as tmp:
ledger = VirtualLedger(ledger_file=os.path.join(tmp, 'l.json'), difficulty=1)
assert ledger.is_valid()
ledger.mint({'test': True})
assert ledger.is_valid()
assert ledger.nes_supply == 1.0
print('✅ ledger OK')
"
# GitHub Actions also runs these in .github/workflows/ci-cd.yml
```
---
## 🤝 Contributing
1. Fork the repo.
2. Create a feature branch.
3. Run `python -m pytest tests/` (if you add tests).
4. Open a pull request.
The CI will run lint + smoke tests automatically.
---
## 📜 License
MIT
---
## 🔗 Links
- **GitHub:** https://github.com/QalamHipHop/nuclear-intelligence
- **HuggingFace Space:** https://huggingface.co/spaces/Qalam/Nuclear-Intelligence
- **HuggingFace Dataset:** https://huggingface.co/datasets/Qalam/nuclear-intelligence-dataset
- **Architecture docs:** [`ARCHITECTURE.md`](ARCHITECTURE.md)