项目简介

lil-rag是一个功能丰富的RAG(检索增强生成)系统,旨在帮助AI助手更好地理解和利用您的私有文档。它支持多种文件格式(PDF, DOCX, XLSX, HTML, CSV, TXT, 图像),能进行高效的语义搜索和上下文感知聊天。lil-rag通过MCP服务器接口,可以无缝集成到支持Model Context Protocol的AI客户端中,为LLM提供强大的知识检索和功能调用能力。

主要功能点

  • 语义向量搜索: 利用SQLite的'sqlite-vec'扩展,进行高级语义相似度搜索。
  • 多格式文档支持: 本地解析PDF、DOCX、XLSX、HTML、CSV、文本文件和图像(通过OCR)。
  • 文档管理: 提供索引、列表、删除文档等全面的CRUD操作。
  • RAG驱动的交互式聊天: 基于文档上下文生成回答,并提供来源引用。
  • MCP服务器接口: 作为AI助手的后端,提供工具调用和上下文信息。
  • 智能存储: 自动压缩和智能去重,优化存储效率。

安装步骤

  1. 安装Go: 确保您的系统已安装Go 1.21+版本并支持CGO。
  2. 安装Ollama: 访问'ollama.ai'安装Ollama,并拉取一个嵌入模型(如'ollama pull nomic-embed-text')和一个聊天模型(如'ollama pull llama3.2')。
  3. 构建和安装lil-rag-mcp服务器:
    # 克隆仓库
    git clone https://github.com/streed/lil-rag.git
    cd lil-rag
    
    # 构建MCP服务器二进制文件
    make build-mcp
    
    # (可选)安装到您的PATH路径,例如:
    # make install
    或者,您也可以直接通过Go安装:
    go install github.com/streed/lil-rag/cmd/lil-rag-mcp@latest

服务器配置(MCP客户端使用)

MCP客户端需要MCP服务器的启动命令和参数来与其建立连接。lil-rag MCP服务器通过命令行参数或环境变量进行配置。

以下是一个MCP客户端配置示例,用于告诉客户端如何启动并连接到lil-rag MCP服务器。MCP客户端通常以JSON格式存储此类配置信息。

{
  "name": "lil-rag",
  "description": "文档搜索与知识管理系统,提供文档索引、语义搜索和RAG聊天能力。",
  "command": "lil-rag-mcp",
  "args": [],
  "env": {
    "LILRAG_DB_PATH": "/path/to/your/lilrag.db",
    "LILRAG_DATA_DIR": "/path/to/your/data",
    "LILRAG_OLLAMA_URL": "http://localhost:11434",
    "LILRAG_MODEL": "nomic-embed-text",
    "LILRAG_CHAT_MODEL": "llama3.2",
    "LILRAG_VECTOR_SIZE": "768",
    "LILRAG_MAX_TOKENS": "256",
    "LILRAG_OVERLAP": "38",
    "LILRAG_IMAGE_MAX_SIZE": "1120"
  },
  "tools": [
    {
      "name": "lilrag_index",
      "description": "索引文本内容到RAG系统。",
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": { "type": "string", "description": "要索引的文本内容" },
          "id": { "type": "string", "description": "(可选)文档ID,未提供则自动生成" }
        },
        "required": ["text"]
      }
    },
    {
      "name": "lilrag_index_file",
      "description": "索引文件(支持多种格式:.txt, .pdf, .docx, .xlsx, .html, .csv, 图像)。",
      "inputSchema": {
        "type": "object",
        "properties": {
          "file_path": { "type": "string", "description": "要索引的文件路径" },
          "id": { "type": "string", "description": "(可选)文档ID,未提供则使用文件名" }
        },
        "required": ["file_path"]
      }
    },
    {
      "name": "lilrag_search",
      "description": "使用语义相似度在RAG系统中搜索相关内容。",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": { "type": "string", "description": "搜索查询" },
          "limit": { "type": "integer", "description": "(可选)最大结果数(默认10,最大50)" }
        },
        "required": ["query"]
      }
    },
    {
      "name": "lilrag_chat",
      "description": "进行RAG上下文的交互式聊天——提问并获取包含相关来源的回答。",
      "inputSchema": {
        "type": "object",
        "properties": {
          "message": { "type": "string", "description": "问题或消息" },
          "limit": { "type": "integer", "description": "(可选)用于上下文的最大来源文档数(默认5,最大20)" }
        },
        "required": ["message"]
      }
    },
    {
      "name": "lilrag_list_documents",
      "description": "列出所有已索引的文档及其元数据。",
      "inputSchema": { "type": "object", "properties": {}, "required": [] }
    },
    {
      "name": "lilrag_delete_document",
      "description": "从RAG系统中删除一个文档及其所有分块。",
      "inputSchema": {
        "type": "object",
        "properties": {
          "document_id": { "type": "string", "description": "要删除的文档ID" }
        },
        "required": ["document_id"]
      }
    }
  ]
}

请注意:

  • '/path/to/your/lilrag.db' 和 '/path/to/your/data' 需要替换为您的实际文件路径。
  • 'LILRAG_OLLAMA_URL' 应指向您的Ollama服务器地址。
  • 'LILRAG_MODEL', 'LILRAG_CHAT_MODEL', 'LILRAG_VECTOR_SIZE' 等参数应与您的Ollama模型和系统配置匹配。
  • 'tools' 字段描述了lil-rag MCP服务器提供的功能,您的MCP客户端可以根据这些定义来调用相应工具。

基本使用方法

  1. 启动Ollama和拉取模型: 确保Ollama服务器正在运行,并已拉取嵌入模型和聊天模型。
    ollama serve
    ollama pull nomic-embed-text
    ollama pull llama3.2
  2. (可选)初始化配置文件: 运行'lil-rag config init'生成默认配置文件,路径通常在'~/.lilrag/config.json'。您可以修改此文件或使用环境变量/命令行参数来配置MCP服务器。
  3. 启动MCP服务器:
    lil-rag-mcp
    MCP服务器默认通过标准输入/输出(stdio)与客户端通信。它会监听来自客户端的JSON-RPC请求,并发送JSON-RPC响应。
  4. 与MCP客户端集成: 将上述MCP客户端配置信息提供给您的AI助手或MCP客户端应用。客户端将使用'lil-rag-mcp'命令启动服务器,并通过JSON-RPC协议调用服务器提供的工具来索引文档、执行搜索或进行上下文聊天。

信息

分类

AI与计算