Repository navigation
v0.4.0
Draft a collection's finding aid with a language model, for a curator to review and edit, and give every replayed page an address of its own.
New
-
Drafting descriptions. A curator can ask a language model for a first draft of a collection's description, narrative, subjects and dates. The draft is built from what indice already knows: the finding aid's existing fields, each crawl's provenance and seed pages, facet counts, and a sample of pages from the search index. The sample starts with each crawl's front page and then spreads across the collection's sites, skipping error pages. A draft never touches the creator, curator or rights fields. (#197)
- Any OpenAI-compatible model, hosted or local (Ollama, llama.cpp, vLLM). It is off unless an operator adds an
llm:section toconfig.yaml; the API key, if one is needed, goes inINDICE_LLM_API_KEY. - In the editor, a Draft a description button fills empty fields and offers the draft beside fields you've already written. Before anything is sent, the editor shows which model and service will receive it, the operator's note about that service (
llm.notice), and the exact pages and prompt. Nothing is saved until you press Save. - From the command line,
indice collection draft <name>prints a draft as YAML.--applyfills empty fields,--replace FIELDoverwrites named ones, and--show-promptprints what would be sent without calling a model. - Provenance. The finding aid records which fields hold a model's drafted text, with the model, the service and when. The collection page says so in one line. A field you rewrite leaves the record. Each draft request is in the audit trail.
- Configurable.
describe.max_input_charssets how much text is sent (24,000 characters by default), anddescribe.prompt_filereplaces the built-in prompt with your own.
- Any OpenAI-compatible model, hosted or local (Ollama, llama.cpp, vLLM). It is off unless an operator adds an
-
Every replayed page has an address of its own. Replay links are now short and readable, in the manner of Wayback-style archives:
/crawl/{id}/{timestamp}/{archived url}, or/collection/{id}/{timestamp}/{archived url}for a whole collection. The address bar follows the reader from page to page, so copying it always gives a link to the page in view. The request log records only which crawl or collection was replayed, never the page. (#200)
Changes
- A finding aid's narrative uses the full width of its column on the collection page. (#197)
compose.yamlpassesINDICE_LLM_API_KEYto indice, so a Compose deployment can use a hosted model. (#197)
Upgrading
Nothing to do: no reindex, and drafting stays off until you configure a model. Old /replay/viewer?… links no longer work; links from indice's own pages all use the new addresses. If you deploy with Docker Compose, fetch the compose.yaml from this release to pass the API key through.
The container image is ghcr.io/edsu/indice:v0.4.0 (also :latest), for linux/amd64 and linux/arm64.
Full changelog: v0.3.1...v0.4.0