Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ uv sync # base install (Anthropic, OpenAI, LiteLLM + Nice
uv sync --extra bertopic # + BERTopic topic backend (heavy)

cp .env.example .env # add provider key(s); loaded automatically
uv run conference-analyzer # NiceGUI GUI on http://localhost:6868
uv run conference-analyzer --clear-cache # wipe the on-disk cache
uv run conflens # NiceGUI GUI on http://localhost:6868
uv run conflens --clear-cache # wipe the on-disk cache
```

The GUI (`app.py`) is a thin **NiceGUI** presentation layer; all non-UI logic
Expand All @@ -46,7 +46,7 @@ behaviour, add a test next to the matching `tests/test_*.py`.

Beyond the automated gate, for changes with real runtime surface:

- **Boot the app:** `uv run conference-analyzer`, confirm `GET /` returns 200
- **Boot the app:** `uv run conflens`, confirm `GET /` returns 200
and the logs are clean.
- **Scraper/source changes:** also validate against the live source (counts, a
sample record's title/authors/abstract). ACL listing pages are large and may
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ stays — this policy is about tooling attribution, not the app's providers.
## Front-end (NiceGUI)

The app has a single **NiceGUI** GUI in `conflens/app.py` (console script
`conference-analyzer`). All non-UI logic (filtering, sorting, highlighting, the
`conflens`). All non-UI logic (filtering, sorting, highlighting, the
computed view, exports) lives in **`conflens/view.py`** and the pipeline — put
behaviour changes there so the UI stays a thin presentation layer.
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
uv sync --frozen --no-install-project ${EXTRAS}

# 2) Copy the project and install it (the conference-analyzer entry point).
# 2) Copy the project and install it (the conflens entry point).
COPY . /app
COPY --link .env* /app/
RUN --mount=type=cache,target=/root/.cache/uv \
Expand All @@ -38,6 +38,6 @@ ENV HOME=/home/app
EXPOSE 6868

# ENTRYPOINT + CMD: default launches the server; `docker run <image> --clear-cache`
# (or any other flags) is appended to `conference-analyzer`.
ENTRYPOINT ["conference-analyzer"]
# (or any other flags) is appended to `conflens`.
ENTRYPOINT ["conflens"]
CMD ["--host", "0.0.0.0", "--port", "6868"]
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,12 @@ Requires Python 3.13+ and [uv](https://docs.astral.sh/uv/).
```bash
uv sync # Claude, OpenAI, LiteLLM work out of the box
cp .env.example .env # then fill in your provider key(s)
uv run conference-analyzer # or: uv run python run.py
uv run conflens # or: uv run python run.py
```

(`conflens` is the console command once the package is installed;
`conference-analyzer` remains as an alias.)

Then open <http://localhost:6868>.

Keys are read from `.env` (loaded automatically) or the process environment;
Expand Down Expand Up @@ -248,11 +251,11 @@ rebuild from scratch.
To wipe the cache from the command line:

```bash
uv run conference-analyzer --clear-cache # default ~/.cache/conflens
uv run conference-analyzer --clear-cache --cache-dir /path/to/cache
uv run conflens --clear-cache # default ~/.cache/conflens
uv run conflens --clear-cache --cache-dir /path/to/cache
```

Other flags: `--host`, `--port` (run `conference-analyzer --help`).
Other flags: `--host`, `--port` (run `conflens --help`).

## Cost

Expand Down
2 changes: 1 addition & 1 deletion conflens/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def _load_env() -> None:

def _parse_args(argv: list[str] | None = None) -> argparse.Namespace:
parser = argparse.ArgumentParser(
prog="conference-analyzer",
prog="conflens",
description="Browse, theme-classify, and topic-model conference papers.",
)
parser.add_argument(
Expand Down
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ dependencies = [
bertopic = ["bertopic>=0.16"]

[project.scripts]
conference-analyzer = "conflens.cli:main"
conflens = "conflens.cli:main"
conference-analyzer = "conflens.cli:main" # backward-compatible alias

[dependency-groups]
# Installed by default with `uv sync`; used for tests + linting / CI.
Expand Down
2 changes: 1 addition & 1 deletion run.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Convenience launcher: ``uv run python run.py`` (or ``python run.py``).

Equivalent to the installed ``conference-analyzer`` console script.
Equivalent to the installed ``conflens`` console script.
Open http://localhost:6868 once it is running.
"""

Expand Down
Loading