README.md 9.43 KB
Newer Older
Michael Chiang's avatar
Michael Chiang committed
1
2
<div align="center">
  <picture>
Michael Chiang's avatar
Michael Chiang committed
3
4
    <source media="(prefers-color-scheme: dark)" height="200px" srcset="https://github.com/jmorganca/ollama/assets/3325447/56ea1849-1284-4645-8970-956de6e51c3c">
    <img alt="logo" height="200px" src="https://github.com/jmorganca/ollama/assets/3325447/0d0b44e2-8f4a-4e99-9b52-a5c1c741c8f7">
Michael Chiang's avatar
Michael Chiang committed
5
6
  </picture>
</div>
Jeffrey Morgan's avatar
Jeffrey Morgan committed
7

Bruce MacDonald's avatar
Bruce MacDonald committed
8
# Ollama
Jeffrey Morgan's avatar
Jeffrey Morgan committed
9

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

12
Get up and running with large language models locally.
13

14
### macOS
Jeffrey Morgan's avatar
Jeffrey Morgan committed
15

16
[Download](https://ollama.ai/download/Ollama-darwin.zip)
17

18
19
### Windows

20
Coming soon! For now, you can install Ollama on Windows via WSL2.
21

22
23
24
25
26
27
28
29
### Linux & WSL2

```
curl https://ollama.ai/install.sh | sh
```

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

30
### Docker
31

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

34
35
## Quickstart

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

```
ollama run llama2
```

## Model library

44
Ollama supports a list of open-source models available on [ollama.ai/library](https://ollama.ai/library 'ollama model library')
45

46
Here are some example open-source models that can be downloaded:
47

48
49
| Model              | Parameters | Size  | Download                       |
| ------------------ | ---------- | ----- | ------------------------------ |
Jeffrey Morgan's avatar
Jeffrey Morgan committed
50
51
| Llama 2            | 7B         | 3.8GB | `ollama run llama2`            |
| Mistral            | 7B         | 4.1GB | `ollama run mistral`           |
Jeffrey Morgan's avatar
Jeffrey Morgan committed
52
| Dolphin Phi        | 2.7B       | 1.6GB | `ollama run dolphin-phi`       |
Jeffrey Morgan's avatar
Jeffrey Morgan committed
53
| Phi-2              | 2.7B       | 1.7GB | `ollama run phi`               |
Michael's avatar
Michael committed
54
55
| Neural Chat        | 7B         | 4.1GB | `ollama run neural-chat`       |
| Starling           | 7B         | 4.1GB | `ollama run starling-lm`       |
56
57
58
59
60
61
| 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
62
| LLaVA              | 7B         | 4.5GB | `ollama run llava`             |
63

Matt Williams's avatar
Matt Williams committed
64
> 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
65

Jeffrey Morgan's avatar
Jeffrey Morgan committed
66
## Customize a model
Jeffrey Morgan's avatar
Jeffrey Morgan committed
67

68
### Import from GGUF
Michael Yang's avatar
Michael Yang committed
69

70
Ollama supports importing GGUF models in the Modelfile:
Michael Yang's avatar
Michael Yang committed
71

72
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
73

74
75
76
   ```
   FROM ./vicuna-33b.Q4_0.gguf
   ```
77

78
2. Create the model in Ollama
Jeffrey Morgan's avatar
Jeffrey Morgan committed
79

80
   ```
81
   ollama create example -f Modelfile
82
   ```
83

84
3. Run the model
Michael Yang's avatar
Michael Yang committed
85

86
   ```
87
   ollama run example
88
   ```
Michael Yang's avatar
Michael Yang committed
89

90
91
92
93
### Import from PyTorch or Safetensors

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

94
### Customize a prompt
Michael Yang's avatar
Michael Yang committed
95

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

```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
99
ollama pull llama2
100
```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
101

102
Create a `Modelfile`:
Jeffrey Morgan's avatar
Jeffrey Morgan committed
103

Jeffrey Morgan's avatar
Jeffrey Morgan committed
104
```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
105
FROM llama2
106
107
108
109

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

110
# set the system message
Jeffrey Morgan's avatar
Jeffrey Morgan committed
111
SYSTEM """
Jeffrey Morgan's avatar
Jeffrey Morgan committed
112
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
113
"""
Jeffrey Morgan's avatar
Jeffrey Morgan committed
114
```
Bruce MacDonald's avatar
Bruce MacDonald committed
115

116
Next, create and run the model:
Bruce MacDonald's avatar
Bruce MacDonald committed
117
118

```
119
120
121
122
ollama create mario -f ./Modelfile
ollama run mario
>>> hi
Hello! It's your friend Mario.
Bruce MacDonald's avatar
Bruce MacDonald committed
123
124
```

125
For more examples, see the [examples](examples) directory. For more information on working with a Modelfile, see the [Modelfile](docs/modelfile.md) documentation.
126
127
128
129
130
131

## CLI Reference

### Create a model

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

Matt Williams's avatar
Matt Williams committed
133
134
135
136
```
ollama create mymodel -f ./Modelfile
```

137
### Pull a model
Jeffrey Morgan's avatar
Jeffrey Morgan committed
138

139
```
140
ollama pull llama2
141
```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
142

143
144
145
> 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
146
147

```
Michael Yang's avatar
Michael Yang committed
148
ollama rm llama2
Jeffrey Morgan's avatar
Jeffrey Morgan committed
149
150
```

151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
### 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
168
169
170
171
172
173
174
### 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.
```

175
176
177
### Pass in prompt as arguments

```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
178
$ ollama run llama2 "Summarize this file: $(cat README.md)"
179
180
181
182
 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
183

184
185
186
```
ollama list
```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
187

188
### Start Ollama
Jeffrey Morgan's avatar
Jeffrey Morgan committed
189

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

Jeffrey Morgan's avatar
Jeffrey Morgan committed
192
193
## Building

194
Install `cmake` and `go`:
Michael Yang's avatar
Michael Yang committed
195

Jeffrey Morgan's avatar
Jeffrey Morgan committed
196
```
James Braza's avatar
James Braza committed
197
brew install cmake go
Jeffrey Morgan's avatar
Jeffrey Morgan committed
198
199
```

200
Then generate dependencies:
Jeffrey Morgan's avatar
Jeffrey Morgan committed
201
202
```
go generate ./...
203
204
205
```
Then build the binary:
```
Michael Yang's avatar
Michael Yang committed
206
go build .
Jeffrey Morgan's avatar
Jeffrey Morgan committed
207
208
```

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

211

212
### Running local builds
Jeffrey Morgan's avatar
Jeffrey Morgan committed
213
Next, start the server:
Bruce MacDonald's avatar
Bruce MacDonald committed
214

Jeffrey Morgan's avatar
Jeffrey Morgan committed
215
```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
216
./ollama serve
Jeffrey Morgan's avatar
Jeffrey Morgan committed
217
218
```

Michael Yang's avatar
Michael Yang committed
219
Finally, in a separate shell, run a model:
Jeffrey Morgan's avatar
Jeffrey Morgan committed
220
221

```
222
./ollama run llama2
Jeffrey Morgan's avatar
Jeffrey Morgan committed
223
```
224
225
226

## REST API

James Braza's avatar
James Braza committed
227
Ollama has a REST API for running and managing models.
228
229

### Generate a response
230
231

```
232
curl http://localhost:11434/api/generate -d '{
233
234
235
  "model": "llama2",
  "prompt":"Why is the sky blue?"
}'
236
```
Nate Sesti's avatar
Nate Sesti committed
237

238
### Chat with a model
Bruce MacDonald's avatar
Bruce MacDonald committed
239
240
241
242

```
curl http://localhost:11434/api/chat -d '{
  "model": "mistral",
243
244
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
Bruce MacDonald's avatar
Bruce MacDonald committed
245
246
247
248
  ]
}'
```

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

251
252
## Community Integrations

Jeffrey Morgan's avatar
Jeffrey Morgan committed
253
### Web & Desktop
254
- [Bionic GPT](https://github.com/bionic-gpt/bionic-gpt)
255
- [HTML UI](https://github.com/rtcfirefly/ollama-ui)
256
- [Chatbot UI](https://github.com/ivanfioravanti/chatbot-ollama)
257
- [Typescript UI](https://github.com/ollama-interface/Ollama-Gui?tab=readme-ov-file)
258
- [Minimalistic React UI for Ollama Models](https://github.com/richawo/minimal-llm-ui)
259
- [Web UI](https://github.com/ollama-webui/ollama-webui)
260
- [Ollamac](https://github.com/kevinhermawan/Ollamac)
Enrico Ros's avatar
Enrico Ros committed
261
- [big-AGI](https://github.com/enricoros/big-agi/blob/main/docs/config-ollama.md)
262
- [Cheshire Cat assistant framework](https://github.com/cheshire-cat-ai/core)
263
- [Amica](https://github.com/semperai/amica)
264
- [chatd](https://github.com/BruceMacD/chatd)
265

Jeffrey Morgan's avatar
Jeffrey Morgan committed
266
### Terminal
Jeffrey Morgan's avatar
Jeffrey Morgan committed
267

268
269
270
- [oterm](https://github.com/ggozad/oterm)
- [Ellama Emacs client](https://github.com/s-kostyaev/ellama)
- [Emacs client](https://github.com/zweifisch/ollama)
271
- [gen.nvim](https://github.com/David-Kunz/gen.nvim)
272
- [ollama.nvim](https://github.com/nomnivore/ollama.nvim)
273
- [ogpt.nvim](https://github.com/huynle/ogpt.nvim)
Bruce MacDonald's avatar
Bruce MacDonald committed
274
- [gptel Emacs client](https://github.com/karthink/gptel)
275
- [Oatmeal](https://github.com/dustinblackman/oatmeal)
276
- [cmdh](https://github.com/pgibler/cmdh)
277

Jorge Torres's avatar
Jorge Torres committed
278
279
### Database

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

Matt Williams's avatar
Matt Williams committed
282
### Package managers
283

Matt Williams's avatar
Matt Williams committed
284
- [Pacman](https://archlinux.org/packages/extra/x86_64/ollama/)
285

286
### Libraries
Jeffrey Morgan's avatar
Jeffrey Morgan committed
287

288
- [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)
289
- [LangChainGo](https://github.com/tmc/langchaingo/) with [example](https://github.com/tmc/langchaingo/tree/main/examples/ollama-completion-example)
290
- [LlamaIndex](https://gpt-index.readthedocs.io/en/stable/examples/llm/ollama.html)
291
- [LiteLLM](https://github.com/BerriAI/litellm)
292
- [OllamaSharp for .NET](https://github.com/awaescher/OllamaSharp)
293
- [Ollama-rs for Rust](https://github.com/pepperoni21/ollama-rs)
294
- [Ollama4j for Java](https://github.com/amithkoujalgi/ollama4j)
295
- [ModelFusion Typescript Library](https://modelfusion.dev/integration/model-provider/ollama)
296
- [OllamaKit for Swift](https://github.com/kevinhermawan/OllamaKit)
297
- [Ollama for Dart](https://github.com/breitburg/dart-ollama)
298
- [Ollama for Laravel](https://github.com/cloudstudio/ollama-laravel)
299
- [LangChainDart](https://github.com/davidmigloz/langchain_dart)
300

Jeffrey Morgan's avatar
Jeffrey Morgan committed
301
302
### Mobile

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

Jeffrey Morgan's avatar
Jeffrey Morgan committed
306
307
### Extensions & Plugins

308
309
310
311
- [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)
312
- [Logseq Ollama plugin](https://github.com/omagdy7/ollama-logseq)
313
314
- [Dagger Chatbot](https://github.com/samalba/dagger-chatbot)
- [Discord AI Bot](https://github.com/mekb-turtle/discord-ai-bot)
ruecat's avatar
ruecat committed
315
- [Ollama Telegram Bot](https://github.com/ruecat/ollama-telegram)
316
- [Hass Ollama Conversation](https://github.com/ej52/hass-ollama-conversation)
317
- [Rivet plugin](https://github.com/abrenneke/rivet-plugin-ollama)
Steve Korshakov's avatar
Steve Korshakov committed
318
- [Llama Coder](https://github.com/ex3ndr/llama-coder) (Copilot alternative using Ollama)
319
- [Obsidian BMO Chatbot plugin](https://github.com/longy2k/obsidian-bmo-chatbot)