CPPTAI / README.md
Fra150's picture
Readme
268b436 verified
# CPPTAI
Python framework (standard library only) for a 5‑phase cognitive pipeline, DeepSeek API integration (OpenAI‑compatible), automated benchmarks with CSV/JSON reports, and LaTeX research generation with auto‑loaded tables and plots.
## Overview
- Five‑phase architecture: Entropic segregation → Vertical topology → Cognitive descent → External convergence → Presentation (Phase V).
- Minimal DeepSeek client with `.env` key management and model fallback.
- Benchmarks: accuracy vs baselines (CoT, ToT, GoT, ReAct), diversity (Shannon on clusters), error rates (GSM8K/MATH/AIME), time‑per‑problem; outputs in `benchmarks.csv` and `benchmarks.json`.
- LaTeX research (`research.tex`) using `pgfplotstable`/`pgfplots` to load results directly.
## Requirements
- Python ≥ 3.10.
- No external dependencies; everything uses the standard library.
- Optional: DeepSeek API key for live responses.
## Setup
1. Create a `.env` file at the project root:
```
DEEPSEEK_API_KEY=your_key
```
Do not share or commit real keys.
2. Main file structure:
- `src/cpptai/core.py` – 5‑phase orchestrator.
- `src/cpptai/deepseek_client.py` – DeepSeek API client with `.env` loader.
- `src/cpptai/benchmarks.py` – execution and metrics, CSV/JSON outputs.
- `src/cpptai/presentation.py` – Phase V formatting (executive/technical/public).
- `src/cpptai/types.py` – base types (difficulty, problem blocks).
- `src/cpptai/env.py``.env` loader without dependencies.
- `src/main.py` – startup CLI.
- `tests/` – unit tests.
- `research.tex` – LaTeX document (auto‑loaded charts/tables).
## Quick Start
- Run the main pipeline:
- Windows PowerShell: `python .\src\main.py`
- Alternative: `python -m src.main`
- Primary outputs:
- `ragionamenti.csv` – pipeline artifacts.
- `memoria.json` – execution state/memory.
- `benchmarks.csv` and `benchmarks.json` – quantitative results.
## Benchmarks
- Implemented metrics:
- Accuracy vs baselines: CoT, ToT, GoT, ReAct.
- Diversity: Shannon entropy over solution clusters (hash embeddings + k‑means).
- Error rates: GSM8K/MATH/AIME sets (proxy/placeholder if data unavailable).
- Average time per problem and token counts.
- Execution: run `src/main.py`; benchmarks run automatically and are saved to `benchmarks.csv`/`benchmarks.json`.
## LaTeX Research
- `research.tex` loads `benchmarks.csv` with `pgfplotstable` and generates tables/plots.
- Typical compilation:
- `pdflatex research.tex`
- Repeat compilation if needed to update references.
- Requires a LaTeX distribution with `pgfplots`/`pgfplotstable` (e.g., TeX Live/MiKTeX).
## Tests
- Run unit tests:
- `python -m unittest discover -s tests -p "test_*.py" -q`
- Tests use only the standard library’s `unittest`.
## Security Notes
- Do not commit API keys/secrets.
- The client avoids logging sensitive content and uses fallbacks when no key is present.
## Troubleshooting
- Import errors in tests: ensure `src` is on `PYTHONPATH` or use the commands above; tests already include a local path fix.
- No response from DeepSeek: verify `DEEPSEEK_API_KEY` in `.env` and connectivity.
## Availability
- Repository: https://github.com/fra150/CPPTAI
## Generate Benchmarks and Figures
- Disable external calls if needed: PowerShell `$env:BENCH_DISABLE_EXTERNAL=1; python .\src\main.py`
- Outputs:
- `benchmarks.csv`, `benchmarks_summary.csv`, `benchmarks.json`
- `cumulative_accuracy.csv`, `error_by_phase.csv`, `stats_summary.csv`
- Compile LaTeX: `pdflatex research.tex` (twice for references).
## License
- MIT open‑source