win下ollama、open-webui安装及实战
1.ollama简介
- github地址 :github.com/ollama/olla...
- 官网地址 : ollama.com/
Ollama是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。以下是关于Ollama的详细解释:
- 本地部署与运行 :Ollama的主要目标之一是简化在Docker容器中部署大型语言模型的过程。这使得非专业用户也能方便地管理和运行这些复杂的模型。
- 轻量级与可扩展性 :作为一个轻量级框架,Ollama保持了较小的资源占用,同时具备良好的可扩展性。这允许用户根据项目的规模和硬件条件调整配置。
- API支持 :Ollama提供了一个简洁的API,使开发者能够轻松创建、运行和管理大型语言模型实例。这降低了与模型交互的技术门槛。
- 预构建模型库 :Ollama包含了一系列预先训练好的大型语言模型,用户可以直接选用这些模型应用于自己的应用程序,无需从头训练或自行寻找模型源。
- 模型导入与定制:
- 从GGUF导入:支持从特定平台(如GGUF)导入已有的大型语言模型。
- 从PyTorch或Safetensors导入:兼容这两种深度学习框架,允许用户将基于这些框架训练的模型集成到Ollama中。
- 自定义提示:允许用户为模型添加或修改提示,以引导模型生成特定类型或风格的文本输出。
- 命令行启动:通过命令
ollamaserve
或其别名serve
、start
可以启动Ollama服务。 - 环境变量配置:如
OLLAMA_HOST
,用于指定服务绑定的主机地址和端口。用户可以根据需要进行修改。
此外,Ollama还提供了丰富的API接口、社区和文档支持,使其成为一个适合开发者和个人用户在本地运行和管理大型语言模型的强大工具。
需要注意的是,使用大型语言模型和Ollama框架时,可能会涉及到计算资源的消耗、模型训练的复杂性以及数据安全等问题。因此,在使用前,建议用户充分了解相关知识,并根据自己的需求和条件做出合理的决策。
-
特点
-
🖥️直观的界面:我们的聊天界面从ChatGPT中汲取灵感,确保用户友好的体验。
-
Responsive Design
📱响应式设计:在桌面和移动设备上享受无缝体验。
-
Swift Responsiveness
⚡Swift响应能力:享受快速响应的性能。
-
Effortless Setup
🚀轻松安装:使用Docker或库伯内特斯(kubectl、kustomize或helm)无缝安装,获得轻松的体验。
-
Theme Customization
🌈主题自定义:从各种主题中进行选择,以个性化您的Open WebUI体验。
-
Code Syntax Highlighting
💻代码语法高亮:使用我们的语法高亮功能享受增强的代码易读性。
-
Full Markdown and LaTeX Support
✒️🔢全面的Markdown和LaTeX支持:通过全面的Markdown和LaTeX功能提升您的LLM体验,以丰富交互。
-
Local RAG Integration
#
📚本地RAG集成 :借助开创性的检索增强生成(RAG)支持,深入了解聊天交互的未来。此功能将文档交互无缝集成到您的聊天体验中。您可以将文档直接加载到聊天中或将文件添加到您的文档库中,在提示符中使用
#
命令轻松访问它们。在其alpha阶段,当我们积极改进和增强此功能以确保最佳性能和可靠性时,可能会出现偶尔的问题。 -
RAG Embedding Support
🔍RAG嵌入支持:直接在文档设置中更改RAG嵌入模型,增强文档处理。此功能支持Ollama和OpenAI模型。
-
Web Browsing Capability
#
🌐网页浏览能力 :使用网址后跟的
#
命令将网站无缝集成到您的聊天体验中。此功能允许您将网页内容直接合并到对话中,增强互动的丰富性和深度。 -
Prompt Preset Support
/
Open WebUI Community📜提示预设支持 :使用聊天输入中的
/
命令立即访问预设提示。轻松加载预定义的对话开始器并加快交互速度。通过Open WebUI Community集成轻松导入提示。 -
RLHF Annotation
👍👎RLHF注释:通过竖起大拇指和竖起大拇指对消息进行评级,然后选择提供文本反馈,促进从人类反馈中强化学习(RLHF)的数据集的创建。利用您的消息来训练或微调模型,同时确保本地保存数据的机密性。
-
Conversation Tagging
🏷️对话标记:轻松分类和定位特定聊天,以便快速参考和简化数据采集。
-
Download/Delete Models
📥🗑️下载/删除模型:直接从Web UI轻松下载或删除模型。
-
Update All Ollama Models
🔄更新所有Ollama模型:使用方便的按钮轻松一次更新本地安装的模型,简化模型管理。
-
GGUF File Model Creation
⬆️GGUF文件模型创建:通过直接从网络用户界面上传GGUF文件,轻松创建Ollama模型。简化流程,可选择从您的机器上传或从拥抱脸下载GGUF文件。
-
Multiple Model Support
🤖多模型支持:在不同的聊天模型之间无缝切换,实现多样化的交互。
-
Multi-Modal Support
🔄多模态支持:与支持多模态交互的模型无缝交互,包括图像(例如LLava)。
-
Modelfile Builder Open WebUI Community
🧩Modelfile Builder :通过Web UI轻松创建Ollama模型文件。通过Open WebUI社区集成轻松创建和添加角色/代理、自定义聊天元素和导入模型文件。
-
Many Models Conversations
⚙️多种模型对话:轻松地同时使用各种模型,利用它们的独特优势获得最佳响应。通过并行利用各种模型集来增强您的体验。
-
Collaborative Chat
@
💬协作聊天 :通过无缝编排群组对话来利用多个模型的集体智慧。使用
@
命令指定模型,在您的聊天界面中启用动态和多样化的对话。沉浸在编织到您的聊天环境中的集体智慧中。 -
Local Chat Sharing
🗨️本地聊天共享:在用户之间无缝生成和共享聊天链接,增强协作和沟通。
-
Regeneration History Access
🔄再生历史访问:轻松重新访问和探索您的整个再生历史。
-
Chat History
📜聊天记录:轻松访问和管理您的对话记录。
-
Archive Chats
📬存档聊天:轻松存储已完成的与LLM的对话以供将来参考,保持整洁和整洁的聊天界面,同时允许轻松检索和参考。
-
Import/Export Chat History
📤📥导入/导出聊天记录:无缝地将您的聊天数据移入和移出平台。
-
Voice Input Support
🗣️语音输入支持:通过语音交互与您的模型互动;享受直接与模型交谈的便利。此外,探索静音3秒后自动发送语音输入的选项,以获得简化的体验。
-
Configurable Text-to-Speech Endpoint
🔊可配置的文本到语音端点:使用可配置的OpenAI端点自定义文本到语音体验。
-
Fine-Tuned Control with Advanced Parameters
使用高级参数⚙️微调控制:通过调整温度等参数和定义系统提示来根据您的特定偏好和需求定制对话,从而获得更深层次的控制。
-
Image Generation Integration
🎨🤖图像生成集成:使用AUTOMATIC1111 API(本地)、ComfyUI(本地)和DALL-E等选项无缝整合图像生成功能,通过动态视觉内容丰富您的聊天体验。
-
OpenAI API Integration****LMStudio, Mistral, OpenRouter, and more
🤝OpenAI API集成:轻松集成与OpenAI兼容的API,用于与Ollama模型进行多功能对话。自定义API Base URL以链接LMStudio、Mistral、Open路由器等。
-
Multiple OpenAI-Compatible API Support
✨多种OpenAI兼容API支持:无缝集成和自定义各种OpenAI兼容API,增强聊天交互的多功能性。
-
API Key Generation Support
🔑API密钥生成支持:生成密钥以利用Open WebUI和OpenAI库,简化集成和开发。
-
External Ollama Server Connection
🔗外部Ollama服务器连接:通过配置环境变量,无缝链接到托管在不同地址上的外部Ollama服务器。
-
Multiple Ollama Instance Load Balancing
🔀多个Ollama实例负载平衡:轻松地跨多个Ollama实例分发聊天请求,以增强性能和可靠性。
-
Multi-User Management
👥多用户管理:通过我们直观的管理面板轻松监督和管理用户,简化用户管理流程。
-
Webhook Integration
🔗网络钩子集成:通过网络钩子订阅新用户注册事件(与谷歌聊天和微软团队兼容),提供实时通知和自动化功能。
-
Model Whitelisting
🛡️模型白名单:管理员可以将具有"用户"角色的用户的模型列入白名单,从而增强安全性和权限改造。
-
Trusted Email Authentication
📧可信电子邮件身份验证:使用可信电子邮件标头进行身份验证,增加额外的安全和身份验证层。
-
Role-Based Access Control (RBAC)
🔐基于角色的访问控制(RBAC):确保具有受限权限的安全访问;只有授权的个人才能访问您的Ollama,并且为管理员保留独占的模型创建/拉取权限。
-
Backend Reverse Proxy Support
🔒后端反向代理支持:通过Open WebUI后端和Ollama之间的直接通信增强安全性。此关键功能消除了通过LAN公开Ollama的需要。从Web UI向"/ollama/api"路由发出的请求从后端无缝重定向到Ollama,从而增强了整体系统安全性。
-
Multilingual Support
🌐🌍多语言支持:通过我们的internationalization(国际化)支持,体验您首选语言的Open WebUI。加入我们扩展我们支持的语言!我们正在积极寻找贡献者!
-
Continuous Updates
🌟持续更新:我们致力于通过定期更新和新功能来改进Open WebUI。
2.支持的模型
Model | Parameters | Size | Download |
---|---|---|---|
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 |
注意:您应该至少有 8 GB 可用 RAM 来运行 7B 型号,16 GB 来运行 13B 型号,32 GB 来运行 33B 型号。
3.ollama下载安装
该系统支持macos、linux、win等3类系统。
Download Ollama :ollama.com/download
下载安装,任务栏右下角出现一只小猪图标,如下图所示:
4.下载安装模型
Ollama下llama3模型下载:
bash
ollama run llama3
5.模型定制
Ollama 库中的模型可以通过提示进行定制。例如,自定义 llama3 模型:
bash
ollama pull llama3
创建 Modelfile文件
bash
FROM llama3
# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1
# set the system message
SYSTEM """
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
"""
接下来,创建并运行模型:
bash
ollama create mario -f ./Modelfile
ollama run mario
>>> hi
Hello! It's your friend Mario.
6.Qwen举例
下面以Qwen为例:
bash
ollama run qwen
Qwen中文支持较好,Llama3 英文较好。
7.open-webui安装
open-webui是面向 LLM 的用户友好型 WebUI(以前称为 Ollama WebUI)
- github地址 : github.com/open-webui/...
- 官网地址 : openwebui.com
Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 WebUI,旨在完全离线操作。它支持各种 LLM 运行程序,包括 Ollama 和 OpenAI 兼容的 API。
bash
# 下载源码
git clone https://github.com/open-webui/open-webui.git
cd open-webui/
# 创建env环境文件
# Copying required .env file
cp -RPp .env.example .env
# 编译前端,需要安装nodejs
# Building Frontend Using Node
npm i
npm run build
# 安装后台
# Serving Frontend with the Backend
cd ./backend
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt -U
8.open-webui启动
backend下启动批处理文件 start_windows.bat ,通常情况下会报错,提示找不到hugface,这块需要特殊设置。
bash
start_windows.bat
9.解决hugface连接不上问题
注意事项:
- 设置环境变量 set HF_ENDPOINT=hf-mirror.com ,老司机看图就会:
设置后,再次启动:
- 当看到:
bash
___ __ __ _ _ _ ___
/ _ \ _ __ ___ _ __ \ \ / /__| |__ | | | |_ _|
| | | | '_ \ / _ \ '_ \ \ \ /\ / / _ \ '_ \| | | || |
| |_| | |_) | __/ | | | \ V V / __/ |_) | |_| || |
\___/| .__/ \___|_| |_| \_/\_/ \___|_.__/ \___/|___|
|_|
v0.1.123 - building the best open-source AI user interface.
https://github.com/open-webui/open-webui
INFO: Started server process [33888]
INFO: Waiting for application startup.
INFO:apps.litellm.main:start_litellm_background
INFO:apps.litellm.main:run_background_process
INFO:apps.litellm.main:Executing command: ['litellm', '--port', '14365', '--host', '127.0.0.1', '--telemetry', 'False', '--config', 'D:\\work\\open-webui\\backend\\data/litellm/config.yaml']
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
INFO:apps.litellm.main:Subprocess started successfully.
启动成功
10.webui示例
-
注册 打开 http://localhost:8080 网址,本地注册用户后登陆。
-
设置 打开settting设置,当然设置为英文。
-API keys设置
还有更多设置,有待开发,下面举例说明:
此外,也支持API调用等,这里就不赘述,有空大家可以趴一趴官方的github了解详情,体验到此结束。