Ollama
在本地启动并运行大型语言模型。
macOS
"Windows 预览"
[下载] (https://ollama.com/download/OllamaSetup.exe)
Linux
curl -fsSL https://ollama.com/install.sh | shDocker
官方的 Ollama Docker 镜像 ollama/ollama 已经在 Docker Hub 上可用。
Library
快速入门
运行并使用 Llama 3 聊天:
ollama run llama3模型库
Ollama 支持 ollama.com/library 上的一系列模型。
以下是一些可供下载的示例模型:
| 模型 | 参数 | 大小 | 下载 |
|---|---|---|---|
| Llama 3 | 8B | 4.7GB | ollama run llama3 |
| Llama 3 | 70B | 40GB | ollama run llama3:70b |
| Phi-3 | 3.8B | 2.3GB | ollama run phi3 |
| Mistral | 7B | 4.1GB | ollama run mistral |
| Neural Chat | 7B | 4.1GB | ollama run neural-chat |
| Starling | 7B | 4.1GB | ollama run starling-lm |
| Code Llama | 7B | 3.8GB | ollama run codellama |
| Llama 2 Uncensored | 7B | 3.8GB | ollama run llama2-uncensored |
| LLaVA | 7B | 4.5GB | ollama run llava |
| Gemma | 2B | 1.4GB | ollama run gemma:2b |
| Gemma | 7B | 4.8GB | ollama run gemma:7b |
| Solar | 10.7B | 6.1GB | ollama run solar |
注意:运行 7B 模型至少需要 8GB 的 RAM,运行 13B 模型至少需要 16GB 的 RAM,运行 33B 模型至少需要 32GB 的 RAM。
但是可以使用量化 bit 小的模型可以在低内存设备上运行,例如 4B 模型。
ollama run llama3:8b-text-q4_K_S8b-text-q4_K_S 的含义参考 这里。
自定义模型
从 GGUF 导入
Ollama 支持在模型文件中导入 GGUF 模型:
创建一个名为
Modelfile的文件,其中包含一个带有要导入的模型的本地文件路径的FROM指令。FROM ./vicuna-33b.Q4_0.gguf在 Ollama 中创建模型
ollama create example -f Modelfile运行模型
ollama run example
从 PyTorch 或 Safetensors 导入
有关模型导入的更多信息,请参阅 指南。
自定义提示词、temperature 和系统消息
来自 Ollama 库的模型可以通过提示进行自定义。例如,要自定义 llama3 模型:
ollama pull llama3创建一个 Modelfile:
FROM llama3
# 将 temperature 设置为 1[越高越有创意,越低越连贯]
PARAMETER temperature 1
# 设置系统消息
SYSTEM """
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
"""接下来,创建并运行模型:
ollama create mario -f ./Modelfile
ollama run mario
>>> hi
Hello! It's your friend Mario.更多示例,请参阅 [examples] 目录。有关如何使用模版文件的更多信息,请参阅 模版文件 文档。
命令行参考
创建模型
ollama create 用于根据模版文件创建模型。
ollama create mymodel -f ./Modelfile拉取模型
ollama pull llama3此命令也可用于更新本地模型。只会拉取差异。
删除模型
ollama rm llama3复制模型
ollama cp llama3 my-model多行输入
对于多行输入,你可以使用 """ 包裹文本:
>>> """Hello,
... world!
... """
I'm a basic program that prints the famous "Hello, world!" message to the console.多模态模型
>>> 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.将提示作为参数传递
$ ollama run llama3 "Summarize this file: $(cat README.md)"
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.在您的计算机上列出模型
ollama list开始 Ollama
当你想要启动 Ollama 而不运行桌面应用时,可以使用 ollama serve。
编译
安装 cmake 和 go:
brew install cmake go然后生成依赖项:
go generate ./...然后编译为二进制文件:
go build .更详细的说明可以在 开发指南 中找到。
运行本地服务
接下来,启动服务器:
./ollama serve最后,在另一个终端中运行模型:
./ollama run llama3RESTful API
Ollama 有一个用于运行和管理模型的 REST API。
使用 llama3 模型生成文本
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt":"Why is the sky blue?"
}'与模型聊天
curl http://localhost:11434/api/chat -d '{
"model": "llama3",
"messages": [
{ "role": "user", "content": "why is the sky blue?" }
]
}'查看 API 文档 了解所有端点。
社区集成
网络与桌面
- Open WebUI:一个开放的 Web 用户界面项目,旨在提供灵活且可扩展的前端解决方案。
- Enchanted (macOS native):一个原生的 macOS 应用,提供图形用户界面,旨在简化复杂任务的管理和执行。
- Hollama:一个支持多种自然语言处理模型的 Web 界面,用于交互和测试不同的语言模型。
- Lollms-Webui:一个用于 Lollms 模型的 Web 用户界面,提供简洁的交互方式和强大的功能。
- LibreChat:一个开源的聊天应用,支持多种聊天模型和集成。
- Bionic GPT:一个基于 GPT 的项目,提供增强的语言模型功能和用户界面。
- HTML UI:一个用于 Ollama 模型的 HTML 用户界面,提供简单易用的前端。
- Saddle:一个轻量级的前端框架,旨在简化 Web 应用的开发。
- Chatbot UI:一个用于 Ollama 聊天机器人的用户界面,提供直观的交互体验。
- Chatbot UI v2:改进版的聊天机器人用户界面,增加了更多功能和更好的用户体验。
- Typescript UI:一个使用 TypeScript 构建的 Ollama 模型用户界面,提供强类型的前端代码。
- Minimalistic React UI for Ollama Models:一个简约的 React 用户界面,专为 Ollama 模型设计。
- Ollamac:一个 macOS 应用,用于与 Ollama 模型进行交互。
- big-AGI:一个 AGI 项目,支持本地配置和 Ollama 模型集成。
- Cheshire Cat assistant framework:一个智能助手框架,提供模块化的设计和灵活的扩展功能。
- Amica:一个开源聊天机器人项目,支持多种集成和功能扩展。
- chatd:一个分布式聊天应用,支持多用户聊天和实时通信。
- Ollama-SwiftUI:一个使用 SwiftUI 构建的 Ollama 模型用户界面,适用于 iOS 和 macOS 平台。
- Dify.AI:一个 AI 驱动的项目,提供智能化的任务管理和执行。
- MindMac:一个 macOS 应用,提供智能助手功能和任务自动化。
- NextJS Web Interface for Ollama:一个基于 NextJS 的 Web 界面,支持 Ollama 模型。
- Msty:一个任务管理和自动化工具,旨在提高工作效率。
- Chatbox:一个支持多种聊天模型的 Web 应用,提供直观的聊天界面。
- WinForm Ollama Copilot:一个 Windows 应用,提供 Ollama 模型的集成功能。
- NextChat:一个基于 Next.js 的聊天应用,支持多种聊天模型。Get Started Doc
- Alpaca WebUI:一个用于 Alpaca 模型的 Web 用户界面,提供友好的用户体验。
- OllamaGUI:一个简单易用的 Ollama 模型用户界面。
- OpenAOE:一个开放的自动化任务执行引擎,支持多种集成和扩展。
- Odin Runes:一个任务管理和自动化工具,提供丰富的功能和用户界面。
- LLM-X:一个渐进式 Web 应用,支持多种语言模型和集成。
- AnythingLLM (Docker + MacOs/Windows/Linux native app):一个多平台支持的 LLM 项目,提供 Docker 和原生应用支持。
- Ollama Basic Chat: Uses HyperDiv Reactive UI:一个基础聊天应用,使用 HyperDiv Reactive UI 技术。
- Ollama-chats RPG:一个基于 Ollama 模型的 RPG 聊天应用。
- QA-Pilot:一个代码仓库的问答机器人,提供智能化的代码库查询功能。
- ChatOllama:一个开源聊天机器人,基于 Ollama 模型并支持知识库集成。
- CRAG Ollama Chat:一个简单的 Web 搜索和纠错 RAG 模型。
- RAGFlow:一个开源的文档理解和生成引擎,支持深度文档理解。
- StreamDeploy:一个 LLM 应用程序框架,提供快速开发和部署支持。
- chat:一个团队协作的聊天 Web 应用。
- Lobe Chat:一个开源聊天应用,支持自托管和 Ollama 集成。Integrating Doc
- Ollama RAG Chatbot:一个本地聊天应用,支持多 PDF 文档和 RAG 集成。
- BrainSoup:一个灵活的本地客户端,支持 RAG 和多代理自动化功能。
- macai:一个 macOS 客户端,支持 Ollama、ChatGPT 和其他兼容的 API 后端。
终端
- oterm:一个用于与 Ollama 模型交互的终端用户界面,提供命令行的简洁操作。
- Ellama Emacs client:一个用于 Emacs 的 Ollama 模型客户端,集成了 Ollama 功能到 Emacs 编辑器中。
- Emacs client:另一个用于 Emacs 的 Ollama 模型客户端,提供类似功能的集成。
- gen.nvim:一个用于 Neovim 的插件,支持 Ollama 模型的生成功能。
- ollama.nvim:另一个 Neovim 插件,集成了 Ollama 模型的功能。
- ollero.nvim:用于 Neovim 的插件,提供 Ollama 模型的交互功能。
- ollama-chat.nvim:一个 Neovim 插件,支持与 Ollama 模型的聊天功能。
- ogpt.nvim:一个 Neovim 插件,集成了 GPT 模型的功能。
- gptel Emacs client:一个用于 Emacs 的 GPT 模型客户端,提供与 GPT 模型的交互功能。
- Oatmeal:一个命令行工具,集成了 Ollama 模型的功能。
- cmdh:一个命令行工具,支持与 Ollama 模型的交互。
- ooo:一个简单的命令行工具,提供 Ollama 模型的基本功能。
- shell-pilot:一个用于命令行的智能助手,集成了 Ollama 模型的功能。
- tenere:一个命令行工具,支持与 Ollama 模型的交互。
- llm-ollama:一个为 Datasette's LLM CLI 设计的插件,支持 Ollama 模型的功能集成。Datasette's LLM CLI
- typechat-cli:一个命令行聊天工具,集成了 Ollama 模型的功能。
- ShellOracle:一个命令行智能助手,支持多种 LLM 模型,包括 Ollama。
- tlm:一个命令行工具,集成了多种语言模型功能。
- podman-ollama:一个 Podman 容器,提供 Ollama 模型的集成和运行环境。
数据库
- MindsDB :一个连接 Ollama 模型和近 200 个数据平台和应用的集成项目。MindsDB 旨在通过无缝集成各种数据源和机器学习模型,简化数据驱动的决策和分析流程。
- chromem-go:一个用 Go 编写的库,支持在 Chromium 中嵌入 Ollama 模型。它提供了一个示例项目,展示了如何使用 Ollama 模型进行 RAG(检索增强生成)和 Wikipedia 数据集成。example
包管理器
- Pacman:一个用于 Arch Linux 的 Ollama 模型包,通过 Pacman 包管理器安装。此包简化了在 Arch Linux 系统上安装和使用 Ollama 模型的过程。
- Helm Chart:一个用于 Kubernetes 的 Helm Chart,帮助用户在 Kubernetes 集群中部署和管理 Ollama 模型。Helm Chart 提供了一个模板化的 YAML 文件集合,简化了复杂应用的部署过程。
- Guix channel:一个为 GNU Guix 提供的 Ollama 模型频道。Guix 是一个功能强大的包管理器,此频道允许用户轻松地在 Guix 系统上安装和管理 Ollama 模型。
Libraries
- LangChain and LangChain.js:LangChain 是一个用于构建基于语言模型的应用的框架,支持 Ollama 模型的集成。Example 展示了如何进行本地检索问答。
- LangChainGo:LangChain 的 Go 版本,用于构建基于语言模型的应用,支持 Ollama 模型的集成。Example 展示了如何使用 Ollama 模型完成任务。
- LangChain4j:LangChain 的 Java 版本,提供类似的语言模型集成功能。Example 展示了如何在 Java 应用中使用 Ollama 模型。
- LlamaIndex:一个支持 Ollama 模型的索引和检索框架,旨在增强文本生成和查询的准确性。
- LiteLLM:一个轻量级的 LLM 库,支持 Ollama 模型的集成,旨在提供简单易用的接口。
- OllamaSharp for .NET:一个用于.NET 平台的 Ollama 模型库,提供简单的 API 进行集成和使用。
- Ollama for Ruby:一个用于 Ruby 的 Ollama 模型库,提供简单的接口进行集成和使用。
- Ollama-rs for Rust:一个用于 Rust 的 Ollama 模型库,提供高效的集成和使用方法。
- Ollama4j for Java:一个用于 Java 的 Ollama 模型库,提供便捷的接口进行集成和使用。
- ModelFusion Typescript Library:一个用于 TypeScript 的模型融合库,支持 Ollama 模型的集成。
- OllamaKit for Swift:一个用于 Swift 的 Ollama 模型库,支持在 iOS 和 macOS 应用中集成 Ollama 模型。
- Ollama for Dart:一个用于 Dart 的 Ollama 模型库,支持在 Flutter 应用中集成 Ollama 模型。
- Ollama for Laravel:一个用于 Laravel 框架的 Ollama 模型库,简化了在 PHP 应用中使用 Ollama 模型的过程。
- LangChainDart:LangChain 的 Dart 版本,用于构建基于语言模型的应用,支持 Ollama 模型的集成。
- Semantic Kernel - Python :微软的 Semantic Kernel 框架,支持 Ollama 模型的集成,用于构建智能应用。
- Haystack:一个用于构建端到端问答系统的框架,支持 Ollama 模型的集成。
- Elixir LangChain:LangChain 的 Elixir 版本,支持 Ollama 模型的集成,用于构建语言模型驱动的应用。
- Ollama for R - rollama:一个用于 R 语言的 Ollama 模型库,提供简单的接口进行集成和使用。
- Ollama for R - ollama-r:另一个用于 R 语言的 Ollama 模型库,提供类似的集成功能。
- Ollama-ex for Elixir:一个用于 Elixir 的 Ollama 模型库,支持高效的集成和使用。
- Ollama Connector for SAP ABAP:一个用于 SAP ABAP 的 Ollama 模型连接器,支持在 ABAP 环境中集成 Ollama 模型。
- Testcontainers:一个用于在容器中运行 Ollama 模型的工具,简化了测试和开发过程。
- Portkey:一个用于集成 Ollama 模型的文档和指南,帮助用户快速上手。
- PromptingTools.jl:一个用于 Julia 的提示工具库,支持 Ollama 模型的集成。Example 展示了如何使用 Ollama 模型进行任务。
- LlamaScript:一个用于 JavaScript 的语言模型库,支持 Ollama 模型的集成和使用。
移动应用
- Enchanted:Enchanted 是一个原生的 macOS 应用,旨在提供一个简洁直观的图形用户界面,用于简化复杂任务的管理和执行。它支持多种插件和扩展,用户可以根据需要自定义和扩展其功能。
- Maid:Maid 是一个移动人工智能框架,旨在简化在移动设备上开发和部署 AI 模型。它提供了一个模块化的架构,支持多种 AI 模型和数据处理任务,方便开发者快速构建和集成智能应用。
扩展和插件
- Raycast extension:一个用于 Raycast 的扩展,支持与 Ollama 模型集成,简化在 macOS 上的操作和任务管理。
- Discollama:一个在 Ollama Discord 频道内的 Discord 机器人,提供聊天和管理功能。
- Continue:一个开源的 IDE 插件,支持与 Ollama 模型集成,用于代码补全和智能建议。
- Obsidian Ollama plugin:一个用于 Obsidian 的插件,支持与 Ollama 模型集成,增强笔记和知识管理功能。
- Logseq Ollama plugin:一个用于 Logseq 的插件,支持与 Ollama 模型集成,提供智能笔记和知识管理功能。
- NotesOllama:一个用于 Apple Notes 的插件,支持与 Ollama 模型集成,增强笔记功能。
- Dagger Chatbot:一个用于 Dagger 的聊天机器人,支持与 Ollama 模型集成。
- Discord AI Bot:一个 Discord 机器人,集成了 Ollama 模型,用于聊天和管理。
- Ollama Telegram Bot:一个用于 Telegram 的机器人,支持与 Ollama 模型集成。
- Hass Ollama Conversation:一个用于 Home Assistant 的插件,支持与 Ollama 模型集成,提供智能家居对话功能。
- Rivet plugin:一个 Rivet 插件,支持与 Ollama 模型集成,增强对话和协作功能。
- Obsidian BMO Chatbot plugin:一个用于 Obsidian 的聊天机器人插件,支持与 Ollama 模型集成。
- Cliobot:一个用于 Telegram 的机器人,支持与 Ollama 模型集成,提供智能聊天功能。
- Copilot for Obsidian plugin:一个用于 Obsidian 的插件,提供类似 GitHub Copilot 的智能代码补全和建议功能。
- Obsidian Local GPT plugin:一个用于 Obsidian 的插件,支持本地 GPT 模型集成,提供智能笔记功能。
- Open Interpreter:一个用于本地模型集成的文档和指南,支持 Ollama 模型。
- Llama Coder:一个类似 Copilot 的工具,使用 Ollama 模型提供智能代码建议和补全功能。
- Ollama Copilot:一个代理工具,使 Ollama 模型可以像 GitHub Copilot 一样使用,提供智能代码补全和建议功能。
- twinny:一个替代 Copilot 和 Copilot Chat 的工具,使用 Ollama 模型提供智能代码和聊天功能。
- Wingman-AI:一个 Copilot 代码和聊天替代工具,使用 Ollama 和 HuggingFace 模型提供智能支持。
- Page Assist:一个 Chrome 扩展,集成了 Ollama 模型,提供网页助手功能。
- AI Telegram Bot:一个使用 Ollama 作为后端的 Telegram 机器人,提供智能聊天功能。
- AI ST Completion:一个 Sublime Text 4 的 AI 助手插件,支持 Ollama 模型。
- Discord-Ollama Chat Bot:一个通用的 TypeScript Discord 机器人,提供调优文档和 Ollama 集成功能。
- Discord AI chat/moderation bot:一个用 Python 编写的聊天 / 管理机器人,使用 Ollama 创建个性化角色。
支持的后端
- llama.cpp:这个项目是一个高效的 C++ 库,旨在简化和优化大型语言模型(LLMs)的使用和部署。
llama.cpp提供了一套轻量级的工具,用于在各种平台上运行和集成 LLMs,特别关注性能和资源使用效率。它适用于需要在资源受限环境中运行高级自然语言处理任务的应用。
