ๆƒฏๆ€ง่šๅˆ ้ซ˜ๆ•ˆ่ฟฝ่ธชๅ’Œ้˜…่ฏปไฝ ๆ„Ÿๅ…ด่ถฃ็š„ๅšๅฎขใ€ๆ–ฐ้—ปใ€็ง‘ๆŠ€่ต„่ฎฏ
้˜…่ฏปๅŽŸๆ–‡ ๅœจๆƒฏๆ€ง่šๅˆไธญๆ‰“ๅผ€

ๆŽจ่่ฎข้˜…ๆบ

่…พ
่…พ่ฎฏCDC
The Cloudflare Blog
ITไน‹ๅฎถ
ITไน‹ๅฎถ
V
V2EX
้›ทๅณฐ็ฝ‘
้›ทๅณฐ็ฝ‘
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
Stack Overflow Blog
Stack Overflow Blog
ๅš
ๅšๅฎขๅ›ญ - Franky
Engineering at Meta
Engineering at Meta
S
SegmentFault ๆœ€ๆ–ฐ็š„้—ฎ้ข˜
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
ๅš
ๅšๅฎขๅ›ญ - ๅธๅพ’ๆญฃ็พŽ
ไบ‘้ฃŽ็š„ BLOG
ไบ‘้ฃŽ็š„ BLOG
ๅฐไผ—่ฝฏไปถ
ๅฐไผ—่ฝฏไปถ
ๅš
ๅšๅฎขๅ›ญ - ๅถๅฐ้’—
Blog โ€” PlanetScale
Blog โ€” PlanetScale
C
Check Point Blog
A
About on SuperTechFans
B
Blog
ๆœˆๅ…‰ๅšๅฎข
ๆœˆๅ…‰ๅšๅฎข
ๅฎ็މ็š„ๅˆ†ไบซ
ๅฎ็މ็š„ๅˆ†ไบซ
Last Week in AI
Last Week in AI

Hacker News - Newest: "LLM"

GitHub - lechmazur/position_bias: A benchmark for testing whether LLM judges keep the same preference when two lightly edited versions of the same story are shown in opposite orders. Flex routing (EU and EFTA) Dark Factories: Retooling for LLM Velocity Ask HN: What would be the impact of a LLM output injection attack? GitHub - Oaklight/llm-rosetta: Production-ready LLM API translation layer for Python โ€” bidirectional conversion between OpenAI, Anthropic & Google formats via hub-and-spoke IR. Optional API gateway. Streaming & non-streaming. Zero core deps. Contributions welcome! GitHub - browser-use/browser-harness: Self-healing browser harness that enables LLMs to complete any task. GitHub - moeen-mahmud/remen: Remen turns thoughts into something you can return to Analyzing 156 LLM Launch Posts on Hacker News ChatGPT vs Gemini vs Claude: The Best LLM Subscription You Should Buy GitHub - salaamalykum/quran-semantic-search: High-density RAG Semantic Search Engine & Quran Corpus (GEO/SEO Architecture) GitHub - NVIDIA/TensorRT-LLM: TensorRT LLM provides users with an easy-to-use Python API to define Large Language Models (LLMs) and supports state-of-the-art optimizations to perform inference efficiently on NVIDIA GPUs. TensorRT LLM also contains components to create Python and C++ runtimes that orchestrate the inference execution in a performant way. The State of LLM Bug Bounties in 2026 Operational Readiness Criteria for Tool-Using LLM Agents Meshcore: Architecture for a Decentralized P2P LLM Inference Network How an LLM becomes more coherent as we train it GitHub - seetrex-ai/laimark GitHub - Jossifresben/BibCrit: AI-assited biblical textual criticism GitHub - wastedcode/memex: File system based wiki, maintained by Claude 99helpers.com GitHub - cliver-project/AITrigram GitHub - unbody-io/adapt: A self-evolving memory layer for AI agents. GitHub - hb20007/awesome-gen-ai-fails: A list of incidents where reliance on generative AI and LLMs resulted in harm to companies, individuals, or society GitHub - nevenkordic/localmind: Run any local LLM with persistent memory and context. CLI agent over Ollama with SQLite-backed hybrid recall. No cloud. Ask HN: What are the machine requirements for a LLM like Llama-3.1-8B? Faster LLM Inference via Sequential Monte Carlo grpo explained: group relative policy optimization for llm finetuning - cgft Stop comparing price per million tokens: the hidden LLM API costs ยท TensorZero Andrej Karpathy's LLM Wiki Is a Bad Idea GitHub - GG-QandV/mnemostroma: Offline RAM-first cognitive leer/coprocessor for AI agents and robotics. Solves "Context Abandonment" with 20-80ms latency using a dual-thread biomimetic memory architecture (ONNX + SQLite WAL). mempalace/agent at agent ยท skorotkiewicz/mempalace
GitHub - benmeryem-tech/llm-eval-kit: A lightweight, modu...
benmeryem_ai ยท 2026-05-02 ยท via Hacker News - Newest: "LLM"

๐Ÿš€ Just launched! If you find this useful, give it a star โ€” it's the only metric that helps me justify spending more time on it.


A single number tells you nothing. llm-eval-kit tells you why a response is good or bad โ€” and how to fix it.

$ llm-eval refine "Propose un plan stratรฉgique pour une startup IA en France en 2026."

โ•ญโ”€ Iteration 1 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  โ น Reasoning   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘  0.62                          โ”‚
โ”‚  โ น Factual     โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘  0.78                          โ”‚
โ”‚  โ น Coherence   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘  0.55  โ† weakest               โ”‚
โ”‚  โ น Safety      โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  0.99                          โ”‚
โ”‚           Overall: 0.74  โ†’  refining...                            โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ•ญโ”€ Iteration 2 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  โœ“ Reasoning   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘  0.84  (+0.22)                 โ”‚
โ”‚  โœ“ Factual     โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘  0.83  (+0.05)                 โ”‚
โ”‚  โœ“ Coherence   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘  0.87  (+0.32)                 โ”‚
โ”‚  โœ“ Safety      โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  0.99  ( =  )                  โ”‚
โ”‚           Overall: 0.88  โ†’  โœ… converged                           โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โœ“ Strengths:    Clear value-prop, sound market sizing
โœ— Weaknesses:   Missing GTM timeline, vague pricing
โ†’ Recommend:    Add 6-month milestones, propose 3 pricing tiers

Pour une dรฉmo animรฉe, voir demo.ipynb ou les exemples Python.


๐Ÿ“‘ Table of Contents

Click to expand

โœจ Why llm-eval-kit?

Most LLM evaluation tools give you one number. That's a thermometer โ€” useful, but it doesn't tell you what's broken or how to fix it.

llm-eval-kit is built around three convictions:

  1. Evaluation should be multi-dimensional. A response can be factually correct but incoherent, safe but illogical, creative but rambling. We score across 8 orthogonal critics so failure modes don't hide behind an average.
  2. Evaluation should be actionable. Every score ships with a rationale, issues, and suggestions โ€” fed straight into a self-refinement loop that rewrites the response until quality converges.
  3. Evaluation should be hackable. Every critic is a 30-line plugin. Every scorer is swappable. Every provider (Anthropic, OpenAI, Gemini, your local model) plugs into the same registry.

If you've ever shipped a prompt change and wondered "did I actually make it better?" โ€” this is for you.


๐Ÿ“Š How it compares

llm-eval-kit DeepEval RAGAS LangSmith promptfoo
Open source โœ… MIT โœ… โœ… โš ๏ธ Hosted/paid โœ…
Multi-dimensional scoring โœ… 8 critics โš ๏ธ G-Eval โš ๏ธ RAG-only โš ๏ธ Custom โš ๏ธ Custom
Self-refinement loop โœ… Built-in โŒ โŒ โŒ โŒ
Explainable output โœ… Strengths/weaknesses/recs โš ๏ธ Score-only โš ๏ธ Score-only โš ๏ธ Trace-based โš ๏ธ Score-only
Plugin architecture โœ… BaseCritic registry โš ๏ธ Limited โŒ โŒ โœ… JS plugins
Multi-model benchmark โœ… Async runner โš ๏ธ Manual โŒ โœ… โœ…
CLI included โœ… llm-eval โœ… โŒ โœ… โœ…
HTML / MD reports โœ… โš ๏ธ JSON-only โš ๏ธ DataFrame โœ… Web UI โœ…
Focus General-purpose + safety Test-driven RAG-only Tracing/obs Prompt-tests

Comparisons reflect maintainer interpretation of public docs as of May 2026 โ€” the ecosystem moves fast, contributions to this table are welcome.


๐Ÿš€ Installation

With uv (recommended โ€” 10ร— faster than pip)

uv pip install llm-eval-kit

With pip

pip install llm-eval-kit

With uvx (no install โ€” try it instantly)

uvx --from llm-eval-kit llm-eval evaluate "Explain quantum entanglement to a child."

From source (development)

git clone https://github.com/benmeryem-tech/llm-eval-kit.git
cd llm-eval-kit
make install-dev

Optional extras

pip install "llm-eval-kit[viz]"      # plotly + pandas + jinja2 (HTML dashboards)
pip install "llm-eval-kit[docs]"     # mkdocs-material
pip install "llm-eval-kit[logging]"  # structlog
pip install "llm-eval-kit[all]"      # everything

Configure your API key

cp .env.example .env
echo "ANTHROPIC_API_KEY=sk-ant-..." >> .env

Or use the bundled MockProvider to develop offline โ€” no API calls, deterministic scores, zero cost.


โšก Quickstart

1. Evaluate a response

from llm_eval_kit import Evaluator, global_weighted_score, explain_score

evaluator = Evaluator(model="claude-3-5-sonnet-20241022")
result = evaluator.evaluate("Propose a strategic plan for an AI startup in France in 2026.")

score = global_weighted_score(result)
print(f"Overall: {score.overall_score:.2f}")
for dim, s in score.detailed_scores.items():
    print(f"  โ€ข {dim:<12} {s:.2f}")

explanation = explain_score(result)
print(f"\nโœ“ {explanation.strengths}")
print(f"โœ— {explanation.weaknesses}")
print(f"โ†’ {explanation.recommendations}")

2. Self-refine until quality plateaus

from llm_eval_kit import SelfRefiner

refiner = SelfRefiner(model="claude-3-5-sonnet-20241022")
refined = refiner.refine(prompt, iterations=3)

print(f"Iterations:    {refined.iterations}")
print(f"Improvements:  {refined.improvement_count}")
print(f"Converged:     {refined.converged}")
print(f"Final score:   {refined.final.overall_score:.3f}")

3. Use the CLI

llm-eval evaluate "Explain CRISPR in 3 sentences." --output report.html --format html
llm-eval refine "Write a haiku about recursion." --iterations 3 -v
llm-eval --version

4. Build a custom critic (plugin system)

from llm_eval_kit.critique.base import BaseCritic
from llm_eval_kit.core.types import CritiqueDimension
from llm_eval_kit import Evaluator

class ConcisenessCritic(BaseCritic):
    """Penalize verbose responses."""
    dimension = CritiqueDimension.COHERENCE

    def _build_prompt(self, prompt: str, response: str) -> str:
        return f"""Score this response on conciseness (0-1).
PROMPT: {prompt}
RESPONSE: {response}
Return JSON: {{"score": <float>, "rationale": "...", "issues": [...], "suggestions": [...]}}"""

evaluator = Evaluator(critics=[ConcisenessCritic()])
result = evaluator.evaluate("Explain recursion in one sentence.")

5. Benchmark multiple models

from llm_eval_kit.benchmarks import MultiModelBenchmark

bench = MultiModelBenchmark(
    models=["claude-3-5-sonnet-20241022", "claude-3-5-haiku-20241022"],
    dataset="reasoning_mini",
)
report = bench.run()
bench.export_html("dashboard.html")
bench.export_json("results.json")

for model, scores in report.summary.items():
    print(f"{model}: overall = {scores['overall']:.3f}")

๐Ÿง  The 8 critics

Critic Catches Preset
Reasoning Logical leaps, missing premises, fallacies CORE, FULL
Factual Hallucinations, unsupported claims CORE, FULL, SAFETY
Coherence Contradictions, off-topic drift CORE, FULL, CREATIVE
Safety Toxicity, prompt injection, harmful instructions CORE, FULL, SAFETY
Bias Stereotyping, demographic skew FULL, SAFETY
Creativity Novelty, originality, style FULL, CREATIVE
Completeness Missing aspects, partial answers FULL, CREATIVE
Clarity Jargon, structure, readability FULL, CREATIVE
from llm_eval_kit.critique import CORE_CRITICS, FULL_CRITICS, CREATIVE_CRITICS, SAFETY_CRITICS
evaluator = Evaluator(critics=FULL_CRITICS)

๐Ÿงฉ Architecture

flowchart LR
    A[๐Ÿ“ Prompt] --> B{๐ŸŽฏ Evaluator}
    B -->|fan-out| C1[๐Ÿง  Reasoning]
    B -->|fan-out| C2[๐Ÿ“š Factual]
    B -->|fan-out| C3[๐Ÿ”— Coherence]
    B -->|fan-out| C4[๐Ÿ›ก๏ธ Safety]
    B -->|fan-out| C5[โš–๏ธ Bias]
    B -->|fan-out| C6[๐ŸŽจ Creativity]
    B -->|fan-out| C7[โœ… Completeness]
    B -->|fan-out| C8[๐Ÿ’Ž Clarity]
    C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 --> D[โš–๏ธ Weighted scorer]
    D --> E{Converged?}
    E -->|no| F[๐Ÿ”„ Self-refiner] --> B
    E -->|yes| G[๐Ÿ“Š Explanation + Report]
Loading
src/llm_eval_kit/
โ”œโ”€โ”€ evaluator/          # Main orchestrator (sync + async)
โ”œโ”€โ”€ refinement.py       # Self-refinement loop
โ”œโ”€โ”€ scoring/            # Weighted multi-criteria scoring + registry
โ”œโ”€โ”€ explainability/     # Strengths ยท weaknesses ยท recommendations
โ”œโ”€โ”€ report/             # JSON ยท Markdown ยท HTML reports
โ”œโ”€โ”€ providers/          # Anthropic ยท Mock ยท ProviderRegistry
โ”œโ”€โ”€ critique/           # 8 critics + BaseCritic plugin API
โ”œโ”€โ”€ benchmarks/         # Multi-model async runner + datasets
โ”œโ”€โ”€ tracking/           # EvaluationStore (persisted runs)
โ”œโ”€โ”€ config/             # Pydantic settings (.env)
โ”œโ”€โ”€ core/               # Types ยท exceptions ยท logging
โ””โ”€โ”€ cli.py              # `llm-eval` entry point

๐Ÿ”Œ Extensibility

from llm_eval_kit.providers import ProviderRegistry, AnthropicProvider, MockProvider
ProviderRegistry.register("my-llm", MyCustomProvider)

from llm_eval_kit import ScorerRegistry, WeightedScorer
ScorerRegistry.register("strict", WeightedScorer(weights={"safety": 0.6, "factual": 0.4}))

from llm_eval_kit import EvaluationStore
store = EvaluationStore("runs.db")
store.save(result)
history = store.query(model="claude-3-5-sonnet-20241022", min_score=0.8)

๐Ÿ“š Documentation

Resource Link
๐Ÿ“– Full docs benmeryem-tech.github.io/llm-eval-kit
โšก Quickstart guide docs/quickstart.md
๐Ÿงช Interactive demo demo.ipynb
๐Ÿ“‚ Examples examples/
๐Ÿ› ๏ธ Contributing CONTRIBUTING.md
๐Ÿ“ Changelog CHANGELOG.md
๐Ÿ›ก๏ธ Security SECURITY.md

๐Ÿ—บ๏ธ Roadmap

โœ… Shipped (v0.2)

  • 8-critic evaluation engine
  • Self-refinement loop with convergence detection
  • Weighted scoring + explainability
  • JSON / Markdown / HTML reports
  • Anthropic provider + Mock provider
  • Async multi-model benchmark runner
  • CLI (llm-eval evaluate / refine)
  • Plugin registries (critics, scorers, providers)
  • Persisted evaluation store

๐Ÿ› ๏ธ Next (v0.3)

  • OpenAI + Gemini + Ollama provider adapters
  • Plotly-powered HTML dashboard with drill-down
  • Cost tracking per evaluation
  • Streaming evaluator (token-by-token critique)
  • PyPI release + Homebrew formula
  • MkDocs site on GitHub Pages

๐ŸŒŒ Beyond (v1.0)

  • Web UI (FastAPI + React) for non-developers
  • HuggingFace Hub integration
  • CI plugin (block PRs if eval score regresses)
  • Eval suite marketplace (community-shared critic packs)

Vote on what's next on GitHub Discussions ๐Ÿ—ณ๏ธ


๐Ÿค Contributing

We โค๏ธ contributions:

  • ๐Ÿ“ Add a critic โ€” see examples/custom_critic.py
  • ๐ŸŒ Add a provider โ€” implement BaseProvider in providers/
  • ๐Ÿ“Š Add a benchmark dataset โ€” drop a JSON file in benchmarks/datasets/
  • ๐Ÿ› Fix a bug โ€” issues tagged good first issue
  • ๐Ÿ“– Improve docs โ€” typos, examples, translations
git clone https://github.com/benmeryem-tech/llm-eval-kit.git
cd llm-eval-kit
make install-dev
pre-commit install
make test
make lint
make format

See CONTRIBUTING.md for the full guide.


๐Ÿ’– Community

  • ๐Ÿ’ฌ GitHub Discussions โ€” questions, ideas, show-and-tell
  • ๐Ÿ› Issues โ€” bugs and feature requests
  • โญ Star the repo if it helps you โ€” visibility lets us spend more time on it

๐Ÿ“„ License & Usage

Dual License Model

llm-eval-kit uses a fair, transparent licensing approach:

โœ… FREE for non-commercial use

  • Personal projects, students, researchers
  • Open-source non-profit projects
  • Full source code access
  • See CUSTOM_LICENSE.md for terms

๐Ÿ’ผ COMMERCIAL LICENSE REQUIRED

  • Companies generating revenue
  • SaaS platforms
  • Integrations into commercial products
  • Flexible pricing ($3k - $250k+/year)

Learn More

Why This Model?

  • Transparent and fair for everyone
  • Open-source remains accessible
  • Businesses pay proportionally
  • Supports sustainable development
  • Aligns with Anthropic values

๐Ÿ‘ค Author

BEN MERYEM Azzadine โ€” @benmeryem-tech

Built with โค๏ธ in France, on top of Anthropic Claude.


If llm-eval-kit saved you time, please โญ the repo.

It's the single fastest way to support an indie open-source maintainer.

โฌ† Back to top

</di