{
  "_id": "6ad5c0764a34890ab4938869",
  "Package": "LLMR",
  "Title": "Interface for Large Language Model APIs in R",
  "Version": "0.8.14",
  "LazyData": "true",
  "Authors@R": "person(\"Ali\", \"Sanaei\", , \"sanaei@uchicago.edu\", role = c(\"aut\", \"cre\"))",
  "Description": "One interface to many large language model providers: a\nsingle configuration object and a single calling function serve\nchat and embedding models alike, so research code does not\nchange when the provider does. The same calls scale to\nmulti-model and multi-condition studies.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "RoxygenNote": "7.3.3",
  "Roxygen": "list(markdown = TRUE)",
  "Config/testthat/edition": "3",
  "URL": "https://github.com/asanaei/LLMR, https://asanaei.github.io/LLMR/",
  "BugReports": "https://github.com/asanaei/LLMR/issues",
  "VignetteBuilder": "knitr",
  "NeedsCompilation": "no",
  "Author": "Ali Sanaei [aut, cre]",
  "Maintainer": "Ali Sanaei <sanaei@uchicago.edu>",
  "Config/pak/sysreqs": "libicu-dev libssl-dev",
  "Repository": "https://asanaei.r-universe.dev",
  "Date/Publication": "2026-10-19 02:01:30 UTC",
  "RemoteUrl": "https://github.com/asanaei/llmr",
  "RemoteRef": "HEAD",
  "RemoteSha": "25bf38551ea854384c354528f3a87936ef033ad5",
  "Packaged": {
    "Date": "2026-10-19 06:45:04 UTC",
    "User": "root"
  },
  "_user": "asanaei",
  "_type": "src",
  "_file": "LLMR_0.8.14.tar.gz",
  "_fileid": "https://r2.ropensci.org/0bc8dbf5611272694d7dc44baf522437c2f74224b69fe96632b8bb5b0da7b183",
  "_filesize": 5350142,
  "_sha256": "0bc8dbf5611272694d7dc44baf522437c2f74224b69fe96632b8bb5b0da7b183",
  "_expires": "2027-01-27T07:02:12.000Z",
  "_created": "2026-10-19T06:45:04.000Z",
  "_published": "2026-10-19T07:02:14.447Z",
  "_buildurl": "https://github.com/r-universe/asanaei/actions/runs/39211415124",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 117926521044,
      "time": 157,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "12167209287"
    },
    {
      "job": 117926520918,
      "time": 168,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "NOTE",
      "artifact": "12167843271"
    },
    {
      "job": 117926520929,
      "time": 118,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "12167799151"
    },
    {
      "job": 117926520827,
      "time": 123,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "NOTE",
      "artifact": "12167999345"
    },
    {
      "job": 117925527782,
      "time": 192,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12167474561"
    },
    {
      "job": 117926520773,
      "time": 106,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12166989443"
    },
    {
      "job": 117926520755,
      "time": 112,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "12167708744"
    },
    {
      "job": 117926520845,
      "time": 108,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "12167024523"
    },
    {
      "job": 117926520847,
      "time": 114,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "NOTE",
      "artifact": "12167773627"
    }
  ],
  "_upstream": "https://github.com/asanaei/llmr",
  "_commit": {
    "id": "25bf38551ea854384c354528f3a87936ef033ad5",
    "author": "Ali Sanaei <20296004+asanaei@users.noreply.github.com>",
    "committer": "Ali Sanaei <20296004+asanaei@users.noreply.github.com>",
    "message": "Restore API-key variables in tests; correct the check environment\n\nFive tests set a fake key and then unset the variable, removing a real key from an interactive session; they now restore the previous value with withr. cran-comments names the macOS version the checks ran on.\n",
    "time": 1792375290
  },
  "_maintainer": {
    "name": "Ali Sanaei",
    "email": "sanaei@uchicago.edu",
    "login": "asanaei",
    "description": "",
    "uuid": 20296004
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "httr2",
      "version": ">= 1.1.1",
      "role": "Imports"
    },
    {
      "package": "curl",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "memoise",
      "role": "Imports"
    },
    {
      "package": "future",
      "role": "Imports"
    },
    {
      "package": "future.apply",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "base64enc",
      "role": "Imports"
    },
    {
      "package": "mime",
      "role": "Imports"
    },
    {
      "package": "glue",
      "version": ">= 1.6.0",
      "role": "Imports"
    },
    {
      "package": "cli",
      "version": ">= 3.6.0",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "vctrs",
      "role": "Imports"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "tidyselect",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.2.0",
      "role": "Suggests"
    },
    {
      "package": "roxygen2",
      "version": ">= 7.1.2",
      "role": "Suggests"
    },
    {
      "package": "progressr",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "jsonvalidate",
      "role": "Suggests"
    },
    {
      "package": "stringi",
      "role": "Suggests"
    },
    {
      "package": "kableExtra",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "asanaei",
  "_selfowned": true,
  "_usedby": 3,
  "_updates": [
    {
      "week": "2025-45",
      "n": 1
    },
    {
      "week": "2026-17",
      "n": 1
    },
    {
      "week": "2026-18",
      "n": 1
    },
    {
      "week": "2026-21",
      "n": 1
    },
    {
      "week": "2026-23",
      "n": 4
    },
    {
      "week": "2026-24",
      "n": 16
    },
    {
      "week": "2026-25",
      "n": 11
    },
    {
      "week": "2026-26",
      "n": 1
    },
    {
      "week": "2026-28",
      "n": 4
    },
    {
      "week": "2026-29",
      "n": 1
    },
    {
      "week": "2026-30",
      "n": 9
    },
    {
      "week": "2026-31",
      "n": 4
    },
    {
      "week": "2026-32",
      "n": 1
    },
    {
      "week": "2026-41",
      "n": 13
    },
    {
      "week": "2026-42",
      "n": 6
    },
    {
      "week": "2026-43",
      "n": 12
    }
  ],
  "_tags": [],
  "_stars": 8,
  "_contributors": [
    {
      "user": "asanaei",
      "count": 171,
      "uuid": 20296004
    }
  ],
  "_userbio": {
    "uuid": 20296004,
    "type": "user",
    "name": "Ali Sanaei",
    "followers": 4
  },
  "_downloads": {
    "count": 441,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/LLMR"
  },
  "_devurl": "https://github.com/asanaei/llmr",
  "_pkgdown": "https://asanaei.github.io/LLMR/",
  "_searchresults": 87,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/LLMR.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/asanaei/llmr",
  "_realowner": "asanaei",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.1",
      "date": "2024-10-21"
    },
    {
      "version": "0.1.2",
      "date": "2025-01-17"
    },
    {
      "version": "0.2.1",
      "date": "2025-02-11"
    },
    {
      "version": "0.2.3",
      "date": "2025-03-13"
    },
    {
      "version": "0.2.5",
      "date": "2025-03-22"
    },
    {
      "version": "0.3.0",
      "date": "2025-05-27"
    },
    {
      "version": "0.4.2",
      "date": "2025-06-26"
    },
    {
      "version": "0.5.0",
      "date": "2025-07-17"
    },
    {
      "version": "0.6.0",
      "date": "2025-08-26"
    },
    {
      "version": "0.6.3",
      "date": "2025-10-11"
    },
    {
      "version": "0.6.4",
      "date": "2026-05-21"
    },
    {
      "version": "0.8.6",
      "date": "2026-06-17"
    },
    {
      "version": "0.8.10",
      "date": "2026-07-10"
    },
    {
      "version": "0.8.11",
      "date": "2026-07-24"
    }
  ],
  "_exports": [
    "build_factorial_experiments",
    "call_llm",
    "call_llm_broadcast",
    "call_llm_compare",
    "call_llm_par",
    "call_llm_par_structured",
    "call_llm_par_tags",
    "call_llm_robust",
    "call_llm_stream",
    "call_llm_sweep",
    "call_llm_tools",
    "chat_session",
    "diagnostics",
    "disable_structured_output",
    "enable_structured_output",
    "ensure_alternating_messages",
    "finish_reason",
    "get_batched_embeddings",
    "is_truncated",
    "llm_agreement",
    "llm_api_key_env",
    "llm_batch_cancel",
    "llm_batch_fetch",
    "llm_batch_status",
    "llm_batch_submit",
    "llm_config",
    "llm_failures",
    "llm_fn",
    "llm_fn_structured",
    "llm_fn_tags",
    "llm_hash",
    "llm_judge",
    "llm_log_active",
    "llm_log_disable",
    "llm_log_enable",
    "llm_log_read",
    "llm_log_status",
    "llm_logprobs",
    "llm_mutate",
    "llm_mutate_structured",
    "llm_mutate_tags",
    "llm_par_resume",
    "llm_parse_structured",
    "llm_parse_structured_col",
    "llm_parse_tags",
    "llm_parse_tags_col",
    "llm_persona_demographic_fields",
    "llm_persona_overview",
    "llm_persona_split",
    "llm_preview",
    "llm_render_messages",
    "llm_replicate",
    "llm_request_from_log",
    "llm_request_hash",
    "llm_response_record",
    "llm_tool",
    "llm_tool_signature",
    "llm_usage",
    "llm_validate_persona_frame",
    "llm_validate_structured_col",
    "parse_embeddings",
    "report",
    "reset",
    "reset_llm_parallel",
    "setup_llm_parallel",
    "tokens",
    "tool_calls",
    "transcript_as_messages"
  ],
  "_datasets": [
    {
      "name": "anes_2024_personas",
      "title": "Example participant profiles derived from ANES 2024",
      "object": "anes_2024_personas",
      "class": [
        "data.frame"
      ],
      "fields": [
        "demo_age",
        "demo_sex",
        "demo_education",
        "demo_race_ethnicity",
        "demo_marital_status",
        "demo_household_income",
        "demo_religion",
        "demo_religion_importance",
        "demo_religious_attendance",
        "demo_census_region",
        "demo_community_type",
        "demo_employment_status",
        "demo_home_ownership",
        "demo_children_in_household",
        "demo_union_household",
        "demo_military_service",
        "demo_attention_to_politics",
        "att_id_party_identification",
        "att_id_importance_of_party_identity",
        "att_id_liberal_conservative_self_pl",
        "att_id_2024_presidential_vote",
        "att_id_presidential_vote_intent",
        "att_id_harris_vs_trump_preference",
        "att_id_likelihood_of_voting",
        "att_id_party_of_presidential_vote_i",
        "att_id_party_of_us_house_vote_inten",
        "att_aff_feeling_toward_kamala_harris",
        "att_aff_feeling_toward_donald_trump",
        "att_aff_feeling_toward_the_democrati",
        "att_aff_feeling_toward_the_republica",
        "att_aff_feeling_toward_the_maga_move",
        "att_aff_feeling_toward_the_supreme_c",
        "att_aff_feeling_toward_congress",
        "att_aff_feeling_toward_liberals",
        "att_aff_feeling_toward_conservatives",
        "att_aff_feeling_toward_labor_unions",
        "att_aff_feeling_toward_big_business",
        "att_aff_feeling_toward_the_police",
        "att_aff_feeling_toward_black_lives_m",
        "att_aff_feeling_toward_the_nra",
        "att_aff_feeling_toward_muslims",
        "att_aff_feeling_toward_christians",
        "att_aff_feeling_toward_jews",
        "att_aff_feeling_toward_planned_paren",
        "att_eval_approval_of_the_president",
        "att_eval_approval_of_congress",
        "att_eval_approval_of_the_supreme_cour",
        "att_eval_approval_of_the_president_on",
        "att_eval_approval_of_the_president_on_2",
        "att_eval_approval_of_the_president_on_3",
        "att_eval_national_economy_over_the_pa",
        "att_eval_national_economy_over_the_ne",
        "att_eval_personal_finances_vs_a_year_",
        "att_eval_worry_about_personal_finance",
        "att_iss_government_spending_and_serv",
        "att_iss_federal_spending_on_social_s",
        "att_iss_federal_spending_on_aid_to_t",
        "att_iss_federal_spending_on_welfare",
        "att_iss_tax_on_millionaires",
        "att_iss_government_reducing_income_i",
        "att_iss_policy_toward_unauthorized_i",
        "att_iss_border_wall",
        "att_iss_ending_birthright_citizenshi",
        "att_iss_path_to_citizenship",
        "att_iss_immigrants_and_the_economy",
        "att_iss_gun_background_checks",
        "att_iss_difficulty_of_buying_a_gun",
        "att_iss_regulating_greenhouse_emissi",
        "att_iss_climate_change_and_severe_we",
        "att_iss_environment_vs_business_trad",
        "att_iss_government_help_paying_for_h",
        "att_iss_government_vs_private_medica",
        "att_iss_abortion_position",
        "att_iss_importance_of_the_abortion_i",
        "att_iss_death_penalty",
        "att_iss_police_use_of_force",
        "att_iss_whether_police_treat_blacks_",
        "att_iss_preferential_hiring_of_black",
        "att_iss_affirmative_action_in_univer",
        "att_iss_government_assistance_to_bla",
        "att_iss_blacks_should_work_their_way",
        "att_iss_slavery_makes_it_harder_for_",
        "att_iss_blacks_have_gotten_less_than",
        "att_iss_if_blacks_tried_harder_they_",
        "att_iss_discrimination_against_black",
        "att_iss_discrimination_against_white",
        "att_iss_discrimination_against_women",
        "att_iss_us_weapons_to_ukraine",
        "att_iss_us_military_aid_to_israel",
        "att_iss_side_with_israelis_or_palest",
        "att_iss_free_trade_agreements",
        "att_iss_china_as_a_threat",
        "att_iss_russia_as_a_threat",
        "att_iss_defense_spending",
        "att_val_trust_in_government_in_washi",
        "att_val_government_run_for_a_few_big",
        "att_val_whether_the_political_system",
        "att_val_compromise_vs_sticking_to_pr",
        "att_val_a_strong_leader_is_good_for_",
        "att_val_leaving_decisions_to_indepen",
        "att_val_child_trait_independence_vs_",
        "att_val_child_trait_obedience_vs_sel",
        "att_val_whether_people_can_be_truste",
        "att_val_satisfaction_with_life",
        "att_val_general_happiness",
        "att_val_confidence_in_the_supreme_co",
        "att_val_confidence_in_the_scientific",
        "att_val_confidence_in_the_press",
        "att_val_adjusting_morals_to_a_changi",
        "att_val_traditional_family_values",
        "att_val_whether_men_should_work_and_",
        "att_val_satisfaction_with_democracy",
        "att_val_importance_of_remaining_a_de",
        "att_iss_economic_mobility_vs_20_year",
        "att_iss_income_gap_vs_20_years_ago",
        "att_iss_whether_rural_areas_get_thei",
        "att_eval_hopefulness_about_the_countr",
        "att_eval_anger_about_the_country",
        "att_eval_which_party_better_handles_t",
        "att_eval_which_party_better_handles_i",
        "att_iss_importance_of_what_public_sc",
        "att_iss_approval_of_diversity_equity",
        "att_iss_whether_sexual_harassment_wo",
        "att_iss_whether_attention_to_sexual_",
        "ideology_score"
      ],
      "rows": 100,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "anes_2024_personas",
      "title": "Example participant profiles derived from ANES 2024",
      "topics": [
        "anes_2024_personas"
      ]
    },
    {
      "page": "build_factorial_experiments",
      "title": "Build Factorial Experiment Design",
      "topics": [
        "build_factorial_experiments"
      ]
    },
    {
      "page": "call_llm",
      "title": "Call an LLM (chat/completions or embeddings) with optional multimodal input",
      "topics": [
        "call_llm",
        "call_llm.ollama"
      ]
    },
    {
      "page": "call_llm_broadcast",
      "title": "Parallel API calls: Fixed Config, Multiple Messages",
      "topics": [
        "call_llm_broadcast"
      ]
    },
    {
      "page": "call_llm_compare",
      "title": "Parallel API calls: Multiple Configs, Fixed Message",
      "topics": [
        "call_llm_compare"
      ]
    },
    {
      "page": "call_llm_par",
      "title": "Parallel LLM Processing with Tibble-Based Experiments (Core Engine)",
      "topics": [
        "call_llm_par"
      ]
    },
    {
      "page": "call_llm_par_structured",
      "title": "Parallel experiments with structured parsing",
      "topics": [
        "call_llm_par_structured"
      ]
    },
    {
      "page": "call_llm_par_tags",
      "title": "Parallel experiments with tag parsing",
      "topics": [
        "call_llm_par_tags"
      ]
    },
    {
      "page": "call_llm_robust",
      "title": "Robustly Call LLM API (Simple Retry)",
      "topics": [
        "call_llm_robust"
      ]
    },
    {
      "page": "call_llm_stream",
      "title": "Stream a chat completion token by token",
      "topics": [
        "call_llm_stream"
      ]
    },
    {
      "page": "call_llm_sweep",
      "title": "Parallel API calls: Parameter Sweep - Vary One Parameter, Fixed Message",
      "topics": [
        "call_llm_sweep"
      ]
    },
    {
      "page": "call_llm_tools",
      "title": "Call an LLM with tools and run the tool loop",
      "topics": [
        "call_llm_tools"
      ]
    },
    {
      "page": "diagnostics",
      "title": "Machine-readable diagnostics for an LLMR-family result object",
      "topics": [
        "diagnostics"
      ]
    },
    {
      "page": "disable_structured_output",
      "title": "Disable Structured Output (clean provider toggles)",
      "topics": [
        "disable_structured_output"
      ]
    },
    {
      "page": "enable_structured_output",
      "title": "Enable Structured Output (Provider-Agnostic)",
      "topics": [
        "enable_structured_output"
      ]
    },
    {
      "page": "ensure_alternating_messages",
      "title": "Make a message array provider-safe (alternating, user-leading)",
      "topics": [
        "ensure_alternating_messages"
      ]
    },
    {
      "page": "get_batched_embeddings",
      "title": "Generate Embeddings in Batches",
      "topics": [
        "get_batched_embeddings"
      ]
    },
    {
      "page": "llm_agreement",
      "title": "Agreement across replicated LLM annotations",
      "topics": [
        "llm_agreement"
      ]
    },
    {
      "page": "llm_api_key_env",
      "title": "Declare an API key sourced from an environment variable",
      "topics": [
        "llm_api_key_env"
      ]
    },
    {
      "page": "llm_batch_cancel",
      "title": "Cancel a batch job",
      "topics": [
        "llm_batch_cancel"
      ]
    },
    {
      "page": "llm_batch_fetch",
      "title": "Fetch the results of a batch job",
      "topics": [
        "llm_batch_fetch"
      ]
    },
    {
      "page": "llm_batch_status",
      "title": "Check the status of a batch job",
      "topics": [
        "llm_batch_status"
      ]
    },
    {
      "page": "llm_batch_submit",
      "title": "Submit a batch job to a provider's batch API",
      "topics": [
        "llm_batch_submit"
      ]
    },
    {
      "page": "llm_chat_session",
      "title": "Chat Session Object and Methods",
      "topics": [
        "as.data.frame.llm_chat_session",
        "chat_session",
        "head.llm_chat_session",
        "llm_chat_session",
        "print.llm_chat_session",
        "summary.llm_chat_session",
        "tail.llm_chat_session"
      ]
    },
    {
      "page": "llm_config",
      "title": "Create an LLM configuration (provider-agnostic)",
      "topics": [
        "llm_config"
      ]
    },
    {
      "page": "llm_failures",
      "title": "List the rows of an LLM run that failed or were truncated",
      "topics": [
        "llm_failures"
      ]
    },
    {
      "page": "llm_fn",
      "title": "Apply an LLM prompt over vectors/data frames",
      "topics": [
        "llm_fn"
      ]
    },
    {
      "page": "llm_fn_structured",
      "title": "Vectorized structured-output LLM",
      "topics": [
        "llm_fn_structured"
      ]
    },
    {
      "page": "llm_fn_tags",
      "title": "Vectorized LLM with tag extraction",
      "topics": [
        "llm_fn_tags"
      ]
    },
    {
      "page": "llm_hash",
      "title": "Content hash for research artifacts",
      "topics": [
        "llm_hash"
      ]
    },
    {
      "page": "llm_judge",
      "title": "LLM-as-a-Judge Evaluation",
      "topics": [
        "llm_judge"
      ]
    },
    {
      "page": "llm_log_enable",
      "title": "Record every LLM call in a local audit log",
      "topics": [
        "llm_log_active",
        "llm_log_disable",
        "llm_log_enable",
        "llm_log_status"
      ]
    },
    {
      "page": "llm_log_read",
      "title": "Read an LLMR audit log into records and a manifest",
      "topics": [
        "llm_log_read"
      ]
    },
    {
      "page": "llm_logprobs",
      "title": "Extract token log-probabilities from a response",
      "topics": [
        "llm_logprobs"
      ]
    },
    {
      "page": "llm_mutate",
      "title": "Mutate a data frame with LLM output",
      "topics": [
        "llm_mutate"
      ]
    },
    {
      "page": "llm_mutate_structured",
      "title": "Data-frame mutate with structured output",
      "topics": [
        "llm_mutate_structured"
      ]
    },
    {
      "page": "llm_mutate_tags",
      "title": "Data-frame mutate with XML-like tag output",
      "topics": [
        "llm_mutate_tags"
      ]
    },
    {
      "page": "llm_par_resume",
      "title": "Resume failed parallel LLM calls",
      "topics": [
        "llm_par_resume"
      ]
    },
    {
      "page": "llm_parse_structured",
      "title": "Parse structured output emitted by an LLM",
      "topics": [
        "llm_parse_structured"
      ]
    },
    {
      "page": "llm_parse_structured_col",
      "title": "Parse structured fields from a column into typed vectors",
      "topics": [
        "llm_parse_structured_col"
      ]
    },
    {
      "page": "llm_parse_tags",
      "title": "Parse XML-like tags emitted by an LLM",
      "topics": [
        "llm_parse_tags"
      ]
    },
    {
      "page": "llm_parse_tags_col",
      "title": "Parse XML-like tag fields from a column",
      "topics": [
        "llm_parse_tags_col"
      ]
    },
    {
      "page": "llm_persona_demographic_fields",
      "title": "Which columns of a persona frame are demographics",
      "topics": [
        "llm_persona_demographic_fields"
      ]
    },
    {
      "page": "llm_persona_overview",
      "title": "A compact overview of a persona frame for display",
      "topics": [
        "llm_persona_overview"
      ]
    },
    {
      "page": "llm_persona_split",
      "title": "Split one persona into labeled demographics and labeled answers",
      "topics": [
        "llm_persona_split"
      ]
    },
    {
      "page": "llm_preview",
      "title": "Preview a tidy LLM call without spending anything",
      "topics": [
        "llm_preview"
      ]
    },
    {
      "page": "llm_render_messages",
      "title": "Render tidy messages without calling any API",
      "topics": [
        "llm_render_messages"
      ]
    },
    {
      "page": "llm_replicate",
      "title": "Run the same prompt several times per row",
      "topics": [
        "llm_replicate"
      ]
    },
    {
      "page": "llm_request_from_log",
      "title": "Rebuild a callable request from a logged record",
      "topics": [
        "llm_request_from_log"
      ]
    },
    {
      "page": "llm_request_hash",
      "title": "Stable request hash for an LLM call",
      "topics": [
        "llm_request_hash"
      ]
    },
    {
      "page": "llm_response_record",
      "title": "Flatten one LLM response to a provenance row",
      "topics": [
        "llm_response_record"
      ]
    },
    {
      "page": "llm_tool",
      "title": "Define a tool the model may call",
      "topics": [
        "llm_tool"
      ]
    },
    {
      "page": "llm_tool_signature",
      "title": "A stable signature for a tool's identity",
      "topics": [
        "llm_tool_signature"
      ]
    },
    {
      "page": "llm_usage",
      "title": "Summarize token usage and outcomes of an LLM run",
      "topics": [
        "llm_usage"
      ]
    },
    {
      "page": "llm_validate_persona_frame",
      "title": "Check that a data frame follows the persona contract",
      "topics": [
        "llm_validate_persona_frame"
      ]
    },
    {
      "page": "llm_validate_structured_col",
      "title": "Validate structured JSON objects against a JSON Schema (locally)",
      "topics": [
        "llm_validate_structured_col"
      ]
    },
    {
      "page": "llmr_response",
      "title": "LLMR Response Object",
      "topics": [
        "as.character.llmr_response",
        "finish_reason",
        "is_truncated",
        "llmr_response",
        "print.llmr_response",
        "tokens"
      ]
    },
    {
      "page": "parse_embeddings",
      "title": "Parse Embedding Response into a Numeric Matrix",
      "topics": [
        "parse_embeddings"
      ]
    },
    {
      "page": "print.llm_config",
      "title": "Print an LLM configuration with the API key masked",
      "topics": [
        "format.llm_config",
        "print.llm_config"
      ]
    },
    {
      "page": "report",
      "title": "Draft a methods-section report from an LLMR-family result object",
      "topics": [
        "report",
        "report.llmr_experiment"
      ]
    },
    {
      "page": "reset",
      "title": "Reset a stateful object to its initial position",
      "topics": [
        "reset"
      ]
    },
    {
      "page": "reset_llm_parallel",
      "title": "Reset Parallel Environment",
      "topics": [
        "reset_llm_parallel"
      ]
    },
    {
      "page": "setup_llm_parallel",
      "title": "Setup Parallel Environment for LLM Processing",
      "topics": [
        "setup_llm_parallel"
      ]
    },
    {
      "page": "tool_calls",
      "title": "Extract tool calls from a response",
      "topics": [
        "tool_calls"
      ]
    },
    {
      "page": "transcript_as_messages",
      "title": "Build a role-flipped message array from a multi-speaker transcript",
      "topics": [
        "transcript_as_messages"
      ]
    }
  ],
  "_pkglogo": "https://github.com/asanaei/llmr/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/asanaei/llmr/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "base64enc",
    "cachem",
    "cli",
    "codetools",
    "cpp11",
    "curl",
    "digest",
    "dplyr",
    "fastmap",
    "future",
    "future.apply",
    "generics",
    "globals",
    "glue",
    "httr2",
    "jsonlite",
    "lifecycle",
    "listenv",
    "magrittr",
    "memoise",
    "mime",
    "openssl",
    "parallelly",
    "pillar",
    "pkgconfig",
    "purrr",
    "R6",
    "rlang",
    "stringi",
    "stringr",
    "sys",
    "tibble",
    "tidyr",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "trolley-dilemma-experiment.Rmd",
      "filename": "trolley-dilemma-experiment.html",
      "title": "A Trolley Dilemma Experiment with LLMR",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Designing the Experiment",
        "Vectorized Execution with Soft Structuring",
        "Conclusion"
      ],
      "created": "2026-06-05 14:43:57",
      "modified": "2026-07-22 00:02:49",
      "commits": 4
    },
    {
      "source": "interactive-calls.Rmd",
      "filename": "interactive-calls.html",
      "title": "Interactive calls: tools, streaming, and logprobs",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Tools: the model consults your R session",
        "Streaming: watch the reply arrive",
        "Logprobs: the model's confidence as data",
        "Related features"
      ],
      "created": "2026-06-10 16:58:19",
      "modified": "2026-07-22 20:57:42",
      "commits": 4
    },
    {
      "source": "about-schema.Rmd",
      "filename": "about-schema.html",
      "title": "Schema-validated output in LLMR",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "What the major providers actually support",
        "Why prefer schema output?",
        "Why JSON-only still matters",
        "Quirks you will hit in practice",
        "LLMR helpers for common parsing failures",
        "Minimal patterns (guarded code)",
        "1) JSON mode, no schema (works across OpenAI-compatible providers)",
        "2) Schema-constrained output on Groq (open model)",
        "3) DeepSeek: JSON-object mode with local validation",
        "4) Groq: another structured output example",
        "Defensive patterns (no API calls)",
        "Parallel execution with schema validation",
        "Choosing the mode",
        "References"
      ],
      "created": "2025-08-27 23:00:09",
      "modified": "2026-07-22 00:02:49",
      "commits": 11
    },
    {
      "source": "quickstart.Rmd",
      "filename": "quickstart.html",
      "title": "LLMR in 5 minutes",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Install",
        "2. Set an API key",
        "3. Your first call",
        "4. Apply a model to a data frame",
        "5. Generative calls over a vector",
        "6. Tagged fields and row batching",
        "7. Embeddings",
        "8. Look before you spend, summarize after",
        "Where to go next"
      ],
      "created": "2026-06-09 15:30:30",
      "modified": "2026-06-17 06:13:08",
      "commits": 5
    },
    {
      "source": "presidential_embeddings.Rmd",
      "filename": "presidential_embeddings.html",
      "title": "Presidential Speech Analysis with Embeddings",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Prepare the Text Data",
        "Configure Embedding Model",
        "Generate Embeddings",
        "Analyze Similarity",
        "Expected Results"
      ],
      "created": "2025-05-27 14:30:29",
      "modified": "2026-07-22 20:57:42",
      "commits": 10
    },
    {
      "source": "reproducibility-and-cost.Rmd",
      "filename": "reproducibility-and-cost.html",
      "title": "Reproducibility and cost: logging, replication, caching, batch jobs",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. An audit trail for every call",
        "2. Replication and reliability",
        "3. A methods paragraph you can edit",
        "4. What did it cost?",
        "5. Prompt caching",
        "6. Batch jobs at half price",
        "7. Seeds, model versions, and reproducibility limits"
      ],
      "created": "2026-06-10 03:54:08",
      "modified": "2026-07-22 00:02:49",
      "commits": 4
    },
    {
      "source": "chat-basics.Rmd",
      "filename": "chat-basics.html",
      "title": "Simple chat with LLMR",
      "engine": "knitr::rmarkdown",
      "headings": [
        "DeepSeek: deepseek-chat",
        "DeepSeek: deepseek-reasoner",
        "Groq: llama-3.1-8b-instant",
        "Groq: openai/gpt-oss-20b",
        "Using the chat history",
        "Inspect the full conversation",
        "Structured chat in one call (DeepSeek example)"
      ],
      "created": "2025-08-27 23:00:09",
      "modified": "2026-07-22 20:57:42",
      "commits": 5
    },
    {
      "source": "experiments.Rmd",
      "filename": "experiments.html",
      "title": "Small experiment with LLMR",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Build a factorial design",
        "Run unstructured",
        "Structured version"
      ],
      "created": "2025-08-27 23:00:09",
      "modified": "2026-07-22 20:57:42",
      "commits": 6
    },
    {
      "source": "tidy-and-structured.Rmd",
      "filename": "tidy-and-structured.html",
      "title": "Tidy pipelines and structured output",
      "engine": "knitr::rmarkdown",
      "headings": [
        "llm_fn: unstructured (DeepSeek)",
        "llm_fn: unstructured (Groq)",
        "llm_fn_structured: schema-first (DeepSeek)",
        "llm_mutate: unstructured (Groq)",
        "llm_mutate: shorthand syntax",
        "llm_mutate with .structured flag",
        "Soft structured output with tags",
        "Row batching: many rows per call",
        "Preview before you spend, summarize after",
        "llm_mutate_structured: structured with shorthand (Groq)"
      ],
      "created": "2025-08-27 23:00:09",
      "modified": "2026-07-22 20:57:42",
      "commits": 11
    }
  ],
  "_score": 8.654184245481156,
  "_indexed": true,
  "_nocasepkg": "llmr",
  "_universes": [
    "asanaei"
  ],
  "_previous": "0.8.12",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.8.14",
      "date": "2026-10-19T06:47:30.000Z",
      "distro": "resolute",
      "commit": "25bf38551ea854384c354528f3a87936ef033ad5",
      "fileid": "https://r2.ropensci.org/d320cfc80ffc6d064b52c78583fb1b657ac033eb65919ba1f234bafe239eed23",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/asanaei/actions/runs/39211415124"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.8.14",
      "date": "2026-10-19T06:47:47.000Z",
      "distro": "resolute",
      "commit": "25bf38551ea854384c354528f3a87936ef033ad5",
      "fileid": "https://r2.ropensci.org/9e97b98672a4bef411d7da2f9560d85abd2a9015a6665508f887ecaa84bb7f51",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/asanaei/actions/runs/39211415124"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.8.14",
      "date": "2026-10-19T07:01:13.000Z",
      "commit": "25bf38551ea854384c354528f3a87936ef033ad5",
      "fileid": "https://r2.ropensci.org/1712f9ec1278272c89a7be4265aba85b53f9c6aca12bb42856ec3742e58ff307",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/asanaei/actions/runs/39211415124"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.8.14",
      "date": "2026-10-19T06:59:18.000Z",
      "commit": "25bf38551ea854384c354528f3a87936ef033ad5",
      "fileid": "https://r2.ropensci.org/e2aeecc45c6abc81cba62605282e14a5af92cede5dcee1dd16d8f1ad43c49423",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/asanaei/actions/runs/39211415124"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.8.14",
      "date": "2026-10-19T06:47:14.000Z",
      "commit": "25bf38551ea854384c354528f3a87936ef033ad5",
      "fileid": "https://r2.ropensci.org/9c9afdbab00d65d4bb7aff5a47e8bf4286545f61fbdd71e2a1eae3233f6ceba8",
      "status": "success",
      "buildurl": "https://github.com/r-universe/asanaei/actions/runs/39211415124"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.8.14",
      "date": "2026-10-19T06:46:21.000Z",
      "commit": "25bf38551ea854384c354528f3a87936ef033ad5",
      "fileid": "https://r2.ropensci.org/b62150cc109c4761233f68b204452cfa0cc603c7921a974f17702faff8950c05",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/asanaei/actions/runs/39211415124"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.8.14",
      "date": "2026-10-19T06:46:20.000Z",
      "commit": "25bf38551ea854384c354528f3a87936ef033ad5",
      "fileid": "https://r2.ropensci.org/af97b47e6674e781ab69e24992c4526d967ce84af17c43a9a01e84a7f220ee44",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/asanaei/actions/runs/39211415124"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.8.14",
      "date": "2026-10-19T06:46:33.000Z",
      "commit": "25bf38551ea854384c354528f3a87936ef033ad5",
      "fileid": "https://r2.ropensci.org/95611085df179d35265c10547b5408dd289a335e7fff0716fa9a8c76b251c93a",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/asanaei/actions/runs/39211415124"
    }
  ]
}