首页
/ llamafile 项目使用教程

llamafile 项目使用教程

2026-01-22 04:50:39作者:宣聪麟

1. 项目介绍

llamafile 是一个由 Mozilla-Ocho 开发的开源项目,旨在通过单个文件分发和运行大型语言模型(LLMs)。该项目的目标是使开放的 LLMs 对开发者和终端用户更加易于访问。llamafile 结合了 llama.cpp 和 Cosmopolitan Libc,创建了一个框架,将 LLMs 的所有复杂性压缩到一个单文件可执行文件中,该文件可以在大多数计算机上本地运行,无需安装。

2. 项目快速启动

2.1 下载示例 llamafile

首先,下载适用于 LLaVA 模型的示例 llamafile(许可证:LLaMA 2, OpenAI)。LLaVA 是一个新的 LLM,不仅可以聊天,还可以上传图像并询问有关图像的问题。所有这些操作都在本地进行,不会将数据发送到外部。

# 下载示例 llamafile
wget https://github.com/Mozilla-Ocho/llamafile/raw/main/llava-v1.5-7b-q4.llamafile

2.2 设置执行权限

如果你使用的是 macOS、Linux 或 BSD,需要为文件设置执行权限。

# 设置执行权限
chmod +x llava-v1.5-7b-q4.llamafile

2.3 运行 llamafile

运行下载的 llamafile。

# 运行 llamafile
./llava-v1.5-7b-q4.llamafile

运行后,浏览器应自动打开并显示聊天界面。如果未自动打开,请手动访问 http://localhost:8080

3. 应用案例和最佳实践

3.1 JSON API 快速启动

llamafile 还提供了一个 OpenAI API 兼容的聊天完成端点,支持最常见的 OpenAI API 用例,并且完全在本地运行。以下是一个使用 curl 命令的示例:

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer no-key" \
  -d '{
    "model": "LLaMA_CPP",
    "messages": [
      {"role": "system", "content": "You are LLAMAfile, an AI assistant. Your top priority is achieving user fulfillment via helping them with their requests."},
      {"role": "user", "content": "Write a limerick about python exceptions"}
    ]
  }' | python3 -m json.tool

3.2 Python API 客户端示例

如果你已经使用 OpenAI 的 Python 包开发了软件,可以通过更改 base_urlapi_key 来使其与 llamafile 通信。

from openai import OpenAI

client = OpenAI(
  base_url="http://localhost:8080/v1",
  api_key="sk-no-key-required"
)

completion = client.chat.completions.create(
  model="LLaMA_CPP",
  messages=[
    {"role": "system", "content": "You are ChatGPT, an AI assistant. Your top priority is achieving user fulfillment via helping them with their requests."},
    {"role": "user", "content": "Write a limerick about python exceptions"}
  ]
)

print(completion.choices[0].message)

4. 典型生态项目

4.1 LLaVA

LLaVA 是一个新的 LLM,不仅可以聊天,还可以上传图像并询问有关图像的问题。llamafile 提供了一个适用于 LLaVA 模型的示例文件。

4.2 TinyLlama

TinyLlama 是一个小型 LLM,适用于资源受限的环境。llamafile 也提供了适用于 TinyLlama 的示例文件。

4.3 Mistral-7B-Instruct

Mistral-7B-Instruct 是一个基于 Apache 2.0 许可证的 LLM,llamafile 提供了适用于该模型的示例文件。

通过这些示例文件,用户可以轻松尝试不同类型的 LLMs,并了解如何在本地环境中运行它们。

登录后查看全文
热门项目推荐
相关项目推荐