From 84a3b4483d798152bba245deeb69335da9fbf757 Mon Sep 17 00:00:00 2001 From: jpcompartir Date: Thu, 11 Dec 2025 10:43:14 +0000 Subject: [PATCH 1/4] Re-arrange EndpointR README - SAMY banner to the bottom, - - +[![R-CMD-check](https://github.com/jpcompartir/EndpointR/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/jpcompartir/EndpointR/actions/workflows/R-CMD-check.yaml) [![pkgdown](https://github.com/jpcompartir/EndpointR/actions/workflows/pkgdown.yaml/badge.svg)](https://github.com/jpcompartir/EndpointR/actions/workflows/pkgdown.yaml) EndpointR is a 'batteries included', open-source R package for connecting to various Application Programming Interfaces ([APIs](https://en.wikipedia.org/wiki/API){target="_blank"}) for Machine Learning model predictions. @@ -283,3 +279,7 @@ Read the [LLM Providers Vignette](articles/llm_providers.html), and the [Structu - Read the [httr2 vignette](https://httr2.r-lib.org/articles/wrapping-apis.html#basics){target="_blank"} on managing your API keys securely and encrypting them. - Read the [EndpointR API Keys](articles/api_keys.html) vignette for information on which API keys you need for wach endpoint we support, and how to securely import those API keys into your .Renvironfile. + +--- + +SAMY Data Science diff --git a/README.md b/README.md index e21f3fa..c61f480 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,10 @@ -SAMY Data Science - # EndpointR - - - +[![R-CMD-check](https://github.com/jpcompartir/EndpointR/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/jpcompartir/EndpointR/actions/workflows/R-CMD-check.yaml) +[![pkgdown](https://github.com/jpcompartir/EndpointR/actions/workflows/pkgdown.yaml/badge.svg)](https://github.com/jpcompartir/EndpointR/actions/workflows/pkgdown.yaml) EndpointR is a ‘batteries included’, open-source R package for connecting to various Application Programming Interfaces @@ -297,5 +294,9 @@ information on common workflows with the OpenAI Chat Completions API information on which API keys you need for wach endpoint we support, and how to securely import those API keys into your .Renvironfile. +------------------------------------------------------------------------ + +SAMY Data Science + [^1]: Content pending implementation for Anthroic Messages API, Gemini API, and OpenAI Responses API diff --git a/man/df_embeddings_hf.Rd b/man/df_embeddings_hf.Rd index e0bd787..ae7753b 100644 --- a/man/df_embeddings_hf.Rd +++ b/man/df_embeddings_hf.Rd @@ -11,7 +11,7 @@ A data frame with 3 rows and 773 variables: \item{text}{Character; the original text that was embedded} \item{category}{Character; category classification of the text} \item{.error}{Logical; whether the embedding process failed} -\item{.error_msg}{Character; error message if embedding failed (NA if successful)} +\item{.error_message}{Character; error message if embedding failed (NA if successful)} \item{V1}{Numeric; embedding vector dimensions} \item{V2}{Numeric; embedding vector dimensions} \item{V3}{Numeric; embedding vector dimensions} diff --git a/man/df_sentiment_classification_example.Rd b/man/df_sentiment_classification_example.Rd index c4efb77..662137d 100644 --- a/man/df_sentiment_classification_example.Rd +++ b/man/df_sentiment_classification_example.Rd @@ -13,7 +13,7 @@ A data frame with 3 rows and 7 variables: \item{NEGATIVE}{Numeric; probability score for negative sentiment (0-1)} \item{POSITIVE}{Numeric; probability score for positive sentiment (0-1)} \item{.error}{Logical; whether the classification process failed} -\item{.error_msg}{Character; error message if classification failed (NA if successful)} +\item{.error_message}{Character; error message if classification failed (NA if successful)} } } \source{ From a590659a84eb30acaecff280da1b41d15167c364 Mon Sep 17 00:00:00 2001 From: jpcompartir Date: Thu, 11 Dec 2025 10:48:50 +0000 Subject: [PATCH 2/4] Add the R-CMD Check and run workflow on Sunday (day = 0) mornings --- .github/workflows/R-CMD-check.yaml | 33 +++++++++++++++++++++++++++++ inst/images/samy_banner.png | Bin 0 -> 46738 bytes inst/images/samy_logo_small.png | Bin 0 -> 6846 bytes 3 files changed, 33 insertions(+) create mode 100644 .github/workflows/R-CMD-check.yaml create mode 100644 inst/images/samy_banner.png create mode 100644 inst/images/samy_logo_small.png diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml new file mode 100644 index 0000000..b10e3dd --- /dev/null +++ b/.github/workflows/R-CMD-check.yaml @@ -0,0 +1,33 @@ +# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples +# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help +on: + push: + branches: [main, master] + pull_request: + branches: [main, master, dev] + release: + types: [published] + schedule: + - cron: '00 09 * * 0' + workflow_dispatch: + +name: R-CMD-check + +jobs: + R-CMD-check: + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + R_KEEP_PKG_SOURCE: yes + steps: + - uses: actions/checkout@v3 + + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: any::rcmdcheck + + - uses: r-lib/actions/check-r-package@v2 diff --git a/inst/images/samy_banner.png b/inst/images/samy_banner.png new file mode 100644 index 0000000000000000000000000000000000000000..9418f7c5739c627a272732ea1a6bfea5c23463de GIT binary patch literal 46738 zcmY(r2{hFI_dos`gfc@?Oca?)rDP(LH5F;Im3@h^he0L8SOytWLaQ~Tg)Eb?%piub zB>R$mC!%bl#AN?H(fj-V{GaDI4#(Wreck;&?tOZwt9=QvLwE-SL5M4t)o*}rL*y!D+M(fp6PyUp8@vppyqTzF_y?t9nAv0qBbQdHwsZrurxE=y%dELkcB|>%SgC z3T&g?1nwsXpk!FIy#a*)7}hfv^0(ohWdm{A3u!vA60r$2VsG>ze`>u%Nbpp z{5rSa?azP+nvee%wv4CWg}h1|3K&ewvaAVMZ`>g`v?{%}p1ZWv;^;h`G`DWXT(#Yn z#RoY1?_g;h71#!UZm$GBk5$8Udcrc3wJ#~8F|@Ift9~sF+g-|0``_P!?*x~_NX~0J z`7PNk#w%`)t663^egEcE@`~qi0^c(~L`1^;fDknr_CKG{e1=7?lovL4Hu6~t(`l`p zn4DI3gzY+aUr8fn@udkYHHMcB!+hCfBp=c#!=BFInIVH0$*{ZF^^c|<<^VyI?UC|mj8Y3 z$7|@v-H%9Ist-yz7%>@5-I9hWEB&3PU$)wO$WzCwV)_-}F%O5}Al+mXPwccG{37#g&4@yRz&({0Gv#BeINo_wvuhE?_ zMuWl7&7*LFf>LpnXyd+>^#dqgsxCX^tG74yt@GJ~_g^&a!L-+=pL*<^!DVF`jAdmW zfDf-0zK#*T13|_z;Z}n&a5&JRaD~K(JJZkM&qavP+bl>k+2FTPirJ)Ugzqv7g+WLI z^_8ej_57~V-0bl`K~^g_=w+s0Nut85-{S~!iX5e>Zjf&MWoh2K}4k53oPg&;r&C5t*TB;1L?aqc`8_lK?@`G z?|2}Uaen2Rvx`H2=XJoX5j~BSu}2dLF9>IiU$8!6xC?^(wb4@|BIh7z>>?U>cWsJZ zy5El<8dA&)(Fz_9g3bu=mr^?#qncfRz3prBeH|+db!m7YJPO{3pUT2BmnY3>>-mkP zkAK#njn(%VhR=p}^ynp{vD;@lQ#wXSKlp!Pj<>gdXP( zp)ScDBnd8VE(W3x z7<1;6t}Aj67omNd_=45oX1(1D%oP`$Yz(e|%z z%3_>DhNKb*(XV$ruzTNsM{W?hjb~+CnOc{*cl^+1Vq_fPRp#R&toyhggJR-)&MA*4 zixs*}%EznpC9y$guJ4U+m4p|{j$Aaq!k&rkdZ2%KIFrrFJuQzt=Itfb2bBx^E^e>{ z(Oz_*p}!r1_Nu&)`#t$NM6;z`?iUj|KL}d6!8z)lUCo^&v29SI*e&eWg?7H+#QHmp%)XUUytnr@J{E6plzj|D6H)%B z$2R#V2VgK7t;npIz>!h1)`p zt$vDx9zn6{MIG2lDy9&_8{`p%cn7nuaZ7KD_V}0ymr)Sa$GF(6py!_XCne5;K(oy| zz`c5d9PsV;{>^Ymc0`$*F{NHv2H`bj3;aygil>{{2!VFS$}E@sjsf^>#63#Avsf8L zF8!Qw$@R!><&gb||2FU3i&K|F6gDZzzL$d�_|AY%Ylr6w<=W-*Ut=+jcVHq-m|8 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 literal 0 HcmV?d00001 diff --git a/inst/images/samy_logo_small.png b/inst/images/samy_logo_small.png new file mode 100644 index 0000000000000000000000000000000000000000..4f8a3ba714e48982355d51a6b58e2eb833ce1cff GIT binary patch literal 6846 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%0Dre*+$REA0aM>!S{fzXrI`O=y10 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 literal 0 HcmV?d00001 From f6abe5fe20b0877249acb36f2074dd551d33481d Mon Sep 17 00:00:00 2001 From: jpcompartir Date: Thu, 11 Dec 2025 11:29:19 +0000 Subject: [PATCH 3/4] Update how get_api_key checks for env var and .Renviron - for CI/CD Add a ~/.Renviron to the CI/CD environment --- .github/workflows/R-CMD-check.yaml | 3 +++ R/utils.R | 16 +++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index b10e3dd..d31306e 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -30,4 +30,7 @@ jobs: with: extra-packages: any::rcmdcheck + - name: Create .Renviron for tests + run: touch ~/.Renviron + - uses: r-lib/actions/check-r-package@v2 diff --git a/R/utils.R b/R/utils.R index bb4ef98..9c3f5c9 100644 --- a/R/utils.R +++ b/R/utils.R @@ -21,18 +21,24 @@ get_api_key <- function(key_name) { stopifnot("`key_name` should be a string" = is.character(key_name)) # add && API_KEY check here? - renviron_path <- path.expand("~/.Renviron") - if(!file.exists(renviron_path)){ - cli::cli_abort("{.file {renviron_path}} not found, please create one.") - } - if(!endsWith(key_name, "API_KEY")){ cli::cli_abort("{.val {key_name}} is an invalid name. API keys must end with 'API_KEY'") } + # Check if the environment variable is already set (e.g., in CI or via withr::with_envvar) api_key <- Sys.getenv(key_name) if(identical(api_key, "")) { + # Only check for .Renviron if the environment variable is not set + renviron_path <- path.expand("~/.Renviron") + if(!file.exists(renviron_path)){ + cli::cli_abort(c( + "{.val {key_name}} was not found in environment variables", + "i" = "{.file {renviron_path}} not found either", + "i" = "Please set with {.code set_api_key({key_name})}, and restart your R session for changes to take effect." + )) + } + cli::cli_abort("{.val {key_name}} was not found, please set with {.code set_api_key({key_name})}, and restart your R session for changes to take effect.") } From 666c872dcc0c31b99e0b66139d33cfa8a018c064 Mon Sep 17 00:00:00 2001 From: jpcompartir Date: Thu, 11 Dec 2025 11:41:46 +0000 Subject: [PATCH 4/4] Add dummy environment variables to the CI/CD direcrly, instead of an empty .Renviron as we need values for API keys for mock tests --- .github/workflows/R-CMD-check.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index d31306e..9c8c78d 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -19,6 +19,13 @@ jobs: env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} R_KEEP_PKG_SOURCE: yes + # Dummy API keys for testing (these are not real keys) + OPENAI_API_KEY: sk-test-dummy-key-for-ci-testing-only + ENDPOINTR_API_KEY: test-dummy-key-for-ci-testing-only + ANTHROPIC_API_KEY: sk-ant-test-dummy-key-for-ci-testing-only + HF_API_KEY: hf_test_dummy_key_for_ci_testing_only + HF_TEST_API_KEY: hf_test_dummy_key_for_ci_testing_only + FAKE_API_KEY: fake-test-dummy-key-for-ci-testing-only steps: - uses: actions/checkout@v3 @@ -30,7 +37,4 @@ jobs: with: extra-packages: any::rcmdcheck - - name: Create .Renviron for tests - run: touch ~/.Renviron - - uses: r-lib/actions/check-r-package@v2