README.md 14.5 KB
Newer Older
Michael Chiang's avatar
Michael Chiang committed
1
<div align="center">
2
  <img alt="ollama" height="200px" src="https://github.com/ollama/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
[Manual install instructions](https://github.com/ollama/ollama/blob/main/docs/linux.md)
26

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

Michael's avatar
Michael committed
38
To run and chat with [Llama 3](https://ollama.com/library/llama3):
39
40

```
Michael's avatar
Michael committed
41
ollama run llama3
42
43
44
45
```

## 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                       |
| ------------------ | ---------- | ----- | ------------------------------ |
Michael's avatar
Michael committed
52
53
| Llama 3            | 8B         | 4.7GB | `ollama run llama3`            |
| Llama 3            | 70B        | 40GB  | `ollama run llama3:70b`        |
Jeffrey Morgan's avatar
Jeffrey Morgan committed
54
| Mistral            | 7B         | 4.1GB | `ollama run mistral`           |
Jeffrey Morgan's avatar
Jeffrey Morgan committed
55
| Dolphin Phi        | 2.7B       | 1.6GB | `ollama run dolphin-phi`       |
Jeffrey Morgan's avatar
Jeffrey Morgan committed
56
| Phi-2              | 2.7B       | 1.7GB | `ollama run phi`               |
Michael's avatar
Michael committed
57
58
| Neural Chat        | 7B         | 4.1GB | `ollama run neural-chat`       |
| Starling           | 7B         | 4.1GB | `ollama run starling-lm`       |
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`         |
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
| Solar              | 10.7B      | 6.1GB | `ollama run solar`             |
68

Matt Williams's avatar
Matt Williams committed
69
> 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
70

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

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

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

77
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
78

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

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

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

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

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

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

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

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

Michael's avatar
Michael committed
101
Models from the Ollama library can be customized with a prompt. For example, to customize the `llama3` model:
102
103

```
Michael's avatar
Michael committed
104
ollama pull llama3
105
```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
106

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

Jeffrey Morgan's avatar
Jeffrey Morgan committed
109
```
Michael's avatar
Michael committed
110
FROM llama3
111
112
113
114

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

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

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

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

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

## CLI Reference

### Create a model

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

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

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

144
```
Michael's avatar
Michael committed
145
ollama pull llama3
146
```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
147

148
149
150
> 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
151
152

```
Michael's avatar
Michael committed
153
ollama rm llama3
Jeffrey Morgan's avatar
Jeffrey Morgan committed
154
155
```

156
157
158
### Copy a model

```
Jeffrey Morgan's avatar
Jeffrey Morgan committed
159
ollama cp llama3 my-model
160
161
162
163
164
165
166
167
168
169
170
171
172
```

### 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
173
174
175
176
177
178
179
### 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.
```

180
181
182
### Pass in prompt as arguments

```
Michael's avatar
Michael committed
183
$ ollama run llama3 "Summarize this file: $(cat README.md)"
184
185
186
187
 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
188

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

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

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

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

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

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

205
206
207
208
209
210
Then generate dependencies:

```
go generate ./...
```

211
Then build the binary:
212

213
```
214
go build .
Jeffrey Morgan's avatar
Jeffrey Morgan committed
215
216
```

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

### Running local builds
220

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

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

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

```
Michael's avatar
Michael committed
230
./ollama run llama3
Jeffrey Morgan's avatar
Jeffrey Morgan committed
231
```
232
233
234

## REST API

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

### Generate a response
238
239

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

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

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

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

259
260
## Community Integrations

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

Saifeddine ALOUI's avatar
Saifeddine ALOUI committed
263
- [Lollms-Webui](https://github.com/ParisNeo/lollms-webui)
264
- [LibreChat](https://github.com/danny-avila/LibreChat)
265
- [Bionic GPT](https://github.com/bionic-gpt/bionic-gpt)
266
- [Enchanted (macOS native)](https://github.com/AugustDev/enchanted)
267
- [HTML UI](https://github.com/rtcfirefly/ollama-ui)
Jikku Jose's avatar
Jikku Jose committed
268
- [Saddle](https://github.com/jikkuatwork/saddle)
269
- [Chatbot UI](https://github.com/ivanfioravanti/chatbot-ollama)
270
- [Chatbot UI v2](https://github.com/mckaywrigley/chatbot-ui)
271
- [Typescript UI](https://github.com/ollama-interface/Ollama-Gui?tab=readme-ov-file)
272
- [Minimalistic React UI for Ollama Models](https://github.com/richawo/minimal-llm-ui)
273
- [Open WebUI](https://github.com/open-webui/open-webui)
274
- [Ollamac](https://github.com/kevinhermawan/Ollamac)
275
- [big-AGI](https://github.com/enricoros/big-AGI/blob/main/docs/config-local-ollama.md)
276
- [Cheshire Cat assistant framework](https://github.com/cheshire-cat-ai/core)
277
- [Amica](https://github.com/semperai/amica)
278
- [chatd](https://github.com/BruceMacD/chatd)
279
- [Ollama-SwiftUI](https://github.com/kghandour/Ollama-SwiftUI)
280
- [Dify.AI](https://github.com/langgenius/dify)
281
- [MindMac](https://mindmac.app)
282
- [NextJS Web Interface for Ollama](https://github.com/jakobhoeg/nextjs-ollama-llm-ui)
283
- [Msty](https://msty.app)
284
- [Chatbox](https://github.com/Bin-Huang/Chatbox)
285
- [WinForm Ollama Copilot](https://github.com/tgraupmann/WinForm_Ollama_Copilot)
286
- [NextChat](https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web) with [Get Started Doc](https://docs.nextchat.dev/models/ollama)
287
- [Alpaca WebUI](https://github.com/mmo80/alpaca-webui)
288
- [OllamaGUI](https://github.com/enoch1118/ollamaGUI)
289
- [OpenAOE](https://github.com/InternLM/OpenAOE)
290
- [Odin Runes](https://github.com/leonid20000/OdinRunes)
291
- [LLM-X: Progressive Web App](https://github.com/mrdjohnson/llm-x)
292
- [AnythingLLM (Docker + MacOs/Windows/Linux native app)](https://github.com/Mintplex-Labs/anything-llm)
293
294
- [Ollama Basic Chat: Uses HyperDiv Reactive UI](https://github.com/rapidarchitect/ollama_basic_chat)
- [Ollama-chats RPG](https://github.com/drazdra/ollama-chats)
reid41's avatar
reid41 committed
295
- [QA-Pilot: Chat with Code Repository](https://github.com/reid41/QA-Pilot)
296
- [ChatOllama: Open Source Chatbot based on Ollama with Knowledge Bases](https://github.com/sugarforever/chat-ollama)
297
- [CRAG Ollama Chat: Simple Web Search with Corrective RAG](https://github.com/Nagi-ovo/CRAG-Ollama-Chat)
writinwaters's avatar
writinwaters committed
298
- [RAGFlow: Open-source Retrieval-Augmented Generation engine based on deep document understanding](https://github.com/infiniflow/ragflow)
299
- [chat: chat web app for teams](https://github.com/swuecho/chat)
300
- [Lobe Chat](https://github.com/lobehub/lobe-chat) with [Integrating Doc](https://lobehub.com/docs/self-hosting/examples/ollama)
Võ Đình Đạt's avatar
Võ Đình Đạt committed
301
- [Ollama RAG Chatbot: Local Chat with multiples PDFs using Ollama and RAG.](https://github.com/datvodinh/rag-chatbot.git)
302

Jeffrey Morgan's avatar
Jeffrey Morgan committed
303
### Terminal
Jeffrey Morgan's avatar
Jeffrey Morgan committed
304

305
- [podman-ollama](https://github.com/ericcurtin/podman-ollama)
306
307
308
- [oterm](https://github.com/ggozad/oterm)
- [Ellama Emacs client](https://github.com/s-kostyaev/ellama)
- [Emacs client](https://github.com/zweifisch/ollama)
309
- [gen.nvim](https://github.com/David-Kunz/gen.nvim)
310
- [ollama.nvim](https://github.com/nomnivore/ollama.nvim)
311
- [ollero.nvim](https://github.com/marco-souza/ollero.nvim)
312
- [ollama-chat.nvim](https://github.com/gerazov/ollama-chat.nvim)
313
- [ogpt.nvim](https://github.com/huynle/ogpt.nvim)
Bruce MacDonald's avatar
Bruce MacDonald committed
314
- [gptel Emacs client](https://github.com/karthink/gptel)
315
- [Oatmeal](https://github.com/dustinblackman/oatmeal)
316
- [cmdh](https://github.com/pgibler/cmdh)
317
- [ooo](https://github.com/npahlfer/ooo)
reid41's avatar
reid41 committed
318
- [shell-pilot](https://github.com/reid41/shell-pilot)
319
- [tenere](https://github.com/pythops/tenere)
320
- [llm-ollama](https://github.com/taketwo/llm-ollama) for [Datasette's LLM CLI](https://llm.datasette.io/en/stable/).
321
- [typechat-cli](https://github.com/anaisbetts/typechat-cli)
322
- [ShellOracle](https://github.com/djcopley/ShellOracle)
323
- [tlm](https://github.com/yusufcanb/tlm)
324

Jorge Torres's avatar
Jorge Torres committed
325
326
### Database

327
- [MindsDB](https://github.com/mindsdb/mindsdb/blob/staging/mindsdb/integrations/handlers/ollama_handler/README.md) (Connects Ollama models with nearly 200 data platforms and apps)
328
- [chromem-go](https://github.com/philippgille/chromem-go/blob/v0.5.0/embed_ollama.go) with [example](https://github.com/philippgille/chromem-go/tree/v0.5.0/examples/rag-wikipedia-ollama)
329

Matt Williams's avatar
Matt Williams committed
330
### Package managers
331

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

335
### Libraries
Jeffrey Morgan's avatar
Jeffrey Morgan committed
336

337
- [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)
338
- [LangChainGo](https://github.com/tmc/langchaingo/) with [example](https://github.com/tmc/langchaingo/tree/main/examples/ollama-completion-example)
LangChain4j's avatar
LangChain4j committed
339
- [LangChain4j](https://github.com/langchain4j/langchain4j) with [example](https://github.com/langchain4j/langchain4j-examples/tree/main/ollama-examples/src/main/java)
340
- [LlamaIndex](https://gpt-index.readthedocs.io/en/stable/examples/llm/ollama.html)
341
- [LiteLLM](https://github.com/BerriAI/litellm)
342
- [OllamaSharp for .NET](https://github.com/awaescher/OllamaSharp)
343
- [Ollama for Ruby](https://github.com/gbaptista/ollama-ai)
344
- [Ollama-rs for Rust](https://github.com/pepperoni21/ollama-rs)
345
- [Ollama4j for Java](https://github.com/amithkoujalgi/ollama4j)
346
- [ModelFusion Typescript Library](https://modelfusion.dev/integration/model-provider/ollama)
347
- [OllamaKit for Swift](https://github.com/kevinhermawan/OllamaKit)
348
- [Ollama for Dart](https://github.com/breitburg/dart-ollama)
349
- [Ollama for Laravel](https://github.com/cloudstudio/ollama-laravel)
350
- [LangChainDart](https://github.com/davidmigloz/langchain_dart)
351
- [Semantic Kernel - Python](https://github.com/microsoft/semantic-kernel/tree/main/python/semantic_kernel/connectors/ai/ollama)
352
- [Haystack](https://github.com/deepset-ai/haystack-integrations/blob/main/integrations/ollama.md)
353
- [Elixir LangChain](https://github.com/brainlid/langchain)
Maximilian Weber's avatar
Maximilian Weber committed
354
- [Ollama for R - rollama](https://github.com/JBGruber/rollama)
355
- [Ollama-ex for Elixir](https://github.com/lebrunel/ollama-ex)
356
- [Ollama Connector for SAP ABAP](https://github.com/b-tocs/abap_btocs_ollama)
357
- [Testcontainers](https://testcontainers.com/modules/ollama/)
358

Jeffrey Morgan's avatar
Jeffrey Morgan committed
359
360
### Mobile

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

Jeffrey Morgan's avatar
Jeffrey Morgan committed
364
365
### Extensions & Plugins

366
367
368
369
- [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)
370
- [Logseq Ollama plugin](https://github.com/omagdy7/ollama-logseq)
371
- [NotesOllama](https://github.com/andersrex/notesollama) (Apple Notes Ollama plugin)
372
373
- [Dagger Chatbot](https://github.com/samalba/dagger-chatbot)
- [Discord AI Bot](https://github.com/mekb-turtle/discord-ai-bot)
ruecat's avatar
ruecat committed
374
- [Ollama Telegram Bot](https://github.com/ruecat/ollama-telegram)
375
- [Hass Ollama Conversation](https://github.com/ej52/hass-ollama-conversation)
376
- [Rivet plugin](https://github.com/abrenneke/rivet-plugin-ollama)
Steve Korshakov's avatar
Steve Korshakov committed
377
- [Llama Coder](https://github.com/ex3ndr/llama-coder) (Copilot alternative using Ollama)
378
- [Obsidian BMO Chatbot plugin](https://github.com/longy2k/obsidian-bmo-chatbot)
379
- [Cliobot](https://github.com/herval/cliobot) (Telegram bot with Ollama support)
380
- [Copilot for Obsidian plugin](https://github.com/logancyang/obsidian-copilot)
Pavel Frankov's avatar
Pavel Frankov committed
381
- [Obsidian Local GPT plugin](https://github.com/pfrankov/obsidian-local-gpt)
Jeffrey Morgan's avatar
Jeffrey Morgan committed
382
- [Open Interpreter](https://docs.openinterpreter.com/language-model-setup/local-models/ollama)
383
- [twinny](https://github.com/rjmacarthy/twinny) (Copilot and Copilot chat alternative using Ollama)
384
- [Wingman-AI](https://github.com/RussellCanfield/wingman-ai) (Copilot code and chat alternative using Ollama and HuggingFace)
385
- [Page Assist](https://github.com/n4ze3m/page-assist) (Chrome Extension)
386
- [AI Telegram Bot](https://github.com/tusharhero/aitelegrambot) (Telegram bot using Ollama in backend)
Yaroslav's avatar
Yaroslav committed
387
- [AI ST Completion](https://github.com/yaroslavyaroslav/OpenAI-sublime-text) (Sublime Text 4 AI assistant plugin with Ollama support)
388
- [Discord-Ollama Chat Bot](https://github.com/kevinthedang/discord-ollama) (Generalized TypeScript Discord Bot w/ Tuning Documentation)
389
390
391

### Supported backends 
- [llama.cpp](https://github.com/ggerganov/llama.cpp) project founded by Georgi Gerganov.