← 返回
未分类 Key 中文

Google Drive based RAG

Search, retrieve, and chat with documents securely stored in a designated Google Drive folder using semantic vector search (RAG RAG). Use when: (1) a user as...
在指定的 Google Drive 文件夹中安全存储的文档,使用语义向量检索(RAG)进行搜索、检索和聊天。适用于:(1)用户...
eladrave
未分类 clawhub v1.0.0 1 版本 100000 Key: 需要
★ 0
Stars
📥 371
下载
💾 0
安装
1
版本
#latest

概述

FileChat Skill

Your personal RAG (Retrieval-Augmented Generation) document library backed by Google Drive.

Setup & Bootstrap

If the user asks to use FileChat or asks a question about their files, FIRST verify that the required environment variables are set in /workspace/skills/filechat/.env:

  1. GEMINI_API_KEY (For the embedding model text-embedding-004)
  2. FILECHAT_DRIVE_FOLDER_ID (The root Google Drive folder ID to index)

If they are missing, STOP and ask the user to provide them.

(To find the folder ID, they can look at the URL of the folder in Google Drive: https://drive.google.com/drive/folders/)

Create the .env file like this:

echo "GEMINI_API_KEY=your_key_here" > ./skills/filechat/.env
echo "FILECHAT_DRIVE_FOLDER_ID=your_folder_id_here" >> ./skills/filechat/.env

How to Sync the Library

When the user asks to "sync", "flush", or "update" their FileChat library, you must run the ingestion script. This connects to Google Drive, downloads all new/changed files (including PDFs, resolving shortcuts, and traversing sub-folders), chunks the text, gets embeddings, and saves them to a local ChromaDB.

cd ./skills/filechat && node sync.js

(Warning: The first sync may take a few minutes depending on the folder size.)

How to Answer User Questions (RAG)

When a user asks a question about the contents of their documents (e.g., "What does my medical discharge say?"), you MUST query the local ChromaDB vector store to fetch the relevant text chunks.

cd ./skills/filechat && node query.js "What does my medical discharge say?"

The output will give you the most relevant text snippets, the original file names, and the Google Drive File IDs.

Use the text snippets to formulate a comprehensive answer for the user. Always cite the file name you are referencing.

How to Retrieve and Send a Physical File

If the user asks for the actual file (e.g., "Send me the discharge PDF"), first find the File ID using the query script (if you don't already know it).

Then, use the gws CLI to download the file into your workspace:

gws drive files get --params '{"fileId": "<FILE_ID>", "alt": "media"}' > /workspace/discharge.pdf

Then, reply to the user using the OpenClaw media attachment syntax: MEDIA:/workspace/discharge.pdf to send the physical file directly to their chat window.

How to Store a New File for the User

If the user uploads a file and asks you to "store" or "save" it:

  1. Upload it to their FileChat Google Drive folder using gws:

```bash

gws drive files create \

--json '{"name": "filename.pdf", "parents": [""]}' \

--upload /path/to/uploaded/file.pdf

```

  1. Trigger the sync process so the new file is immediately readable by the vector database:

```bash

cd ./skills/filechat && node sync.js

```

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-03 09:31 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

Oz CLI Remote Node

eladrave
在 Oz Build Node 上通过 CLI 执行命令或任务,支持模式控制和直接运行 Bash 命令。
★ 0 📥 391

composio cli

eladrave
通过 Composio 使用 1000+ 外部应用——直接使用 CLI 或用 SDK 构建 AI 代理和应用。
★ 0 📥 421

Filechat

eladrave
在任意 Google Drive 文件夹中安全存储的文档上,使用语义向量搜索(RAG)进行搜索、检索和聊天。适用时机:①用户请求保存...
★ 0 📥 487