rlama

GitHub
1.1k 75 简单 1 次阅读 2天前Apache-2.0语言模型开发框架插件
AI 解读 由 AI 自动生成,仅供参考

rlama 是一款强大的本地文档智能问答工具,旨在帮助用户轻松构建基于检索增强生成(RAG)技术的私有知识库系统。它能无缝连接用户本地运行的 Ollama 大语言模型,让用户直接对各类文档进行提问、管理和交互,无需依赖云端服务即可实现高效的信息检索。

针对个人和企业面临的数据隐私顾虑及高昂的 API 调用成本问题,rlama 提供了一套完整的本地化解决方案。它支持从本地文件夹或指定网站抓取内容,自动处理文档分块并建立索引,让用户能够随时向自己的文档库发起自然语言查询。此外,它还具备目录监控和网站更新追踪功能,确保知识库能随源文件变化自动同步。

这款工具特别适合注重数据安全的开发者、研究人员以及希望搭建私有知识助理的技术爱好者使用。其独特的技术亮点在于完全本地化的部署架构,结合命令行界面的灵活操作,不仅支持多种文档格式,还允许用户直接在 Hugging Face 上浏览并运行 GGUF 格式的模型。尽管目前项目因作者事务暂时暂停维护,但其已有的功能依然为构建离线、安全且可定制的 AI 问答系统提供了极具价值的参考与实践路径。

使用场景

某法律科技公司的初级律师需要快速从数百页不断更新的公司内部合规手册和最新法律法规网页中,查找特定条款的解读依据。

没有 rlama 时

  • 面对本地 PDF 手册和外部法规网站的混合资料,只能手动复制粘贴到通用聊天机器人,不仅效率低下,还容易因上下文长度限制遗漏关键信息。
  • 每次法规网站更新或内部手册修订,都需要重新整理文档并手动再次上传,无法实现知识的自动同步,极易导致回答基于过时版本。
  • 缺乏对本地大模型(如 Ollama)的原生支持,若担心数据隐私不敢使用云端 API,就只能放弃智能问答,回归原始的关键词搜索。
  • 无法追溯答案的具体来源段落,难以向合伙人验证引用的准确性,增加了复核成本。

使用 rlama 后

  • 利用 crawl-ragadd-docs 命令,一键将本地合规手册与外部法规网站整合成统一的 RAG 系统,直接连接本地 Ollama 模型进行私有化问答。
  • 通过 web-watchwatch 功能设置监控,当法规网站更新或本地文件夹新增文档时,rlama 自动检测并增量更新知识库,确保持续获取最新信息。
  • 全程数据在本地运行,无需上传敏感法律文档至云端,完美兼顾了数据安全与智能化效率。
  • 使用 list-chunksview-chunk 随时 inspect 文档切片,问答结果自带精确的来源定位,让每一条法律解读都有据可查。

rlama 将分散的静态文档转化为可自动进化、安全可控的本地法律智慧库,极大提升了专业领域的知识检索效率。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明 (依赖 Ollama,通常支持 CPU 运行,也可利用 NVIDIA/AMD/Mac GPU)

内存

未说明 (取决于所选 LLM 模型大小)

依赖
notes该工具基于 Go 语言开发,以单二进制文件分发,无需 Python 环境。唯一的外部强依赖是本地运行的 Ollama 服务,用于提供嵌入生成和文本补全能力。数据存储于用户主目录 (~/.rlama)。可通过 --num-thread 参数调整线程数以优化性能。
python不需要 (核心语言为 Go)
Ollama (必须安装并运行)
rlama hero image

快速开始


RLAMA - 用户指南

⚠️ 项目暂时暂停
由于我的工作和大学事务占据了大量时间,该项目目前处于暂停状态。我暂时无法积极维护此项目。待情况允许时,开发将重新启动。

RLAMA 是一款功能强大的 AI 驱动文档问答工具,可无缝集成到您本地的 Ollama 模型中。它使您能够创建、管理和交互基于检索增强生成(RAG)的系统,以满足您的文档需求。

RLAMA 演示

目录

愿景与路线图

RLAMA 致力于成为创建本地 RAG 系统的权威工具,让每个人都能无缝使用——无论是个人开发者还是大型企业。以下是我们的战略路线图:

已完成的功能 ✅

  • 基础 RAG 系统创建:用于创建和管理 RAG 系统的 CLI 工具
  • 文档处理:支持多种文档格式(.txt、.md、.pdf 等)
  • 文档分块:采用多种策略进行高级语义分块(固定大小、语义、层次化、混合)
  • 向量存储:本地存储文档嵌入
  • 上下文检索:基本的语义搜索,可配置上下文大小
  • Ollama 集成:与 Ollama 模型无缝连接
  • 跨平台支持:适用于 Linux、macOS 和 Windows
  • 简易安装:一行安装脚本
  • API 服务器:HTTP 端点,用于在其他应用程序中集成 RAG 功能
  • 网页爬取:直接从网站创建 RAG
  • 引导式 RAG 设置向导:交互式界面,方便轻松创建 RAG
  • Hugging Face 集成:可访问 Hugging Face Hub 上的 45,000 多个 GGUF 模型

小型 LLM 优化(2025 年第二季度)

  • 提示压缩:针对有限上下文窗口的智能上下文摘要
  • 自适应分块:根据语义边界和文档结构动态分割内容
  • 最小化上下文检索:智能过滤冗余内容
  • 参数优化:针对不同模型规模的精细调优设置

高级嵌入流水线(2025 年第二至第三季度)

  • 多模型嵌入支持:集成多种嵌入模型
  • 混合检索技术:结合稀疏和密集检索器以提高准确性
  • 嵌入评估工具:内置指标用于衡量检索质量
  • 自动嵌入缓存:智能缓存机制,减少相似查询的计算量

用户体验提升(2025 年第三季度)

  • 轻量级 Web 界面:基于现有 CLI 后端的简单浏览器界面
  • 知识图可视化:交互式探索文档之间的关联
  • 领域特定模板:针对不同领域的预配置设置

企业级功能(2025 年第四季度)

  • 多用户访问控制:面向团队环境的角色权限管理
  • 与企业系统集成:SharePoint、Confluence、Google Workspace 等的连接器
  • 知识质量监控:检测过时或相互矛盾的信息
  • 系统集成 API:用于将 RLAMA 嵌入现有工作流程的 Webhook 和 API
  • AI 代理创建框架:简化构建具备 RAG 能力的自定义 AI 代理的系统

下一代检索创新(2026年第一季度)

  • 多步检索:利用大语言模型对复杂问题的搜索查询进行优化
  • 跨模态检索:支持图像内容的理解与检索
  • 基于反馈的优化:通过用户交互学习来改进检索效果
  • 知识图谱与符号推理:将向量检索与结构化知识相结合

RLAMA 的核心理念始终不变:提供一个简单、强大且本地化的 RAG 解决方案,既尊重隐私、又最大限度地降低资源需求,并能在跨平台环境中无缝运行。

安装

先决条件

通过终端安装

curl -fsSL https://raw.githubusercontent.com/dontizi/rlama/main/install.sh | sh

技术栈

RLAMA 采用以下技术构建:

  • 核心语言:Go(因其性能、跨平台兼容性以及单二进制分发而被选用)
  • CLI 框架:Cobra(用于命令行界面的结构设计)
  • LLM 集成:Ollama API(用于嵌入和补全)
  • 存储:基于本地文件系统的存储(使用 JSON 文件以简化和便于移植)
  • 向量检索:自定义实现的余弦相似度算法,用于嵌入检索

架构

RLAMA 遵循清晰的架构模式,实现了明确的关注点分离:

rlama/
├── cmd/                  # CLI 命令(使用 Cobra)
│   ├── root.go           # 基础命令
│   ├── rag.go            # 创建 RAG 系统
│   ├── run.go            # 查询 RAG 系统
│   └── ...
├── internal/
│   ├── client/           # 外部 API 客户端
│   │   └── ollama_client.go # Ollama API 集成
│   ├── domain/           # 核心领域模型
│   │   ├── rag.go        # RAG 系统实体
│   │   └── document.go   # 文档实体
│   ├── repository/       # 数据持久化
│   │   └── rag_repository.go # 负责保存和加载 RAG
│   └── service/          # 业务逻辑
│       ├── rag_service.go      # RAG 操作
│       ├── document_loader.go  # 文档处理
│       └── embedding_service.go # 向量嵌入
└── pkg/                  # 共享工具
    └── vector/           # 向量运算

数据流

  1. 文档处理:从文件系统加载文档,根据其类型进行解析,并转换为纯文本。
  2. 嵌入生成:将文档文本发送至 Ollama 以生成向量嵌入。
  3. 存储:RAG 系统(文档 + 嵌入)存储在用户的主目录下 (~/.rlama)。
  4. 查询过程:当用户提出问题时,将其转换为嵌入,与存储的文档嵌入进行比较,并检索相关内容。
  5. 响应生成:将检索到的内容和问题一起发送至 Ollama,以生成上下文相关的回答。

可视化表示

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│  Documents  │────>│  Document   │────>│  Embedding  │
│  (Input)    │     │  Processing │     │  Generation │
└─────────────┘     └─────────────┘     └─────────────┘
                                              │
                                              ▼
┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   Query     │────>│  Vector     │<────│ Vector Store│
│  Response   │     │  Search     │     │ (RAG System)│
└─────────────┘     └─────────────┘     └─────────────┘
       ▲                   │
       │                   ▼
┌─────────────┐     ┌─────────────┐
│   Ollama    │<────│   Context   │
│    LLM      │     │  Building   │
└─────────────┘     └─────────────┘

RLAMA 的设计注重轻量化和便携性,旨在以最少的依赖项提供 RAG 功能。整个系统在本地运行,唯一的外部依赖是用于 LLM 功能的 Ollama。

可用命令

您可以通过以下命令获取所有命令的帮助信息:

rlama --help

全局选项

这些选项可与任何命令一起使用:

--host string       Ollama 主机地址(默认:localhost)
--port string       Ollama 端口(默认:11434)
--num-thread int    Ollama 使用的线程数(默认:0,使用 Ollama 默认值)

性能优化:

  • 使用 --num-thread 16(或您的 CPU 核心数)可以潜在地提高处理速度
  • Ollama 默认通常只使用一半可用的核心
  • 将此设置为您全部的核心数可以显著加快文本生成和嵌入的速度

使用示例:

# 使用 16 个线程以获得更好的性能
rlama --num-thread 16 run my-docs

# 创建一个优化线程使用的 RAG
rlama --num-thread 16 rag llama3 documentation ./docs

# 使用自定义主机和线程设置运行
rlama --host 192.168.1.100 --port 11434 --num-thread 16 run my-rag

自定义数据目录

RLAMA 默认将数据存储在 ~/.rlama 中。如需使用其他位置:

  1. 命令行标志(优先级最高):

    # 与任何命令一起使用
    rlama --data-dir /path/to/custom/directory run my-rag
    
  2. 环境变量

    # 设置环境变量
    export RLAMA_DATA_DIR=/path/to/custom/directory
    rlama run my-rag
    

优先级顺序为:命令行标志 > 环境变量 > 默认位置。

rag - 创建 RAG 系统

通过索引指定文件夹中的所有文档来创建一个新的 RAG 系统。

rlama rag [model] [rag-name] [folder-path]

参数:

  • model:要使用的 Ollama 模型名称(例如 llama3、mistral、gemma),或使用 hf.co/用户名/仓库[:量化] 格式的 Hugging Face 模型。
  • rag-name:用于标识您的 RAG 系统的唯一名称。
  • folder-path:包含您文档的文件夹路径。

示例:

# 使用标准 Ollama 模型
rlama rag llama3 documentation ./docs

# 使用 Hugging Face 模型
rlama rag hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF my-rag ./docs

# 使用带有特定量化设置的 Hugging Face 模型
rlama rag hf.co/mlabonne/Meta-Llama-3.1-8B-Instruct-abliterated-GGUF:Q5_K_M my-rag ./docs

crawl-rag - 从网站创建 RAG 系统

通过抓取网站并对其内容建立索引,创建一个新的 RAG 系统。

rlama crawl-rag [模型] [rag-名称] [网站-URL]

参数:

  • 模型: 要使用的 Ollama 模型名称(例如,llama3、mistral、gemma)。
  • rag-名称: 用于标识您的 RAG 系统的唯一名称。
  • 网站-URL: 要抓取和索引的网站 URL。

选项:

  • --max-depth: 最大抓取深度(默认:2)
  • --concurrency: 并发爬虫数量(默认:5)
  • --exclude-path: 需要排除的路径(逗号分隔)
  • --chunk-size: 每个块的字符数(默认:1000)
  • --chunk-overlap: 块之间的重叠字符数(默认:200)
  • --chunking-strategy: 使用的分块策略(选项:“fixed”、“semantic”、“hybrid”、“hierarchical”,默认:“hybrid”)

分块策略

RLAMA 提供多种高级分块策略,以优化文档检索:

  • Fixed: 传统的固定大小和重叠分块方式,尽可能尊重句子边界。
  • Semantic: 根据语义边界(如标题、段落和自然的主题转换)智能地拆分文档。
  • Hybrid: 自动根据文档类型和内容选择最佳策略(Markdown、HTML、代码或纯文本)。
  • Hierarchical: 对于非常长的文档,创建包含主要章节和子块的两级分块结构。

系统会自动适应不同的文档类型:

  • Markdown 文档:按标题和章节拆分
  • HTML 文档:按语义 HTML 元素拆分
  • 代码文档:按函数、类和逻辑块拆分
  • 纯文本:按段落拆分,并保留上下文重叠。

示例:

# 从文档网站创建新的 RAG
rlama crawl-rag llama3 docs-rag https://docs.example.com

# 自定义抓取行为
rlama crawl-rag llama3 blog-rag https://blog.example.com --max-depth=3 --exclude-path=/archive,/tags

# 使用语义分块创建 RAG
rlama rag llama3 documentation ./docs --chunking-strategy=semantic

# 对于大型文档使用分层分块
rlama rag llama3 book-rag ./books --chunking-strategy=hierarchical

wizard - 通过交互式设置创建 RAG 系统

提供一个交互式的逐步向导,用于创建新的 RAG 系统。

rlama wizard

向导将引导您完成以下步骤:

  • 为您的 RAG 命名
  • 选择 Ollama 模型
  • 选择文档来源(本地文件夹或网站)
  • 配置分块参数
  • 设置文件过滤

示例:

rlama wizard
# 按照提示创建您自定义的 RAG

watch - 为 RAG 系统设置目录监控

配置 RAG 系统,使其自动监视指定目录中的新文件,并将其添加到 RAG 中。

rlama watch [rag-名称] [目录-路径] [间隔]

参数:

  • rag-名称: 要监视的 RAG 系统名称。
  • 目录-路径: 要监视新文件的目录路径。
  • 间隔: 检查新文件的时间间隔(以分钟为单位;使用 0 表示仅在 RAG 被使用时检查)。

示例:

# 设置每 60 分钟检查一次的目录监控
rlama watch my-docs ./watched-folder 60

# 设置仅在 RAG 被使用时检查的目录监控
rlama watch my-docs ./watched-folder 0

# 自定义要监视的文件
rlama watch my-docs ./watched-folder 30 --exclude-dir=node_modules,tmp --process-ext=.md,.txt

watch-off - 关闭 RAG 系统的目录监控

关闭 RAG 系统的自动目录监控功能。

rlama watch-off [rag-名称]

参数:

  • rag-名称: 要停止监控的 RAG 系统名称。

示例:

rlama watch-off my-docs

check-watched - 检查 RAG 的监视目录中是否有新文件

手动检查 RAG 监视的目录中是否有新文件,并将其添加到 RAG 中。

rlama check-watched [rag-名称]

参数:

  • rag-名称: 要检查的 RAG 系统名称。

示例:

rlama check-watched my-docs

web-watch - 为 RAG 系统设置网站监控

配置 RAG 系统,使其自动监控网站更新,并将新内容添加到 RAG 中。

rlama web-watch [rag-名称] [网站-URL] [间隔]

参数:

  • rag-名称: 要监控的 RAG 系统名称。
  • 网站-URL: 要监控的网站 URL。
  • 间隔: 检查之间的时间间隔(以分钟为单位;使用 0 表示仅在 RAG 被使用时检查)。

示例:

# 设置每 60 分钟检查一次的网站监控
rlama web-watch my-docs https://example.com 60

# 设置仅在 RAG 被使用时检查的网站监控
rlama web-watch my-docs https://example.com 0

# 自定义要监控的内容
rlama web-watch my-docs https://example.com 30 --exclude-path=/archive,/tags

web-watch-off - 关闭 RAG 系统的网站监控

关闭 RAG 系统的自动网站监控功能。

rlama web-watch-off [rag-名称]

参数:

  • rag-名称: 要停止监控的 RAG 系统名称。

示例:

rlama web-watch-off my-docs

check-web-watched - 检查 RAG 监控的网站是否有更新

手动检查 RAG 监控的网站是否有新更新,并将其添加到 RAG 中。

rlama check-web-watched [rag-名称]

参数:

  • rag-名称: 要检查的 RAG 系统名称。

示例:

rlama check-web-watched my-docs

run - 使用 RAG 系统

启动一个交互式会话,与现有的 RAG 系统进行交互。

rlama run [rag-名称]

参数:

  • rag-名称: 要使用的 RAG 系统名称。
  • --context-size: (可选)要检索的上下文块数量(默认:20)。

示例:

rlama run documentation
> 如何安装该项目?
> 主要功能有哪些?
> exit

上下文大小提示:

  • 较小的值(5–15)适合快速响应并获取关键信息。
  • 中等值(20–40)可在性能和信息量之间取得平衡。
  • 较大的值(50+)适用于需要广泛背景信息的复杂问题。
  • 请考虑您的模型的上下文窗口限制。
rlama run documentation --context-size=50  # 使用 50 个上下文块

api - 启动 API 服务器

启动一个 HTTP API 服务器,通过 RESTful 端点暴露 RLAMA 的功能。

rlama api [--port PORT]

参数:

  • --port:(可选)API 服务器运行的端口号(默认:11249)

示例:

rlama api --port 8080

可用端点:

  1. 查询 RAG 系统 - POST /rag

    curl -X POST http://localhost:11249/rag \
      -H "Content-Type: application/json" \
      -d '{
        "rag_name": "documentation",
        "prompt": "如何安装该项目?",
        "context_size": 20
      }'
    

    请求字段:

    • rag_name(必填):要查询的 RAG 系统名称
    • prompt(必填):发送给 RAG 的问题或提示
    • context_size(可选):包含在上下文中的块数
    • model(可选):覆盖 RAG 使用的模型
  2. 检查服务器健康状态 - GET /health

    curl http://localhost:11249/health
    

集成示例:

// Node.js 示例
const response = await fetch('http://localhost:11249/rag', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    rag_name: 'my-docs',
    prompt: '总结主要特性'
  })
});
const data = await response.json();
console.log(data.response);

list - 列出 RAG 系统

显示所有可用的 RAG 系统列表。

rlama list

delete - 删除 RAG 系统

永久删除一个 RAG 系统及其所有已索引的文档。

rlama delete [rag-name] [--force/-f]

参数:

  • rag-name:要删除的 RAG 系统名称。
  • --force-f:(可选)无需确认直接删除。

示例:

rlama delete old-project

或者不需确认直接删除:

rlama delete old-project --force

list-docs - 列出 RAG 中的文档

显示 RAG 系统中所有文档及其元数据。

rlama list-docs [rag-name]

参数:

  • rag-name:RAG 系统名称

示例:

rlama list-docs documentation

list-chunks - 检查文档块

列出并筛选 RAG 系统中的文档块,提供多种选项:

# 基本块列表
rlama list-chunks [rag-name]

# 显示内容预览(前 100 个字符)
rlama list-chunks [rag-name] --show-content

# 按文档名/ID 子串过滤
rlama list-chunks [rag-name] --document=readme

# 组合选项
rlama list-chunks [rag-name] --document=api --show-content

选项:

  • --show-content:显示块内容预览
  • --document:按文档名/ID 子串过滤

输出列:

  • 块 ID(用于 view-chunk 命令)
  • 文档来源
  • 块位置(例如,“2/5”表示五个块中的第二个)
  • 内容预览(如果启用)
  • 创建日期

view-chunk - 查看块详情

显示特定块的详细信息。

rlama view-chunk [rag-name] [chunk-id]

参数:

  • rag-name:RAG 系统名称
  • chunk-id:来自 list-chunks 的块标识符

示例:

rlama view-chunk documentation doc123_chunk_0

add-docs - 向 RAG 添加文档

将新文档添加到现有 RAG 系统中。

rlama add-docs [rag-name] [folder-path] [flags]

参数:

  • rag-name:RAG 系统名称
  • folder-path:文档文件夹路径

示例:

rlama add-docs documentation ./new-docs --exclude-ext=.tmp

crawl-add-docs - 将网站内容添加到 RAG

将网站内容添加到现有 RAG 系统中。

rlama crawl-add-docs [rag-name] [website-url]

参数:

  • rag-name:RAG 系统名称
  • website-url:要抓取并添加到 RAG 的网站 URL

选项:

  • --max-depth:最大抓取深度(默认:2)
  • --concurrency:并发爬虫数量(默认:5)
  • --exclude-path:要排除的路径(逗号分隔)
  • --chunk-size:每个块的字符数(默认:1000)
  • --chunk-overlap:块之间的重叠字符数(默认:200)

示例:

# 将博客内容添加到现有 RAG
rlama crawl-add-docs my-docs https://blog.example.com

# 自定义抓取行为
rlama crawl-add-docs knowledge-base https://docs.example.com --max-depth=1 --exclude-path=/api

update-model - 更改 LLM 模型

更新 RAG 系统使用的 LLM 模型。

rlama update-model [rag-name] [new-model]

参数:

  • rag-name:RAG 系统名称
  • new-model:新的 Ollama 模型名称

示例:

rlama update-model documentation deepseek-r1:7b-instruct

update - 更新 RLAMA

检查是否有 RLAMA 的新版本,并进行安装。

rlama update [--force/-f]

选项:

  • --force-f:(可选)无需确认直接更新。

version - 显示版本

显示 RLAMA 的当前版本。

rlama --version

或者

rlama -v

hf-browse - 浏览 Hugging Face 上的 GGUF 模型

搜索并浏览 Hugging Face 上可用的 GGUF 模型。

rlama hf-browse [search-term] [flags]

参数:

  • search-term:(可选)搜索关键词(如“llama3”、“mistral”)

标志:

  • --open:在默认浏览器中打开搜索结果
  • --quant:指定量化类型以供推荐(如 Q4_K_M、Q5_K_M)
  • --limit:限制结果数量(默认:10)

示例:

# 搜索 GGUF 模型并显示命令行帮助
rlama hf-browse “llama 3”

# 打开浏览器查看搜索结果
rlama hf-browse mistral --open

# 指定量化建议进行搜索
rlama hf-browse phi --quant Q4_K_M

run-hf - 运行 Hugging Face GGUF 模型

使用 Ollama 直接运行 Hugging Face GGUF 模型。这在用其创建 RAG 系统之前测试模型时非常有用。

rlama run-hf [huggingface-model] [flags]

参数:

  • huggingface-model:Hugging Face 模型路径,格式为“用户名/仓库”

标志:

  • --quant:要使用的量化方式(如 Q4_K_M、Q5_K_M)

示例:

# 以聊天模式试用模型
rlama run-hf bartowski/Llama-3.2-1B-Instruct-GGUF

# 指定量化方式
rlama run-hf mlabonne/Meta-Llama-3.1-8B-Instruct-abliterated-GGUF --quant Q5_K_M

卸载

卸载 RLAMA:

移除二进制文件

如果您通过 go install 安装:

rlama uninstall

移除数据

RLAMA 的数据存储在 ~/.rlama 中。要移除它:

rm -rf ~/.rlama

支持的文档格式

RLAMA 支持多种文件格式:

  • 文本.txt.md.html.json.csv.yaml.yml.xml.org
  • 代码.go.py.js.java.c.cpp.cxx.h.rb.php.rs.swift.kt.ts.tsx.f.F.F90.el.svelte
  • 文档.pdf.docx.doc.rtf.odt.pptx.ppt.xlsx.xls.epub

建议通过 install_deps.sh 安装依赖项,以提升对某些格式的支持。

故障排除

Ollama 无法访问

如果遇到与 Ollama 的连接错误:

  1. 检查 Ollama 是否正在运行。
  2. 默认情况下,Ollama 必须可通过 http://localhost:11434 或由 OLLAMA_HOST 环境变量指定的主机和端口访问。
  3. 如果您的 Ollama 实例运行在不同的主机或端口上,请使用 --host--port 标志:
    rlama --host 192.168.1.100 --port 8000 list
    rlama --host my-ollama-server --port 11434 run my-rag
    
  4. 检查 Ollama 日志以查找潜在错误。

文本提取问题

如果某些格式出现问题:

  1. 通过 ./scripts/install_deps.sh 安装依赖项。
  2. 确保系统已安装所需工具(如 pdftotexttesseract 等)。

RAG 未找到相关信息

如果回答不相关:

  1. 使用 rlama list 检查文档是否已正确索引。
  2. 确保文档内容已正确提取。
  3. 尝试更精确地重新表述问题。
  4. 考虑在创建 RAG 时调整分块参数。

其他问题

如遇其他问题,请在 GitHub 仓库 上提交问题,并提供以下信息:

  1. 执行的确切命令。
  2. 命令的完整输出。
  3. 操作系统及架构。
  4. RLAMA 版本(rlama --version)。

配置 Ollama 连接

RLAMA 提供了多种连接到 Ollama 实例的方式:

  1. 命令行标志(优先级最高):

    rlama --host 192.168.1.100 --port 8080 run my-rag
    
  2. 环境变量

    # 格式:“host:port”或仅“host”
    export OLLAMA_HOST=remote-server:8080
    rlama run my-rag
    
  3. 默认值(若未指定其他方法则使用):

    • 主机:localhost
    • 端口:11434

优先级顺序为:命令行标志 > 环境变量 > 默认值。

高级用法

上下文大小管理

# 以最小上下文快速回答
rlama run my-docs --context-size=10

# 以最大上下文进行深度分析
rlama run my-docs --context-size=50

# 在速度与深度之间取得平衡
rlama run my-docs --context-size=30

带过滤条件的 RAG 创建

rlama rag llama3 my-project ./code \
  --exclude-dir=node_modules,dist \
  --process-ext=.go,.ts \
  --exclude-ext=.spec.ts

分块检查

# 列出分块并预览内容
rlama list-chunks my-project --show-content

# 筛选特定文档的分块
rlama list-chunks my-project --document=architecture

帮助系统

获取完整命令帮助:

rlama --help

特定命令帮助:

rlama rag --help
rlama list-chunks --help
rlama update-model --help

所有命令均支持全局 --host--port 标志,用于自定义 Ollama 连接。

优先级顺序为:命令行标志 > 环境变量 > 默认值。

Hugging Face 集成

RLAMA 现在支持通过 Ollama 的原生集成直接使用来自 Hugging Face 的 GGUF 模型:

浏览 Hugging Face 模型

# 搜索 Hugging Face 上的 GGUF 模型
rlama hf-browse "llama 3"

# 打开浏览器查看搜索结果
rlama hf-browse mistral --open

测试模型

在创建 RAG 之前,您可以直接测试 Hugging Face 模型:

# 以聊天模式尝试模型
rlama run-hf bartowski/Llama-3.2-1B-Instruct-GGUF

# 指定量化方式
rlama run-hf mlabonne/Meta-Llama-3.1-8B-Instruct-abliterated-GGUF --quant Q5_K_M

使用 Hugging Face 模型创建 RAG

在创建 RAG 系统时可使用 Hugging Face 模型:

# 使用 Hugging Face 模型创建 RAG
rlama rag hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF my-rag ./docs

# 使用特定量化
rlama rag hf.co/mlabonne/Meta-Llama-3.1-8B-Instruct-abliterated-GGUF:Q5_K_M my-rag ./docs

使用 OpenAI 模型

RLAMA 支持两种方式使用 OpenAI 模型:

方法一:默认 API 密钥(自动使用)

您可以在 Web 界面或通过环境变量设置默认的 OpenAI API 密钥。该密钥将自动用于所有 RLAMA 命令,无需指定配置文件。

通过 Web 界面:

  1. 导航至 设置 → 默认 API 密钥
  2. 输入您的 OpenAI API 密钥(以 sk- 开头)
  3. 单击 保存默认 API 密钥

通过环境变量:

export OPENAI_API_KEY="your-api-key"

使用默认密钥:

# 下列命令将自动使用您的默认 OpenAI API 密钥
rlama rag o3-mini my-rag ./documents
rlama rag gpt-4o another-rag ./docs
rlama update-model my-rag gpt-4o
rlama run my-rag

方法二:命名配置文件(特定使用)

为不同的 OpenAI 账户或组织创建命名配置文件。当需要在不同 API 密钥之间切换时,可使用这些配置文件。

创建配置文件:

# 为不同账户创建配置文件
rlama profile add work-account openai "sk-work-api-key"
rlama profile add personal-account openai "sk-personal-api-key"

使用命名配置文件:

# 使用 --profile 标志指定配置文件
rlama rag o3-mini work-rag ./documents --profile work-account
rlama rag gpt-4o personal-rag ./docs --profile personal-account
rlama update-model my-rag gpt-4o --profile work-account

可用的 OpenAI 模型(2025 年 1 月更新)

推理模型(o 系列)

模型 输入价格 输出价格 上下文长度 描述
o3-mini $1.10/1M $4.40/1M 20 万 最新推理模型,比 o1 便宜 93%
o1-pro $150.00/1M $600.00/1M 20 万 功能最强大的推理模型(企业版)
o1 $15.00/1M $60.00/1M 20 万 高级推理模型

GPT-4 系列

模型 输入价格 输出价格 上下文长度 描述
GPT-4.5 🆕 $75.00/1M $150.00/1M 12.8 万 自然对话,具备情感智能
GPT-4.1 🆕 $30.00/1M $60.00/1M 100 万 具有 100 万上下文窗口的最新 GPT-4
GPT-4.1-nano 🆕 $5.00/1M $15.00/1M 12.8 万 GPT-4.1 的轻量级版本
GPT-4o 🔥 $5.00/1M $15.00/1M 12.8 万 多模态,支持图像和音频
GPT-4o mini 💰 $0.15/1M $0.60/1M 12.8 万 GPT-4o 的高效版本

GPT-3.5 系列

模型 输入价格 输出价格 上下文长度 描述
GPT-3.5 Turbo $0.50/1M $1.50/1M 1.6 万 快速且经济实惠的模型

图例: ⭐ = 推荐,🆕 = 新增(2025 年),🔥 = 流行,💰 = 经济实惠

成本优化建议:

  • 对于重复内容,使用上下文缓存可降低 50% 的成本
  • 选择合适的上下文窗口大小
  • 针对特定用例测试多种模型
  • 在推理任务中考虑使用 o3-mini 以降低成本

注意:仅推理调用 OpenAI API。文档嵌入仍使用 Ollama 进行处理。

管理 API 配置文件

使用默认密钥(大多数用户推荐)

对于大多数用户来说,设置默认 API 密钥是最简单的方法:

通过 Web 界面:

  1. 打开 RLAMA Web 界面
  2. 转到 设置 → 默认 API 密钥
  3. 输入您的 OpenAI API 密钥
  4. 保存配置

命令将自动使用您的默认密钥:

# 无需 --profile 参数 - 自动使用默认密钥
rlama rag o3-mini my-rag ./documents
rlama update-model my-rag gpt-4o
rlama run my-rag

使用命名配置文件(高级用户)

适用于管理多个 OpenAI 账户或组织的用户:

创建命名配置文件

通过 CLI:

# 为不同环境创建配置文件
rlama profile add work-openai openai "sk-work-key..."
rlama profile add personal-openai openai "sk-personal-key..."

通过 Web 界面:

  1. 导航到 设置 → 命名配置文件
  2. 点击 “新建配置文件”
  3. 填写配置文件详细信息:
    • 名称:唯一标识符(例如 work-accountpersonal-account
    • 提供商:OpenAI(自动选择)
    • API 密钥:您的 OpenAI API 密钥(以 sk- 开头)
    • 描述:配置文件的可选描述

管理配置文件

# 列出所有配置文件
rlama profile list

# 删除一个配置文件
rlama profile delete old-profile

使用命名配置文件

# 使用 --profile 标志指定配置文件
rlama rag gpt-4o work-rag ./documents --profile work-openai
rlama rag o3-mini personal-rag ./documents --profile personal-openai

# 使用特定配置文件更新模型
rlama update-model work-rag gpt-4o --profile work-openai
rlama update-model personal-rag o3-mini --profile personal-openai

Web 界面功能

RLAMA Web 界面提供:

  • 实时验证 API 密钥格式
  • 安全存储,密钥显示为掩码形式
  • 集成示例 显示精确的 CLI 命令
  • 模型定价表,包含最新的 2025 年费率
  • 使用指南,适用于默认密钥和命名配置文件

各种方法的优势

默认 API 密钥:

  • ✅ 设置简单 - 一次配置,处处可用
  • ✅ 无需记住配置文件名称
  • ✅ 所有命令自动使用
  • ✅ 非常适合单个 OpenAI 账户用户

命名配置文件:

  • ✅ 可管理多个 API 密钥
  • ✅ 支持项目特定配置
  • ✅ 实现环境分离(开发/预发布/生产)
  • ✅ 方便切换组织账户
  • ✅ 提供使用跟踪审计线索

示例工作流程

简单工作流程(默认密钥)

# 1. 在 Web 界面设置默认 API 密钥(一次性设置)
# 2. 直接使用 RLAMA 命令 - 无需配置文件
rlama rag o3-mini my-docs ./docs
rlama run my-docs   # 自动使用默认密钥

高级工作流程(命名配置文件)

# 1. 为不同环境创建配置文件
rlama profile add dev-openai openai "sk-dev-key..."
rlama profile add prod-openai openai "sk-prod-key..."

# 2. 使用特定配置文件创建 RAG
rlama rag o3-mini dev-docs ./dev-docs --profile dev-openai
rlama rag gpt-4o prod-docs ./prod-docs --profile prod-openai

# 3. 使用与各自配置文件关联的 RAG
rlama run dev-docs   # 必须指定配置文件或使用默认
rlama run prod-docs  # 配置文件会为每个 RAG 记住

这种双重方法确保 RLAMA 既能无缝适用于简单的单账户使用场景,也能满足复杂的多账户企业级需求。

版本历史

v0.1.392025/05/24
v0.1.382025/05/24
v0.1.372025/05/24
v0.1.362025/04/03
v0.1.352025/04/01
v0.1.342025/03/22
v0.1.332025/03/21
v0.1.322025/03/16
v0.1.312025/03/16
v0.1.302025/03/16
v0.1.292025/03/13
v0.1.282025/03/12
v0.1.272025/03/12
v0.1.262025/03/12
v0.1.252025/03/11
v0.1.242025/03/10
v0.1.232025/03/09
v0.1.222025/03/08
v0.1.212025/03/08
v0.1.22025/03/08

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

158.1k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|今天
Agent插件

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|6天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像