| Title: | Simple Unified Wrappers for Foundation Model Inference APIs |
|---|---|
| Description: | Provides lightweight R wrappers for querying and listing models from several hosted and local foundation model inference platforms, currently including 'OpenAI' <https://developers.openai.com/api/docs/>, 'Google Gemini' <https://ai.google.dev/gemini-api/docs>, 'Groq' <https://console.groq.com/docs/>, 'OpenRouter' <https://openrouter.ai/docs/>, 'Cerebras' <https://inference-docs.cerebras.ai/>, 'Ollama Cloud' <https://docs.ollama.com/cloud>, 'Alibaba Cloud Model Studio' <https://help.aliyun.com/en/model-studio/>, 'Zhipu AI' <https://docs.bigmodel.cn/>, 'DeepSeek' <https://api-docs.deepseek.com/>, 'Moonshot AI' <https://platform.kimi.ai/docs/>, and 'MiniMax' <https://platform.minimax.io/docs/>. The package is designed for simple inference workflows and quick experimentation, with minimal abstraction and a consistent interface across providers. It includes helper functions for model discovery, text generation, embeddings, image generation, and multimodal inputs, while leaving room for future support of provider-specific parameters and advanced options. |
| Authors: | Oliver Zhou [aut, cre] |
| Maintainer: | Oliver Zhou <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.2.2 |
| Built: | 2026-10-01 07:47:11 UTC |
| Source: | https://github.com/oliverlds/inferencer |
Calls Gemini embedding endpoints for one or more text inputs.
embed_gemini( input, api_key = Sys.getenv("GEMINI_API_KEY"), model = "gemini-embedding-001", url0 = Sys.getenv("GEMINI_API_URL", unset = "https://generativelanguage.googleapis.com/v1beta/models"), task_type = NULL, title = NULL, output_dimensionality = NULL, json_list = FALSE )embed_gemini( input, api_key = Sys.getenv("GEMINI_API_KEY"), model = "gemini-embedding-001", url0 = Sys.getenv("GEMINI_API_URL", unset = "https://generativelanguage.googleapis.com/v1beta/models"), task_type = NULL, title = NULL, output_dimensionality = NULL, json_list = FALSE )
input |
A non-empty character vector. |
api_key |
Gemini API key. Defaults to |
model |
Embedding model identifier. |
url0 |
Base Gemini models URL. |
task_type |
Optional Gemini embedding |
title |
Optional embedding title, used with document-style inputs. |
output_dimensionality |
Optional embedding dimensionality override. |
json_list |
If |
A numeric matrix by default, or the parsed JSON response when
json_list = TRUE.
Calls the OpenRouter embeddings endpoint for one or more text inputs.
embed_openrouter( input, model = "openai/text-embedding-3-small", dimensions = NULL, encoding_format = c("float", "base64"), api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/embeddings", json_list = FALSE )embed_openrouter( input, model = "openai/text-embedding-3-small", dimensions = NULL, encoding_format = c("float", "base64"), api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/embeddings", json_list = FALSE )
input |
A non-empty character vector. |
model |
Model identifier. |
dimensions |
Optional embedding dimensionality override. |
encoding_format |
Embedding encoding. Defaults to |
api_key |
OpenRouter API key. Defaults to
|
url |
OpenRouter embeddings endpoint. |
json_list |
If |
A numeric matrix by default when encoding_format = "float", or the
parsed JSON response when json_list = TRUE.
Scans OpenRouter model metadata for benchmark payloads, including possible Artificial Analysis benchmark fields when they are present in the models response.
extract_openrouter_benchmarks( models, benchmark_fields = c("benchmarks", "benchmark_scores", "artificial_analysis", "artificial_analysis_benchmarks", "benchmark_data") )extract_openrouter_benchmarks( models, benchmark_fields = c("benchmarks", "benchmark_scores", "artificial_analysis", "artificial_analysis_benchmarks", "benchmark_data") )
models |
Parsed JSON from |
benchmark_fields |
Candidate field names to inspect on each model. |
A data.table with one row per extracted benchmark metric. Returns
an empty data.table when no benchmark fields are found.
Calls Gemini image-generation capable models and returns the generated image payloads as base64 strings.
generate_image_gemini( prompt, api_key = Sys.getenv("GEMINI_API_KEY"), model = "gemini-2.5-flash-image", url0 = Sys.getenv("GEMINI_API_URL", unset = "https://generativelanguage.googleapis.com/v1beta/models"), temperature = 0.7, top_p = 1, top_k = 40, max_tokens = NULL, response_modalities = c("TEXT", "IMAGE"), json_list = FALSE )generate_image_gemini( prompt, api_key = Sys.getenv("GEMINI_API_KEY"), model = "gemini-2.5-flash-image", url0 = Sys.getenv("GEMINI_API_URL", unset = "https://generativelanguage.googleapis.com/v1beta/models"), temperature = 0.7, top_p = 1, top_k = 40, max_tokens = NULL, response_modalities = c("TEXT", "IMAGE"), json_list = FALSE )
prompt |
A non-empty character string. |
api_key |
Gemini API key. Defaults to |
model |
Image-capable Gemini model identifier. |
url0 |
Base Gemini models URL. |
temperature |
Sampling temperature. |
top_p |
Nucleus sampling parameter. |
top_k |
Top-k sampling parameter. |
max_tokens |
Optional maximum number of output tokens. |
response_modalities |
Modalities to request. Defaults to
|
json_list |
If |
A character vector of base64-encoded image payloads by default, or
the parsed JSON response when json_list = TRUE.
Calls the OpenRouter chat completions API for image-capable models and returns the first available image payload or URL.
generate_image_openrouter( prompt, model = "google/gemini-2.5-flash-image-preview", temperature = 0, top_p = 1, max_tokens = 2048L, api_key = Sys.getenv("OPENROUTER_API_KEY"), url = Sys.getenv("OPENROUTER_API_URL", unset = "https://openrouter.ai/api/v1/chat/completions"), json_list = FALSE )generate_image_openrouter( prompt, model = "google/gemini-2.5-flash-image-preview", temperature = 0, top_p = 1, max_tokens = 2048L, api_key = Sys.getenv("OPENROUTER_API_KEY"), url = Sys.getenv("OPENROUTER_API_URL", unset = "https://openrouter.ai/api/v1/chat/completions"), json_list = FALSE )
prompt |
A non-empty character string. |
model |
Model identifier. |
temperature |
Sampling temperature. |
top_p |
Nucleus sampling parameter. |
max_tokens |
Maximum number of output tokens. |
api_key |
OpenRouter API key. Defaults to
|
url |
OpenRouter chat completions endpoint. |
json_list |
If |
A character string containing an image URL or base64 payload by
default, or the parsed JSON response when json_list = TRUE.
Retrieves available models from the public Cerebras models endpoint.
list_cerebras_models( url = "https://api.cerebras.ai/public/v1/models", json_list = FALSE )list_cerebras_models( url = "https://api.cerebras.ai/public/v1/models", json_list = FALSE )
url |
Cerebras public models endpoint. |
json_list |
If |
A data.table by default, or a parsed JSON list when
json_list = TRUE.
Returns models that Inferencer can verify as no-cost APIs rather than models with account-specific trials or expiring promotional quotas.
list_china_free_models()list_china_free_models()
A data.table with provider, model, free_basis, and source_url.
Retrieves models available from the DeepSeek API.
list_deepseek_models( api_key = Sys.getenv("DEEPSEEK_API_KEY"), url = "https://api.deepseek.com/models", json_list = FALSE, timeout = 120 )list_deepseek_models( api_key = Sys.getenv("DEEPSEEK_API_KEY"), url = "https://api.deepseek.com/models", json_list = FALSE, timeout = 120 )
api_key |
DeepSeek API key. Defaults to |
url |
DeepSeek OpenAI-compatible models endpoint. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
A data.table by default, or a parsed JSON list when
json_list = TRUE.
Retrieves available models from the Gemini models endpoint.
list_gemini_models( api_key = Sys.getenv("GEMINI_API_KEY"), url = "https://generativelanguage.googleapis.com/v1beta/models", json_list = FALSE )list_gemini_models( api_key = Sys.getenv("GEMINI_API_KEY"), url = "https://generativelanguage.googleapis.com/v1beta/models", json_list = FALSE )
api_key |
Gemini API key. Defaults to |
url |
Gemini models endpoint. |
json_list |
If |
A data.table by default, or a parsed JSON list when
json_list = TRUE.
Retrieves available models from the Groq models endpoint.
list_groq_models( api_key = Sys.getenv("GROQ_API_KEY"), url = "https://api.groq.com/openai/v1/models", json_list = FALSE )list_groq_models( api_key = Sys.getenv("GROQ_API_KEY"), url = "https://api.groq.com/openai/v1/models", json_list = FALSE )
api_key |
Groq API key. Defaults to |
url |
Groq models endpoint. |
json_list |
If |
A data.table by default, or a parsed JSON list when
json_list = TRUE.
Retrieves models available from the MiniMax API.
list_minimax_models( api_key = Sys.getenv("MINIMAX_API_KEY"), url = Sys.getenv("MINIMAX_MODELS_URL", unset = "https://api.minimax.io/v1/models"), json_list = FALSE, timeout = 120 )list_minimax_models( api_key = Sys.getenv("MINIMAX_API_KEY"), url = Sys.getenv("MINIMAX_MODELS_URL", unset = "https://api.minimax.io/v1/models"), json_list = FALSE, timeout = 120 )
api_key |
MiniMax API key. Defaults to |
url |
MiniMax OpenAI-compatible models endpoint. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
A data.table by default, or a parsed JSON list when
json_list = TRUE.
Retrieves models available from the Moonshot AI Kimi API.
list_moonshot_models( api_key = Sys.getenv("MOONSHOT_API_KEY"), url = "https://api.moonshot.ai/v1/models", json_list = FALSE, timeout = 120 )list_moonshot_models( api_key = Sys.getenv("MOONSHOT_API_KEY"), url = "https://api.moonshot.ai/v1/models", json_list = FALSE, timeout = 120 )
api_key |
Moonshot API key. Defaults to |
url |
Moonshot OpenAI-compatible models endpoint. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
A data.table by default, or a parsed JSON list when
json_list = TRUE.
Retrieves available models from the Ollama Cloud tags endpoint.
list_ollama_models( api_key = Sys.getenv("OLLAMA_API_KEY"), url = "https://ollama.com/api/tags", json_list = FALSE )list_ollama_models( api_key = Sys.getenv("OLLAMA_API_KEY"), url = "https://ollama.com/api/tags", json_list = FALSE )
api_key |
Ollama API key. Defaults to |
url |
Ollama Cloud tags endpoint. |
json_list |
If |
A data.table by default, or a parsed JSON list when
json_list = TRUE.
Retrieves models from an OpenAI-compatible /v1/models endpoint. This is
suitable for local or self-hosted servers such as llama.cpp, vLLM, LM
Studio, LocalAI, and compatible deployments. Authentication is optional.
list_openai_compatible_models( url = "http://127.0.0.1:8080/v1/models", api_key = NULL, json_list = FALSE, timeout = 120 )list_openai_compatible_models( url = "http://127.0.0.1:8080/v1/models", api_key = NULL, json_list = FALSE, timeout = 120 )
url |
OpenAI-compatible models endpoint. |
api_key |
Optional bearer token. Use |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
A data.table by default, or a parsed JSON list when
json_list = TRUE.
Retrieves models available to the current OpenAI API key.
list_openai_models( api_key = Sys.getenv("OPENAI_API_KEY"), url = "https://api.openai.com/v1/models", json_list = FALSE )list_openai_models( api_key = Sys.getenv("OPENAI_API_KEY"), url = "https://api.openai.com/v1/models", json_list = FALSE )
api_key |
OpenAI API key. Defaults to |
url |
OpenAI models endpoint. |
json_list |
If |
A data.table by default, or the complete parsed JSON response when
json_list = TRUE.
Filters the general OpenRouter models catalog to models with audio input or output modalities.
list_openrouter_audio_models( api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/models", json_list = FALSE )list_openrouter_audio_models( api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/models", json_list = FALSE )
api_key |
OpenRouter API key. Defaults to
|
url |
OpenRouter models endpoint. |
json_list |
If |
A filtered data.table by default, or a filtered parsed JSON list
when json_list = TRUE.
Retrieves benchmark results directly from OpenRouter's unified benchmarks
endpoint. Unlike extract_openrouter_benchmarks(), this function does not
inspect model metadata and is intended for benchmark refresh workflows.
list_openrouter_benchmarks( api_key = Sys.getenv("OPENROUTER_API_KEY"), source = NULL, task_type = NULL, url = "https://openrouter.ai/api/v1/benchmarks" )list_openrouter_benchmarks( api_key = Sys.getenv("OPENROUTER_API_KEY"), source = NULL, task_type = NULL, url = "https://openrouter.ai/api/v1/benchmarks" )
api_key |
OpenRouter API key. Defaults to
|
source |
Optional benchmark source: |
task_type |
Optional workload filter: |
url |
OpenRouter benchmarks endpoint. |
A long data.table with one row per model and benchmark metric.
The returned scores retain the source-native scale. Provider-supplied
source timestamps and URLs, plus the queried endpoint, are retained for
provenance. price_basis identifies provider-reported per-token pricing
and is distinct from avg_cost_per_task.
Filters the general OpenRouter models catalog to models with embedding output modalities.
list_openrouter_embedding_models( api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/models", json_list = FALSE )list_openrouter_embedding_models( api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/models", json_list = FALSE )
api_key |
OpenRouter API key. Defaults to
|
url |
OpenRouter models endpoint. |
json_list |
If |
A filtered data.table by default, or a filtered parsed JSON list
when json_list = TRUE.
Filters the general OpenRouter models catalog to models with image output modalities.
list_openrouter_image_models( api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/models", json_list = FALSE )list_openrouter_image_models( api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/models", json_list = FALSE )
api_key |
OpenRouter API key. Defaults to
|
url |
OpenRouter models endpoint. |
json_list |
If |
A filtered data.table by default, or a filtered parsed JSON list
when json_list = TRUE.
Retrieves available models from the OpenRouter models endpoint.
list_openrouter_models( api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/models", json_list = FALSE )list_openrouter_models( api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/models", json_list = FALSE )
api_key |
OpenRouter API key. Defaults to
|
url |
OpenRouter models endpoint. |
json_list |
If |
A data.table by default, or a parsed JSON list when
json_list = TRUE.
Filters the general OpenRouter models catalog to models that support multiple input modalities.
list_openrouter_multimodal_models( api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/models", json_list = FALSE )list_openrouter_multimodal_models( api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/models", json_list = FALSE )
api_key |
OpenRouter API key. Defaults to
|
url |
OpenRouter models endpoint. |
json_list |
If |
A filtered data.table by default, or a filtered parsed JSON list
when json_list = TRUE.
Retrieves available video generation models and their normalized feature metadata from the OpenRouter video models endpoint.
list_openrouter_video_models( api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/videos/models", json_list = FALSE )list_openrouter_video_models( api_key = Sys.getenv("OPENROUTER_API_KEY"), url = "https://openrouter.ai/api/v1/videos/models", json_list = FALSE )
api_key |
OpenRouter API key. Defaults to
|
url |
OpenRouter video models endpoint. |
json_list |
If |
A data.table by default, or a parsed JSON list when
json_list = TRUE.
Retrieves models available from Alibaba Cloud Model Studio.
list_qwen_models( api_key = Sys.getenv("DASHSCOPE_API_KEY"), url = Sys.getenv("QWEN_MODELS_URL", unset = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/models"), json_list = FALSE, timeout = 120 )list_qwen_models( api_key = Sys.getenv("DASHSCOPE_API_KEY"), url = Sys.getenv("QWEN_MODELS_URL", unset = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/models"), json_list = FALSE, timeout = 120 )
api_key |
Qwen API key. Defaults to |
url |
Qwen OpenAI-compatible models endpoint. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
A data.table by default, or a parsed JSON list when
json_list = TRUE.
Retrieves models available from the Zhipu AI Open Platform.
list_zhipu_models( api_key = Sys.getenv("ZHIPUAI_API_KEY"), url = "https://open.bigmodel.cn/api/paas/v4/models", json_list = FALSE, timeout = 120 )list_zhipu_models( api_key = Sys.getenv("ZHIPUAI_API_KEY"), url = "https://open.bigmodel.cn/api/paas/v4/models", json_list = FALSE, timeout = 120 )
api_key |
Zhipu AI API key. Defaults to |
url |
Zhipu OpenAI-compatible models endpoint. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
A data.table by default, or a parsed JSON list when
json_list = TRUE.
Sends a single user prompt to the Cerebras chat completions API.
query_cerebras( prompt, model = "gpt-oss-120b", api_key = Sys.getenv("CEREBRAS_API_KEY"), url = "https://api.cerebras.ai/v1/chat/completions", json_list = FALSE )query_cerebras( prompt, model = "gpt-oss-120b", api_key = Sys.getenv("CEREBRAS_API_KEY"), url = "https://api.cerebras.ai/v1/chat/completions", json_list = FALSE )
prompt |
A non-empty character string. |
model |
Model identifier. |
api_key |
Cerebras API key. Defaults to |
url |
Cerebras chat completions endpoint. |
json_list |
If |
A character string by default, or a parsed JSON list when
json_list = TRUE.
Tries mainland-China-hosted provider APIs in order: Qwen, Zhipu, DeepSeek, Moonshot, then MiniMax.
query_china_fallback( prompt, json_list = FALSE, timeout = 120, api_key_qwen = Sys.getenv("DASHSCOPE_API_KEY"), api_key_zhipu = Sys.getenv("ZHIPUAI_API_KEY"), api_key_deepseek = Sys.getenv("DEEPSEEK_API_KEY"), api_key_moonshot = Sys.getenv("MOONSHOT_API_KEY"), api_key_minimax = Sys.getenv("MINIMAX_API_KEY") )query_china_fallback( prompt, json_list = FALSE, timeout = 120, api_key_qwen = Sys.getenv("DASHSCOPE_API_KEY"), api_key_zhipu = Sys.getenv("ZHIPUAI_API_KEY"), api_key_deepseek = Sys.getenv("DEEPSEEK_API_KEY"), api_key_moonshot = Sys.getenv("MOONSHOT_API_KEY"), api_key_minimax = Sys.getenv("MINIMAX_API_KEY") )
prompt |
A non-empty character string. |
json_list |
If |
timeout |
Maximum number of seconds to wait for each provider request. |
api_key_qwen |
Qwen API key. Defaults to |
api_key_zhipu |
Zhipu AI API key. Defaults to |
api_key_deepseek |
DeepSeek API key. Defaults to |
api_key_moonshot |
Moonshot API key. Defaults to |
api_key_minimax |
MiniMax API key. Defaults to |
A character string by default. When json_list = TRUE, returns a
list with elements provider and response.
Calls only the currently verified no-cost mainland-China model. This avoids treating account-specific free trials as universally free and therefore does not silently route a request to a paid model.
query_china_free_fallback( prompt, json_list = FALSE, timeout = 120, api_key_zhipu = Sys.getenv("ZHIPUAI_API_KEY") )query_china_free_fallback( prompt, json_list = FALSE, timeout = 120, api_key_zhipu = Sys.getenv("ZHIPUAI_API_KEY") )
prompt |
A non-empty character string. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the provider request. |
api_key_zhipu |
Zhipu AI API key. Defaults to |
A character string by default. When json_list = TRUE, returns a
list with elements provider and response.
Sends a prompt to the DeepSeek OpenAI-compatible chat endpoint.
query_deepseek( prompt, model = "deepseek-v4-flash", temperature = 0.7, top_p = 1, max_tokens = 2048L, api_key = Sys.getenv("DEEPSEEK_API_KEY"), url = "https://api.deepseek.com/chat/completions", json_list = FALSE, timeout = 120 )query_deepseek( prompt, model = "deepseek-v4-flash", temperature = 0.7, top_p = 1, max_tokens = 2048L, api_key = Sys.getenv("DEEPSEEK_API_KEY"), url = "https://api.deepseek.com/chat/completions", json_list = FALSE, timeout = 120 )
prompt |
A non-empty character string. |
model |
Model identifier. |
temperature |
Sampling temperature. |
top_p |
Nucleus sampling parameter. |
max_tokens |
Maximum number of output tokens. |
api_key |
DeepSeek API key. Defaults to |
url |
DeepSeek OpenAI-compatible chat completions endpoint. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
Tries the package's text-query wrappers in order until one succeeds:
query_gemini(), then query_openrouter(), then query_groq().
query_fallback( prompt, json_list = FALSE, api_key_gemini = Sys.getenv("GEMINI_API_KEY"), api_key_openrouter = Sys.getenv("OPENROUTER_API_KEY"), api_key_groq = Sys.getenv("GROQ_API_KEY"), timeout = 120 )query_fallback( prompt, json_list = FALSE, api_key_gemini = Sys.getenv("GEMINI_API_KEY"), api_key_openrouter = Sys.getenv("OPENROUTER_API_KEY"), api_key_groq = Sys.getenv("GROQ_API_KEY"), timeout = 120 )
prompt |
A non-empty character string. |
json_list |
If |
api_key_gemini |
Gemini API key. Defaults to |
api_key_openrouter |
OpenRouter API key. Defaults to
|
api_key_groq |
Groq API key. Defaults to |
timeout |
Maximum number of seconds to wait for each provider request. |
A character string by default. When json_list = TRUE, returns a
list with elements provider and response.
Sends a single user prompt to the Gemini generateContent API.
query_gemini( prompt, api_key = Sys.getenv("GEMINI_API_KEY"), model = "gemini-2.5-flash", url0 = Sys.getenv("GEMINI_API_URL", unset = "https://generativelanguage.googleapis.com/v1beta/models"), temperature = 0.7, top_p = 1, top_k = 40, max_tokens = NULL, response_modalities = NULL, speech_config = NULL, json_list = FALSE, timeout = 120 )query_gemini( prompt, api_key = Sys.getenv("GEMINI_API_KEY"), model = "gemini-2.5-flash", url0 = Sys.getenv("GEMINI_API_URL", unset = "https://generativelanguage.googleapis.com/v1beta/models"), temperature = 0.7, top_p = 1, top_k = 40, max_tokens = NULL, response_modalities = NULL, speech_config = NULL, json_list = FALSE, timeout = 120 )
prompt |
A non-empty character string. |
api_key |
Gemini API key. Defaults to |
model |
Model identifier. |
url0 |
Base Gemini models URL. |
temperature |
Sampling temperature. |
top_p |
Nucleus sampling parameter. |
top_k |
Top-k sampling parameter. |
max_tokens |
Optional maximum number of output tokens. |
response_modalities |
Optional response modalities, for example
|
speech_config |
Optional Gemini |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
A character string by default. For audio responses, returns the
base64-encoded audio data from inlineData$data. Returns the parsed JSON
list when json_list = TRUE.
Sends Gemini generateContent requests using either a simple text prompt or
an explicit list of content parts. This allows text, image, audio, PDF, and
other supported non-text inputs to be passed through the same wrapper.
query_gemini_content( prompt = NULL, parts = NULL, api_key = Sys.getenv("GEMINI_API_KEY"), model = "gemini-2.5-flash", url0 = Sys.getenv("GEMINI_API_URL", unset = "https://generativelanguage.googleapis.com/v1beta/models"), temperature = 0.7, top_p = 1, top_k = 40, max_tokens = NULL, response_modalities = NULL, speech_config = NULL, json_list = FALSE, timeout = 120 )query_gemini_content( prompt = NULL, parts = NULL, api_key = Sys.getenv("GEMINI_API_KEY"), model = "gemini-2.5-flash", url0 = Sys.getenv("GEMINI_API_URL", unset = "https://generativelanguage.googleapis.com/v1beta/models"), temperature = 0.7, top_p = 1, top_k = 40, max_tokens = NULL, response_modalities = NULL, speech_config = NULL, json_list = FALSE, timeout = 120 )
prompt |
A non-empty character string. Ignored when |
parts |
Optional Gemini |
api_key |
Gemini API key. Defaults to |
model |
Model identifier. |
url0 |
Base Gemini models URL. |
temperature |
Sampling temperature. |
top_p |
Nucleus sampling parameter. |
top_k |
Top-k sampling parameter. |
max_tokens |
Optional maximum number of output tokens. |
response_modalities |
Optional response modalities, for example
|
speech_config |
Optional Gemini |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
A character string when Gemini returns text, a base64 string when the
first returned part is inline binary data, or the parsed JSON response when
json_list = TRUE.
Sends a single user prompt to the Groq chat completions API.
query_groq( prompt, api_key = Sys.getenv("GROQ_API_KEY"), url = Sys.getenv("GROQ_API_URL", unset = "https://api.groq.com/openai/v1/chat/completions"), model = c("groq/compound", "allam-2-7b", "groq/compound-mini", "qwen/qwen3-32b", "openai/gpt-oss-20b", "canopylabs/orpheus-v1-english", "openai/gpt-oss-120b", "whisper-large-v3", "llama-3.3-70b-versatile", "moonshotai/kimi-k2-instruct-0905", "whisper-large-v3-turbo", "meta-llama/llama-prompt-guard-2-86m", "moonshotai/kimi-k2-instruct", "meta-llama/llama-prompt-guard-2-22m", "meta-llama/llama-4-scout-17b-16e-instruct", "openai/gpt-oss-safeguard-20b", "llama-3.1-8b-instant", "canopylabs/orpheus-arabic-saudi"), temperature = 1, top_p = 1, max_tokens = 1024, stream = FALSE, json_list = FALSE, timeout = 120 )query_groq( prompt, api_key = Sys.getenv("GROQ_API_KEY"), url = Sys.getenv("GROQ_API_URL", unset = "https://api.groq.com/openai/v1/chat/completions"), model = c("groq/compound", "allam-2-7b", "groq/compound-mini", "qwen/qwen3-32b", "openai/gpt-oss-20b", "canopylabs/orpheus-v1-english", "openai/gpt-oss-120b", "whisper-large-v3", "llama-3.3-70b-versatile", "moonshotai/kimi-k2-instruct-0905", "whisper-large-v3-turbo", "meta-llama/llama-prompt-guard-2-86m", "moonshotai/kimi-k2-instruct", "meta-llama/llama-prompt-guard-2-22m", "meta-llama/llama-4-scout-17b-16e-instruct", "openai/gpt-oss-safeguard-20b", "llama-3.1-8b-instant", "canopylabs/orpheus-arabic-saudi"), temperature = 1, top_p = 1, max_tokens = 1024, stream = FALSE, json_list = FALSE, timeout = 120 )
prompt |
A non-empty character string. |
api_key |
Groq API key. Defaults to |
url |
Groq chat completions endpoint. |
model |
Model identifier. |
temperature |
Sampling temperature. |
top_p |
Nucleus sampling parameter. |
max_tokens |
Maximum number of output tokens. |
stream |
Whether to request an SSE response. The complete response is buffered and assembled before the function returns; tokens are not printed incrementally to the terminal. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
A character string by default. With json_list = TRUE, returns a
parsed JSON response for non-streaming requests or a list of parsed SSE
chunks for streaming requests.
Sends a prompt to the MiniMax OpenAI-compatible chat endpoint.
query_minimax( prompt, model = "MiniMax-M2.7", temperature = 0.7, top_p = 1, max_tokens = 2048L, api_key = Sys.getenv("MINIMAX_API_KEY"), url = Sys.getenv("MINIMAX_API_URL", unset = "https://api.minimax.io/v1/chat/completions"), json_list = FALSE, timeout = 120 )query_minimax( prompt, model = "MiniMax-M2.7", temperature = 0.7, top_p = 1, max_tokens = 2048L, api_key = Sys.getenv("MINIMAX_API_KEY"), url = Sys.getenv("MINIMAX_API_URL", unset = "https://api.minimax.io/v1/chat/completions"), json_list = FALSE, timeout = 120 )
prompt |
A non-empty character string. |
model |
Model identifier. |
temperature |
Sampling temperature. |
top_p |
Nucleus sampling parameter. |
max_tokens |
Maximum number of output tokens. |
api_key |
MiniMax API key. Defaults to |
url |
MiniMax OpenAI-compatible chat completions endpoint. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
Sends a prompt to the Moonshot AI Kimi OpenAI-compatible chat endpoint.
query_moonshot( prompt, model = "kimi-k2.6", temperature = 0.7, top_p = 1, max_tokens = 2048L, api_key = Sys.getenv("MOONSHOT_API_KEY"), url = "https://api.moonshot.ai/v1/chat/completions", json_list = FALSE, timeout = 120 )query_moonshot( prompt, model = "kimi-k2.6", temperature = 0.7, top_p = 1, max_tokens = 2048L, api_key = Sys.getenv("MOONSHOT_API_KEY"), url = "https://api.moonshot.ai/v1/chat/completions", json_list = FALSE, timeout = 120 )
prompt |
A non-empty character string. |
model |
Model identifier. |
temperature |
Sampling temperature. |
top_p |
Nucleus sampling parameter. |
max_tokens |
Maximum number of output tokens. |
api_key |
Moonshot API key. Defaults to |
url |
Moonshot OpenAI-compatible chat completions endpoint. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
Sends a single user prompt to the Ollama Cloud chat API.
query_ollama( prompt, model = "gpt-oss:120b", api_key = Sys.getenv("OLLAMA_API_KEY"), url = "https://ollama.com/api/chat", json_list = FALSE )query_ollama( prompt, model = "gpt-oss:120b", api_key = Sys.getenv("OLLAMA_API_KEY"), url = "https://ollama.com/api/chat", json_list = FALSE )
prompt |
A non-empty character string. |
model |
Model identifier. |
api_key |
Ollama API key. Defaults to |
url |
Ollama Cloud chat endpoint. |
json_list |
If |
A character string by default, or a parsed JSON list when
json_list = TRUE.
Sends a request directly to OpenAI's Responses API. The input may be a simple text prompt or a structured Responses API input list for multimodal and multi-message workflows.
query_openai( input, model = "gpt-5.6", instructions = NULL, max_output_tokens = NULL, temperature = NULL, top_p = NULL, tools = NULL, api_key = Sys.getenv("OPENAI_API_KEY"), url = Sys.getenv("OPENAI_API_URL", unset = "https://api.openai.com/v1/responses"), json_list = FALSE )query_openai( input, model = "gpt-5.6", instructions = NULL, max_output_tokens = NULL, temperature = NULL, top_p = NULL, tools = NULL, api_key = Sys.getenv("OPENAI_API_KEY"), url = Sys.getenv("OPENAI_API_URL", unset = "https://api.openai.com/v1/responses"), json_list = FALSE )
input |
A non-empty character string or structured Responses API input list. |
model |
Model identifier. |
instructions |
Optional system or developer instructions. |
max_output_tokens |
Optional maximum number of generated tokens, including visible output and reasoning tokens. |
temperature |
Optional sampling temperature. |
top_p |
Optional nucleus sampling parameter. |
tools |
Optional list of Responses API tool definitions. |
api_key |
OpenAI API key. Defaults to |
url |
OpenAI Responses endpoint. |
json_list |
If |
A character string containing the response text by default, or the
complete parsed JSON response when json_list = TRUE.
Sends a prompt to an OpenAI-compatible /v1/chat/completions endpoint.
This is suitable for local or self-hosted servers such as llama.cpp,
vLLM, LM Studio, LocalAI, and compatible deployments. Authentication is
optional. response_format is forwarded unchanged, allowing servers that
support JSON-schema constrained output to use their native request shape.
query_openai_compatible( prompt, model, system = NULL, response_format = NULL, temperature = NULL, max_tokens = NULL, url = "http://127.0.0.1:8080/v1/chat/completions", api_key = NULL, timeout = 120, json_list = FALSE )query_openai_compatible( prompt, model, system = NULL, response_format = NULL, temperature = NULL, max_tokens = NULL, url = "http://127.0.0.1:8080/v1/chat/completions", api_key = NULL, timeout = 120, json_list = FALSE )
prompt |
A non-empty character string. |
model |
Model identifier. |
system |
Optional system prompt. |
response_format |
Optional OpenAI-compatible response-format object. |
temperature |
Optional sampling temperature. |
max_tokens |
Optional maximum number of output tokens. |
url |
OpenAI-compatible chat completions endpoint. |
api_key |
Optional bearer token. Use |
timeout |
Maximum number of seconds to wait for the HTTP request. |
json_list |
If |
A character string by default, or a parsed JSON list when
json_list = TRUE.
Sends a single user prompt to the OpenRouter chat completions API.
query_openrouter( prompt, model = "openrouter/free", temperature = 0, top_p = 1, max_tokens = 2048L, reasoning = TRUE, logprobs = FALSE, top_logprobs = NULL, auto_router_cost_tier = NULL, session_id = NULL, api_key = Sys.getenv("OPENROUTER_API_KEY"), url = Sys.getenv("OPENROUTER_API_URL", unset = "https://openrouter.ai/api/v1/chat/completions"), json_list = FALSE, timeout = 120 )query_openrouter( prompt, model = "openrouter/free", temperature = 0, top_p = 1, max_tokens = 2048L, reasoning = TRUE, logprobs = FALSE, top_logprobs = NULL, auto_router_cost_tier = NULL, session_id = NULL, api_key = Sys.getenv("OPENROUTER_API_KEY"), url = Sys.getenv("OPENROUTER_API_URL", unset = "https://openrouter.ai/api/v1/chat/completions"), json_list = FALSE, timeout = 120 )
prompt |
A non-empty character string. |
model |
Model identifier. |
temperature |
Sampling temperature. |
top_p |
Nucleus sampling parameter. |
max_tokens |
Maximum number of output tokens. |
reasoning |
Whether to enable reasoning mode. |
logprobs |
Whether to return log probabilities for output tokens. |
top_logprobs |
Optional number of most likely tokens to return at each
position. Must be an integer from 0 through 20 and requires
|
auto_router_cost_tier |
Optional OpenRouter Auto Router cost tier:
|
session_id |
Optional OpenRouter session identifier for preserving model selection across related requests. |
api_key |
OpenRouter API key. Defaults to
|
url |
OpenRouter chat completions endpoint. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
A character string by default, or a parsed JSON list when
json_list = TRUE.
Sends a single OpenRouter chat-completions request using either simple text content or an explicit multimodal content block list.
query_openrouter_content( content, model = "openrouter/free", temperature = 0, top_p = 1, max_tokens = 2048L, reasoning = TRUE, logprobs = FALSE, top_logprobs = NULL, auto_router_cost_tier = NULL, session_id = NULL, modalities = NULL, api_key = Sys.getenv("OPENROUTER_API_KEY"), url = Sys.getenv("OPENROUTER_API_URL", unset = "https://openrouter.ai/api/v1/chat/completions"), json_list = FALSE, timeout = 120 )query_openrouter_content( content, model = "openrouter/free", temperature = 0, top_p = 1, max_tokens = 2048L, reasoning = TRUE, logprobs = FALSE, top_logprobs = NULL, auto_router_cost_tier = NULL, session_id = NULL, modalities = NULL, api_key = Sys.getenv("OPENROUTER_API_KEY"), url = Sys.getenv("OPENROUTER_API_URL", unset = "https://openrouter.ai/api/v1/chat/completions"), json_list = FALSE, timeout = 120 )
content |
A non-empty character string or a non-empty list of OpenAI style content blocks. |
model |
Model identifier. |
temperature |
Sampling temperature. |
top_p |
Nucleus sampling parameter. |
max_tokens |
Maximum number of output tokens. |
reasoning |
Whether to enable reasoning mode. |
logprobs |
Whether to return log probabilities for output tokens. |
top_logprobs |
Optional number of most likely tokens to return at each
position. Must be an integer from 0 through 20 and requires
|
auto_router_cost_tier |
Optional OpenRouter Auto Router cost tier:
|
session_id |
Optional OpenRouter session identifier for preserving model selection across related requests. |
modalities |
Optional output modalities, for example |
api_key |
OpenRouter API key. Defaults to
|
url |
OpenRouter chat completions endpoint. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
A character string by default when the assistant returns text, the
first image payload or URL when text is absent but images are returned, or
the parsed JSON response when json_list = TRUE.
Sends a prompt to Alibaba Cloud Model Studio's OpenAI-compatible chat endpoint.
query_qwen( prompt, model = "qwen-plus", temperature = 0.7, top_p = 1, max_tokens = 2048L, api_key = Sys.getenv("DASHSCOPE_API_KEY"), url = Sys.getenv("QWEN_API_URL", unset = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions"), json_list = FALSE, timeout = 120 )query_qwen( prompt, model = "qwen-plus", temperature = 0.7, top_p = 1, max_tokens = 2048L, api_key = Sys.getenv("DASHSCOPE_API_KEY"), url = Sys.getenv("QWEN_API_URL", unset = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions"), json_list = FALSE, timeout = 120 )
prompt |
A non-empty character string. |
model |
Model identifier. |
temperature |
Sampling temperature. |
top_p |
Nucleus sampling parameter. |
max_tokens |
Maximum number of output tokens. |
api_key |
Qwen API key. Defaults to |
url |
Qwen OpenAI-compatible chat completions endpoint. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
A character string by default, or a parsed JSON list when
json_list = TRUE.
Sends a prompt to the Zhipu AI Open Platform's OpenAI-compatible chat endpoint.
query_zhipu( prompt, model = "glm-5", temperature = 0.7, top_p = 1, max_tokens = 2048L, api_key = Sys.getenv("ZHIPUAI_API_KEY"), url = "https://open.bigmodel.cn/api/paas/v4/chat/completions", json_list = FALSE, timeout = 120 )query_zhipu( prompt, model = "glm-5", temperature = 0.7, top_p = 1, max_tokens = 2048L, api_key = Sys.getenv("ZHIPUAI_API_KEY"), url = "https://open.bigmodel.cn/api/paas/v4/chat/completions", json_list = FALSE, timeout = 120 )
prompt |
A non-empty character string. |
model |
Model identifier. |
temperature |
Sampling temperature. |
top_p |
Nucleus sampling parameter. |
max_tokens |
Maximum number of output tokens. |
api_key |
Zhipu AI API key. Defaults to |
url |
Zhipu OpenAI-compatible chat completions endpoint. |
json_list |
If |
timeout |
Maximum number of seconds to wait for the HTTP request. |
inferencer also ships a small optional shell layer under inst/shell.
These scripts are executable command-line helpers that mirror common R
wrapper workflows:
query_gemini, query_groq, query_openrouter, query_ollama,
query_fallback, query_local_llm (a Node.js helper for a local model
server), provider-specific list_*_models scripts, and
render_markdown_terminal.
The shell scripts read API keys and defaults from shell environment
variables, typically configured in .zprofile. The variable names are
aligned with the R wrappers, such as GEMINI_API_KEY, GROQ_API_KEY,
OPENROUTER_API_KEY, and OLLAMA_API_KEY.
The zsh scripts are intentionally minimal and depend on external curl and
jq binaries. query_local_llm requires Node.js 18 or later and
uses its built-in fetch. Query scripts print the model response text by
default and return the full parsed JSON payload when called with --json.
Pipe query output to render_markdown_terminal when terminal markdown
rendering is desired.
query_fallback tries query_gemini, then query_openrouter, then
query_groq using each script's default model.
Decodes base64 audio returned by query_gemini() and writes it as raw PCM
or a WAV file.
write_gemini_audio( x, path, format = c("pcm", "wav"), sample_rate = 24000L, channels = 1L, bits_per_sample = 16L )write_gemini_audio( x, path, format = c("pcm", "wav"), sample_rate = 24000L, channels = 1L, bits_per_sample = 16L )
x |
A base64-encoded audio string, or a parsed JSON response returned by
|
path |
Output file path. |
format |
Output format: |
sample_rate |
Sample rate used when writing WAV output. |
channels |
Number of audio channels used when writing WAV output. |
bits_per_sample |
Bit depth used when writing WAV output. |
Invisibly returns path.