View source: R/provider-ollama.R
| chat_ollama | R Documentation |
To use chat_ollama() first download and install
Ollama. Then install some models either from the
command line (e.g. with ollama pull llama3.1) or within R using
ollamar (e.g.
ollamar::pull("llama3.1")).
Built on top of chat_openai_compatible().
Some Ollama models (e.g. qwen3) support extended reasoning or "thinking".
When using these models, thinking content is automatically captured in
the turn. You can control thinking with
reasoning_effort:
chat <- chat_ollama( model = "qwen3:4b", params = params(reasoning_effort = "none") )
Which values are supported depends on the model. For example, qwen3 only
supports "none" (off) vs the default (on), while gpt-oss supports
"low", "medium", and "high" but ignores "none". See
https://docs.ollama.com/capabilities/thinking for details.
Tool calling is not supported with streaming (i.e. when echo is
"text" or "all")
Models can only use 2048 input tokens, and there's no way to get them to use more, except by creating a custom model with a different default.
Tool calling generally seems quite weak, at least with the models I have tried it with.
chat_ollama(
system_prompt = NULL,
base_url = Sys.getenv("OLLAMA_BASE_URL", "http://localhost:11434"),
model,
params = NULL,
api_args = list(),
echo = NULL,
api_key = NULL,
credentials = NULL,
api_headers = character()
)
models_ollama(base_url = "http://localhost:11434", credentials = NULL)
system_prompt |
A system prompt to set the behavior of the assistant. |
base_url |
The base URL to the API endpoint. |
model |
The model to use for the chat.
Use |
params |
Common model parameters, usually created by |
api_args |
Named list of arbitrary extra arguments appended to the body
of every chat API call. Combined with the body object generated by ellmer
with |
echo |
One of the following options:
Note this only affects the |
api_key |
|
credentials |
Ollama doesn't require credentials for local usage and in most
cases you do not need to provide However, if you're accessing an Ollama instance hosted behind a reverse
proxy or secured endpoint that enforces bearer‐token authentication, you
can set the |
api_headers |
Named character vector of arbitrary extra headers appended to every chat API call. |
A Chat object.
Other chatbots:
chat_anthropic(),
chat_aws_bedrock(),
chat_azure_openai(),
chat_cloudflare(),
chat_databricks(),
chat_deepseek(),
chat_github(),
chat_google_gemini(),
chat_groq(),
chat_huggingface(),
chat_lmstudio(),
chat_mistral(),
chat_openai(),
chat_openai_compatible(),
chat_openrouter(),
chat_perplexity(),
chat_portkey(),
chat_posit()
## Not run:
chat <- chat_ollama(model = "llama3.2")
chat$chat("Tell me three jokes about statisticians")
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.