Repository navigation
Releases: vdmitriyev/llmexer
Releases · vdmitriyev/llmexer
Release list
0.4.8
0.4.7
- Add the
openrouterLLM provider, reaching theOpenRouter <https://openrouter.ai/>_ gateway over its OpenAI-compatible endpoint. OnlyPROVIDER_OPENROUTER_KEYis required; the URL defaults tohttps://openrouter.ai/api/v1. Adds theopenrouter_provider_orderandopenrouter_reasoning_efforthyperparameters in theexperiment inittemplates. - Add a spending cap to
experiment run: OpenRouter call costs are read fromusage.cost, logged to a newcost_logstable and counted againstPROVIDER_OPENROUTER_MAX_SPEND(default 5.00 USD). Reaching it pauses the run gracefully, leaving the remaining rows pending. The tally is per run and resets when the command exits. - Edit the
litellmexample profile of theexperiment inittemplate:deepseek-ai/DeepSeek-V4-Flash-0731replacesminimax-m2.7:229b. - Add a
total_costsmetric toexperiment stats: the sum ofcost_logs.cost_usd, shown as USD.
0.4.6 (2026-09-21)
- Breaking: add
data_idandprompt_idcolumns to everyexperiment_<provider>/try_experiment_<provider>table, written frommapping.csvbygenerate,updateandtry. - An older database without the two columns is refused on open: re-run
experiment generate, or add and fill the columns in place manually using SQL (checkmigrations.mdfor details on the manual migration) - Breaking:
analysis add-agreementnow scores Cohen's kappa per prompt and pairs profiles rather than provider/model/profile triples. - Add
intermediate_values_dirtopairwise_cohen_kappa, writing the rows behind each kappa to one CSV per prompt - Edit
experiment trythat no longer needs a generated database: it warns that the try will not be stored, then runs and saves the response file as usual. A--filenaming a missing database still aborts. - Add
--suggesttoexperiment try: prints one randomly chosen combination ofdata.csv,prompts/andllms-for-experiment.csvas a ready command, and runs nothing.
0.4.6
- Breaking: add
data_idandprompt_idcolumns to everyexperiment_<provider>/try_experiment_<provider>table, written frommapping.csvbygenerate,updateandtry. - An older database without the two columns is refused on open: re-run
experiment generate, or add and fill the columns in place manually using SQL (checkmigrations.mdfor details on the manual migration) - Breaking:
analysis add-agreementnow scores Cohen's kappa per prompt and pairs profiles rather than provider/model/profile triples. - Add
intermediate_values_dirtopairwise_cohen_kappa, writing the rows behind each kappa to one CSV per prompt - Edit
experiment trythat no longer needs a generated database: it warns that the try will not be stored, then runs and saves the response file as usual. A--filenaming a missing database still aborts. - Add
--suggesttoexperiment try: prints one randomly chosen combination ofdata.csv,prompts/andllms-for-experiment.csvas a ready command, and runs nothing.
0.4.5
- Add
project list: every project under.projects/with the parts it holds (search, experiment, analysis, papers) and its creation date. Takes--sort-byand--desc. - Edit
project createthat now also writes aREADME.mddescribing what the project holds and thellmexerversion that created it. - Edit
project createthat now takes its.gitignoreandREADME.mdfrom the bundleddata/project/files instead of strings in the code. - Add
experiment fixthat makes JSON responses from LLM more processing-friendly by repairing them. Logging every change to the newdatafix_logstable. Writes only with--apply. - Add
--ensure-json-formatparam toexperiment fix, fixes the format of the LLM response by removing prose and converting from markdown to JSON. - Add
--rename-json-field OLD NEWparam toexperiment fix, renaming a top-level field of the answer JSON instead of repairing it. - Edit
experiment initthat now takes its starter prompt from the bundleddata/experiment/prompt01.txtinstead of a string in the code. The example now asks for a JSON answer with yes/no fields. - Add
analysis add-agreement: a notebook reporting Cohen's kappa between every pair of provider, model and profile, per yes/no field. It loads and flattens the experiment itself, so it runs without the other notebooks. - Added a new dependency to
analysisdependency group -scikit-learn - Edit
search createthat now defaults to a broader boolean query, written single-quoted on one line in the YAML. - Edit
project,experimentandsearchthat called on their own now answer instead of printing the help: the first two report what is currently set,searchlists the searches.
0.4.4
experiment export: add--filter-code, a case-insensitive glob matched against the wholecode, soS12_*selects every combination built from one data item.experiment export: add--filter-response, a case-insensitive regular expression searched anywhere in the answer. Rows that have not run carry no answer and drop out.
0.4.3
experiment copy-searchalso copies the publication year, writingID;Title;Abstract;year;doi;authors. A search file without ayearcolumn is now rejected.experiment exporttakesrun's--filter-provider/--filter-model/--filter-profile. Each filter is appended to the HTML file name and named in the page header.project createnow writes a.gitignoreinto the new project folder, keeping the generated files (e.g., databases, HTML, JSON responses, backups, etc.) out of version control.- Add
experiment compact: packs an experiment database into a.7zarchive of the same name next to it, leaving the database in place. - Added a new dependency -
py7zr
0.4.2
- Breaking: the flattened answers exported by the experiment notebook now carry
code,model_name,provider_nameandprofile_nameahead of the parsed values, so a row can be traced back to the combination that produced it.transform.flattened_only()adds them unconditionally;stats.value_counts_summary()leaves them out of the answer profile. - Both analysis notebooks split their setup cell in three — folders, imports, then
DB_FILE/SEARCHESalone with the prints, so the value a reader actually changes is easy to find. - Add
stats.answers_by_model()andplots.plot_answers_by_model(): one answer column crosstabbed against provider and model, as a table and as a chart. Both are wired intoanalyse_experiment.ipynb— re-runanalysis init --rewriteto pick them up.
0.4.1
0.4.0
ADD: a new CLI category called `analysis` that should simplify analys…