运行时依赖
安装命令
点击复制技能文档
FileChat RAG 技能 您的个人 RAG(检索增强生成)文档库,由 Google Drive 支持。支持多个 Google Drive 文件夹动态选择,并允许在 Gemini 或 OpenAI 之间选择用于 embeddings。
设置和初始化 如果用户要求使用 FileChat 或询问有关其文件的问题,首先验证所需的环境变量是否在 /workspace/skills/filechat/.env 中设置: EMBEDDING_PROVIDER(要么是 gemini,要么是 openai) GEMINI_API_KEY 或 OPENAI_API_KEY(取决于提供者) 如果它们缺失,停止并要求用户提供它们。创建 .env 文件,如下所示: echo "EMBEDDING_PROVIDER=gemini" > ./skills/filechat/.env echo "GEMINI_API_KEY=your_key_here" >> ./skills/filechat/.env
如何同步库 当用户要求“同步”、“刷新”或“更新”特定的 FileChat 文件夹时,必须运行 ingestion 脚本。这连接到 Google Drive,下载所有新/更改的文件(包括 PDF,解析快捷方式和遍历子文件夹),分块文本,获取 embeddings,并将其保存到本地 JSON 向量数据库中,按文件夹 ID 键控。必须向脚本提供 FOLDER_ID。如果不知道用户想要的文件夹 ID,询问他们。 cd ./skills/filechat && node sync.js
如何回答用户问题(RAG) 当用户询问有关其文档内容的问题时,必须查询本地向量存储以获取相关文本块。需要文件夹 ID。 cd ./skills/filechat && node query.js "我的医疗解除说明说什么?" 输出将为您提供最相关的文本片段,原始文件名和 Google Drive 文件 ID。使用文本片段来为用户制定综合答案。始终引用所引用的文件名。
如何检索和发送物理文件 如果用户要求实际文件(例如“发送给我医疗解除的 PDF”),首先使用 query 脚本找到文件 ID。然后,使用 gws CLI 将文件下载到您的工作空间中: gws drive files get --params '{"fileId": "", "alt": "media"}' --output /workspace/discharge.pdf 然后,使用 OpenClaw 媒体附件语法回复用户:MEDIA:/workspace/discharge.pdf 以将物理文件直接发送到其聊天窗口中。
如何为用户存储新文件 如果用户上传文件并要求您“存储”或“保存”它: 使用 gws 将其上传到其特定的 FileChat Google Drive 文件夹中: gws drive files create \ --json '{"name": "filename.pdf", "parents": [""]}' \ --upload /path/to/uploaded/file.pdf 触发同步过程,以便新文件可以被向量数据库立即读取: cd ./skills/filechat && node sync.js