README.md 11.2 KB
Newer Older
Michael Chiang's avatar
Michael Chiang committed
1
<div align="center">
Jeffrey Morgan's avatar
Jeffrey Morgan committed
2
  <img alt="ollama" height="200px" src="https://github.com/jmorganca/ollama/assets/3325447/0d0b44e2-8f4a-4e99-9b52-a5c1c741c8f7">
Michael Chiang's avatar
Michael Chiang committed
3
</div>
Jeffrey Morgan's avatar
Jeffrey Morgan committed
4

Bruce MacDonald's avatar
Bruce MacDonald committed
5
# Ollama
Jeffrey Morgan's avatar
Jeffrey Morgan committed
6

7
[![Discord](https://dcbadge.vercel.app/api/server/ollama?style=flat&compact=true)](https://discord.gg/ollama)
8

9
Get up and running with large language models locally.
10

11
### macOS
Jeffrey Morgan's avatar
Jeffrey Morgan committed
12

13
[Download](https://ollama.com/download/Ollama-darwin.zip)
14

Michael's avatar
Michael committed
15
### Windows preview
16

Michael's avatar
Michael committed
17
[Download](https://ollama.com/download/OllamaSetup.exe)
18

Michael's avatar
Michael committed
19
### Linux
20
21

```
22
curl -fsSL https://ollama.com/install.sh | sh
23
24
25
26
```

[Manual install instructions](https://github.com/jmorganca/ollama/blob/main/docs/linux.md)

27
### Docker
28

Jeffrey Morgan's avatar
Jeffrey Morgan committed
29
The official [Ollama Docker image](https://hub.docker.com/r/ollama/ollama) `ollama/ollama` is available on Docker Hub.
30

Jeffrey Morgan's avatar
Jeffrey Morgan committed
31
32
33
34
35
### Libraries

- [ollama-python](https://github.com/ollama/ollama-python)
- [ollama-js](https://github.com/ollama/ollama-js)

36
37
## Quickstart

38
To run and chat with [Llama 2](https://ollama.com/library/llama2):
39
40
41
42
43
44
45

```
ollama run llama2
```

## Model library

Jeffrey Morgan's avatar
Jeffrey Morgan committed
46
Ollama supports a list of models available on [ollama.com/library](https://ollama.com/library 'ollama model library')
47

Jeffrey Morgan's avatar
Jeffrey Morgan committed
48
Here are some example models that can be downloaded:
49

50
51
| Model              | Parameters | Size  | Download                       |
| ------------------ | ---------- | ----- | ------------------------------ |
Jeffrey Morgan's avatar
Jeffrey Morgan committed
52
53
| Llama 2            | 7B         | 3.8GB | `ollama run llama2`            |
| Mistral            | 7B         | 4.1GB | `ollama run mistral`           |
Jeffrey Morgan's avatar
Jeffrey Morgan committed
54
| Dolphin Phi        | 2.7B       | 1.6GB | `ollama run dolphin-phi`       |
Jeffrey Morgan's avatar
Jeffrey Morgan committed
55
| Phi-2              | 2.7B       | 1.7GB | `ollama run phi`               |
Michael's avatar
Michael committed
56
57
| Neural Chat        | 7B         | 4.1GB | `ollama run neural-chat`       |
| Starling           | 7B         | 4.1GB | `ollama run starling-lm`       |
58
59
60
61
62
63
| Code Llama         | 7B         | 3.8GB | `ollama run codellama`         |
| Llama 2 Uncensored | 7B         | 3.8GB | `ollama run llama2-uncensored` |
| Llama 2 13B        | 13B        | 7.3GB | `ollama run llama2:13b`        |
| Llama 2 70B        | 70B        | 39GB  | `ollama run llama2:70b`        |
| Orca Mini          | 3B         | 1.9GB | `ollama run orca-mini`         |
| Vicuna             | 7B         | 3.8GB | `ollama run vicuna`            |
Jeffrey Morgan's avatar
Jeffrey Morgan committed
64
| LLaVA              | 7B         | 4.5GB | `ollama run llava`             |
65
66
| Gemma              | 2B         | 1.4GB | `ollama run gemma:2b`          |
| Gemma              | 7B         | 4.8GB | `ollama run gemma:7b`          |
67

Matt Williams's avatar
Matt Williams committed
68
> Note: You should have at least 8 GB of RAM available to run the 7B models, 16 GB to run the 13B models, and 32 GB to run the 33B models.
Jeffrey Morgan's avatar
Jeffrey Morgan committed
69

Jeffrey Morgan's avatar
Jeffrey Morgan committed
70
## Customize a model
Jeffrey Morgan's avatar
Jeffrey Morgan committed
71

72
### Import from GGUF
Michael Yang's avatar
Michael Yang committed
73

74
Ollama supports importing GGUF models in the Modelfile:
Michael Yang's avatar
Michael Yang committed
75

76
1. Create a file named `Modelfile`, with a `FROM` instruction with the local filepath to the model you want to import.
Michael Yang's avatar
Michael Yang committed
77

78
79
80
   ```
   FROM ./vicuna-33b.Q4_0.gguf
   ```
81

82
2. Create the model in Ollama
Jeffrey Morgan's avatar
Jeffrey Morgan committed
83

84
   ```
85
   ollama create example -f Modelfile
86
   ```
87

88
3. Run the model
Michael Yang's avatar
Michael Yang committed
89

90
   ```
91
   ollama run example
92
   ```
Michael Yang's avatar
Michael Yang committed
93

94
95
96
97
### Import from PyTorch or Safetensors

See the [guide](docs/import.md) on importing models for more information.

98
### Customize a prompt
Michael Yang's avatar
Michael Yang committed
99

Jeffrey Morgan's avatar
Jeffrey Morgan committed
100
Models from the Ollama library can be customized with a prompt. For example, to customize the `llama2` model:
101
102

```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
103
ollama pull llama2
104
```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
105

106
Create a `Modelfile`:
Jeffrey Morgan's avatar
Jeffrey Morgan committed
107

Jeffrey Morgan's avatar
Jeffrey Morgan committed
108
```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
109
FROM llama2
110
111
112
113

# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1

114
# set the system message
Jeffrey Morgan's avatar
Jeffrey Morgan committed
115
SYSTEM """
Jeffrey Morgan's avatar
Jeffrey Morgan committed
116
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
117
"""
Jeffrey Morgan's avatar
Jeffrey Morgan committed
118
```
Bruce MacDonald's avatar
Bruce MacDonald committed
119

120
Next, create and run the model:
Bruce MacDonald's avatar
Bruce MacDonald committed
121
122

```
123
124
125
126
ollama create mario -f ./Modelfile
ollama run mario
>>> hi
Hello! It's your friend Mario.
Bruce MacDonald's avatar
Bruce MacDonald committed
127
128
```

129
For more examples, see the [examples](examples) directory. For more information on working with a Modelfile, see the [Modelfile](docs/modelfile.md) documentation.
130
131
132
133
134
135

## CLI Reference

### Create a model

`ollama create` is used to create a model from a Modelfile.
136

Matt Williams's avatar
Matt Williams committed
137
138
139
140
```
ollama create mymodel -f ./Modelfile
```

141
### Pull a model
Jeffrey Morgan's avatar
Jeffrey Morgan committed
142

143
```
144
ollama pull llama2
145
```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
146

147
148
149
> This command can also be used to update a local model. Only the diff will be pulled.

### Remove a model
Jeffrey Morgan's avatar
Jeffrey Morgan committed
150
151

```
Michael Yang's avatar
Michael Yang committed
152
ollama rm llama2
Jeffrey Morgan's avatar
Jeffrey Morgan committed
153
154
```

155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
### Copy a model

```
ollama cp llama2 my-llama2
```

### Multiline input

For multiline input, you can wrap text with `"""`:

```
>>> """Hello,
... world!
... """
I'm a basic program that prints the famous "Hello, world!" message to the console.
```

Jeffrey Morgan's avatar
Jeffrey Morgan committed
172
173
174
175
176
177
178
### Multimodal models

```
>>> What's in this image? /Users/jmorgan/Desktop/smile.png
The image features a yellow smiley face, which is likely the central focus of the picture.
```

179
180
181
### Pass in prompt as arguments

```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
182
$ ollama run llama2 "Summarize this file: $(cat README.md)"
183
184
185
186
 Ollama is a lightweight, extensible framework for building and running language models on the local machine. It provides a simple API for creating, running, and managing models, as well as a library of pre-built models that can be easily used in a variety of applications.
```

### List models on your computer
Jeffrey Morgan's avatar
Jeffrey Morgan committed
187

188
189
190
```
ollama list
```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
191

192
### Start Ollama
Jeffrey Morgan's avatar
Jeffrey Morgan committed
193

194
`ollama serve` is used when you want to start ollama without running the desktop application.
Jeffrey Morgan's avatar
Jeffrey Morgan committed
195

Jeffrey Morgan's avatar
Jeffrey Morgan committed
196
197
## Building

198
Install `cmake` and `go`:
Michael Yang's avatar
Michael Yang committed
199

Jeffrey Morgan's avatar
Jeffrey Morgan committed
200
```
James Braza's avatar
James Braza committed
201
brew install cmake go
Jeffrey Morgan's avatar
Jeffrey Morgan committed
202
203
```

204
Then generate dependencies:
205

Jeffrey Morgan's avatar
Jeffrey Morgan committed
206
207
```
go generate ./...
208
```
209

210
Then build the binary:
211

212
```
Michael Yang's avatar
Michael Yang committed
213
go build .
Jeffrey Morgan's avatar
Jeffrey Morgan committed
214
215
```

216
More detailed instructions can be found in the [developer guide](https://github.com/jmorganca/ollama/blob/main/docs/development.md)
217
218

### Running local builds
219

Jeffrey Morgan's avatar
Jeffrey Morgan committed
220
Next, start the server:
Bruce MacDonald's avatar
Bruce MacDonald committed
221

Jeffrey Morgan's avatar
Jeffrey Morgan committed
222
```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
223
./ollama serve
Jeffrey Morgan's avatar
Jeffrey Morgan committed
224
225
```

Michael Yang's avatar
Michael Yang committed
226
Finally, in a separate shell, run a model:
Jeffrey Morgan's avatar
Jeffrey Morgan committed
227
228

```
229
./ollama run llama2
Jeffrey Morgan's avatar
Jeffrey Morgan committed
230
```
231
232
233

## REST API

James Braza's avatar
James Braza committed
234
Ollama has a REST API for running and managing models.
235
236

### Generate a response
237
238

```
239
curl http://localhost:11434/api/generate -d '{
240
241
242
  "model": "llama2",
  "prompt":"Why is the sky blue?"
}'
243
```
Nate Sesti's avatar
Nate Sesti committed
244

245
### Chat with a model
Bruce MacDonald's avatar
Bruce MacDonald committed
246
247
248
249

```
curl http://localhost:11434/api/chat -d '{
  "model": "mistral",
250
251
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
Bruce MacDonald's avatar
Bruce MacDonald committed
252
253
254
255
  ]
}'
```

James Braza's avatar
James Braza committed
256
257
See the [API documentation](./docs/api.md) for all endpoints.

258
259
## Community Integrations

Jeffrey Morgan's avatar
Jeffrey Morgan committed
260
### Web & Desktop
261

262
- [Bionic GPT](https://github.com/bionic-gpt/bionic-gpt)
263
- [Enchanted (macOS native)](https://github.com/AugustDev/enchanted)
264
- [HTML UI](https://github.com/rtcfirefly/ollama-ui)
265
- [Chatbot UI](https://github.com/ivanfioravanti/chatbot-ollama)
266
- [Typescript UI](https://github.com/ollama-interface/Ollama-Gui?tab=readme-ov-file)
267
- [Minimalistic React UI for Ollama Models](https://github.com/richawo/minimal-llm-ui)
268
- [Open WebUI](https://github.com/open-webui/open-webui)
269
- [Ollamac](https://github.com/kevinhermawan/Ollamac)
270
- [big-AGI](https://github.com/enricoros/big-AGI/blob/main/docs/config-local-ollama.md)
271
- [Cheshire Cat assistant framework](https://github.com/cheshire-cat-ai/core)
272
- [Amica](https://github.com/semperai/amica)
273
- [chatd](https://github.com/BruceMacD/chatd)
274
- [Ollama-SwiftUI](https://github.com/kghandour/Ollama-SwiftUI)
275
- [MindMac](https://mindmac.app)
276
- [NextJS Web Interface for Ollama](https://github.com/jakobhoeg/nextjs-ollama-llm-ui)
277
- [Msty](https://msty.app)
278

Jeffrey Morgan's avatar
Jeffrey Morgan committed
279
### Terminal
Jeffrey Morgan's avatar
Jeffrey Morgan committed
280

281
282
283
- [oterm](https://github.com/ggozad/oterm)
- [Ellama Emacs client](https://github.com/s-kostyaev/ellama)
- [Emacs client](https://github.com/zweifisch/ollama)
284
- [gen.nvim](https://github.com/David-Kunz/gen.nvim)
285
- [ollama.nvim](https://github.com/nomnivore/ollama.nvim)
286
- [ollama-chat.nvim](https://github.com/gerazov/ollama-chat.nvim)
287
- [ogpt.nvim](https://github.com/huynle/ogpt.nvim)
Bruce MacDonald's avatar
Bruce MacDonald committed
288
- [gptel Emacs client](https://github.com/karthink/gptel)
289
- [Oatmeal](https://github.com/dustinblackman/oatmeal)
290
- [cmdh](https://github.com/pgibler/cmdh)
291
- [tenere](https://github.com/pythops/tenere)
292
- [llm-ollama](https://github.com/taketwo/llm-ollama) for [Datasette's LLM CLI](https://llm.datasette.io/en/stable/).
293
- [ShellOracle](https://github.com/djcopley/ShellOracle)
294

Jorge Torres's avatar
Jorge Torres committed
295
296
### Database

297
- [MindsDB](https://github.com/mindsdb/mindsdb/blob/staging/mindsdb/integrations/handlers/ollama_handler/README.md)
298

Matt Williams's avatar
Matt Williams committed
299
### Package managers
300

Matt Williams's avatar
Matt Williams committed
301
- [Pacman](https://archlinux.org/packages/extra/x86_64/ollama/)
302
- [Helm Chart](https://artifacthub.io/packages/helm/ollama-helm/ollama)
303

304
### Libraries
Jeffrey Morgan's avatar
Jeffrey Morgan committed
305

306
- [LangChain](https://python.langchain.com/docs/integrations/llms/ollama) and [LangChain.js](https://js.langchain.com/docs/modules/model_io/models/llms/integrations/ollama) with [example](https://js.langchain.com/docs/use_cases/question_answering/local_retrieval_qa)
307
- [LangChainGo](https://github.com/tmc/langchaingo/) with [example](https://github.com/tmc/langchaingo/tree/main/examples/ollama-completion-example)
308
- [LlamaIndex](https://gpt-index.readthedocs.io/en/stable/examples/llm/ollama.html)
309
- [LangChain4j](https://github.com/langchain4j/langchain4j/tree/main/langchain4j-ollama)
310
- [LiteLLM](https://github.com/BerriAI/litellm)
311
- [OllamaSharp for .NET](https://github.com/awaescher/OllamaSharp)
312
- [Ollama for Ruby](https://github.com/gbaptista/ollama-ai)
313
- [Ollama-rs for Rust](https://github.com/pepperoni21/ollama-rs)
314
- [Ollama4j for Java](https://github.com/amithkoujalgi/ollama4j)
315
- [ModelFusion Typescript Library](https://modelfusion.dev/integration/model-provider/ollama)
316
- [OllamaKit for Swift](https://github.com/kevinhermawan/OllamaKit)
317
- [Ollama for Dart](https://github.com/breitburg/dart-ollama)
318
- [Ollama for Laravel](https://github.com/cloudstudio/ollama-laravel)
319
- [LangChainDart](https://github.com/davidmigloz/langchain_dart)
320
- [Semantic Kernel - Python](https://github.com/microsoft/semantic-kernel/tree/main/python/semantic_kernel/connectors/ai/ollama)
321
- [Haystack](https://github.com/deepset-ai/haystack-integrations/blob/main/integrations/ollama.md)
322
- [Elixir LangChain](https://github.com/brainlid/langchain)
Maximilian Weber's avatar
Maximilian Weber committed
323
- [Ollama for R - rollama](https://github.com/JBGruber/rollama)
324
- [Ollama-ex for Elixir](https://github.com/lebrunel/ollama-ex)
325

Jeffrey Morgan's avatar
Jeffrey Morgan committed
326
327
### Mobile

328
- [Enchanted](https://github.com/AugustDev/enchanted)
Dane Madsen's avatar
Dane Madsen committed
329
- [Maid](https://github.com/Mobile-Artificial-Intelligence/maid)
Jeffrey Morgan's avatar
Jeffrey Morgan committed
330

Jeffrey Morgan's avatar
Jeffrey Morgan committed
331
332
### Extensions & Plugins

333
334
335
336
- [Raycast extension](https://github.com/MassimilianoPasquini97/raycast_ollama)
- [Discollama](https://github.com/mxyng/discollama) (Discord bot inside the Ollama discord channel)
- [Continue](https://github.com/continuedev/continue)
- [Obsidian Ollama plugin](https://github.com/hinterdupfinger/obsidian-ollama)
337
- [Logseq Ollama plugin](https://github.com/omagdy7/ollama-logseq)
338
339
- [Dagger Chatbot](https://github.com/samalba/dagger-chatbot)
- [Discord AI Bot](https://github.com/mekb-turtle/discord-ai-bot)
ruecat's avatar
ruecat committed
340
- [Ollama Telegram Bot](https://github.com/ruecat/ollama-telegram)
341
- [Hass Ollama Conversation](https://github.com/ej52/hass-ollama-conversation)
342
- [Rivet plugin](https://github.com/abrenneke/rivet-plugin-ollama)
Steve Korshakov's avatar
Steve Korshakov committed
343
- [Llama Coder](https://github.com/ex3ndr/llama-coder) (Copilot alternative using Ollama)
344
- [Obsidian BMO Chatbot plugin](https://github.com/longy2k/obsidian-bmo-chatbot)
Pavel Frankov's avatar
Pavel Frankov committed
345
- [Obsidian Local GPT plugin](https://github.com/pfrankov/obsidian-local-gpt)
Jeffrey Morgan's avatar
Jeffrey Morgan committed
346
- [Open Interpreter](https://docs.openinterpreter.com/language-model-setup/local-models/ollama)
347
- [twinny](https://github.com/rjmacarthy/twinny) (Copilot and Copilot chat alternative using Ollama)
348
- [Wingman-AI](https://github.com/RussellCanfield/wingman-ai) (Copilot code and chat alternative using Ollama and HuggingFace)
349
- [Page Assist](https://github.com/n4ze3m/page-assist) (Chrome Extension)