diff --git a/docs/evals.md b/docs/evals.md index 6960849..e66db0a 100644 --- a/docs/evals.md +++ b/docs/evals.md @@ -1,3 +1,8 @@ +--- +title: LLM evals in Python, next to your tests +description: Write LLM evals in Python with Apte. An eval is a test that returns a value, scored by evaluators or an LLM judge, with fixtures, concurrency and a JSONL history of runs. +--- + # Evals Evaluate LLM outputs with scored metrics and historical tracking. diff --git a/docs/index.md b/docs/index.md index 2196842..7f2d0f4 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,8 +1,13 @@ +--- +title: Async-first Python testing and LLM evals +description: Apte is a Python testing framework and LLM eval runner. Tests run as coroutines on a single event loop, with explicit dependency injection instead of fixtures resolved by name. +--- + # Apte -**Async-first testing with explicit dependency injection.** +**Async-first Python testing with explicit dependency injection, and LLM evals in the same runner.** -Apte is a Python testing framework designed for modern async applications. Instead of implicit fixture resolution by name, Apte requires you to explicitly declare what each test needs. +Apte is a Python testing framework for async applications, and an alternative to pytest with pytest-asyncio when your tests are mostly I/O. Tests run as coroutines on a single event loop, so they run concurrently without separate processes. Instead of implicit fixture resolution by name, Apte requires you to explicitly declare what each test needs. LLM evals are tests that return a score instead of asserting, and they use the same fixtures and the same CLI. ## Why Apte? diff --git a/mkdocs.yml b/mkdocs.yml index d945066..6f9d333 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,5 +1,6 @@ site_name: Apte -site_description: Async-first testing with explicit dependency injection +site_url: https://renaudcepre.github.io/apte/ +site_description: Apte is an async-first Python testing framework with explicit dependency injection and native LLM evals. Tests and evals run as coroutines on one event loop. repo_url: https://github.com/renaudcepre/apte repo_name: renaudcepre/apte diff --git a/pyproject.toml b/pyproject.toml index 95722f6..efa1c84 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "apte" version = "0.3.1" -description = "Async-first Python testing framework" +description = "Async-first Python testing framework with explicit dependency injection and native LLM evals" readme = "README.md" requires-python = ">=3.10" license = { text = "MIT" } @@ -19,6 +19,10 @@ keywords = [ "test-framework", "asyncio", "fixtures", + "llm-evals", + "llm-evaluation", + "evals", + "pytest-alternative", ] classifiers = [ "Development Status :: 3 - Alpha",