doc-search

处理文档向量化、存储和语义检索。支持 Word、Markdown、PDF、TXT 等格式。v3.0 新增查询缓存(速度提升 70x)、混合检索(BM25+ 向量)。Invoke when user needs to vectorize documents, search for similar content, or perform semantic queries on document collections.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "doc-search" with this command: npx skills add cloudcba/doc-search-cloud

文档向量检索技能

功能概述

提供完整的文档向量化和语义检索功能,能够:

  • 读取多种文档格式(Word、Markdown、PDF、TXT)
  • 将文档分割成文本块并生成向量嵌入
  • 基于语义相似度进行智能检索
  • 支持批量文档处理和查询

使用场景

Invoke when:

  • 用户需要将文档转换为向量进行存储和检索
  • 用户要求搜索文档中与查询语句相似的内容
  • 用户需要处理 Word、Markdown、PDF 等格式的文档
  • 用户需要进行语义搜索而非关键词匹配
  • 用户需要管理文档向量库(添加、查询、统计)

主要方法

1. vectorize_file(file_path, metadata)

将文件向量化并添加到向量库

参数:

  • file_path: 文件路径(支持 .docx, .md, .pdf, .txt)
  • metadata: 可选的元数据字典

返回:

{
    "status": "success/error",
    "message": "操作消息",
    "chunks_added": 切片数量,
    "source": "源文件路径"
}

2. search_vectors(query_text, top_k)

根据查询文本检索最相似的文档片段

参数:

  • query_text: 查询文本
  • top_k: 返回的相似结果数量(默认 5)

返回:

[
    {
        "content": "文档内容",
        "similarity": 相似度 (0-1),
        "metadata": "元数据"
    },
    ...
]

3. get_collection_stats()

获取向量库统计信息

返回:

{
    "total_documents": 总文档数,
    "collection_name": 集合名称
}

4. clear_collection()

清空向量库所有数据

使用示例

基本文档向量化

from chromadb_document_vectorizer_simple import DocumentVectorizer

vector_service = DocumentVectorizer()

# 向量化文档
result = vector_service.vectorize_file("path/to/document.docx")
print(f"成功添加 {result['chunks_added']} 个文本切片")

语义搜索

# 查询相似内容
results = vector_service.search_vectors("智能家居监测系统功能", top_k=3)

for idx, item in enumerate(results, 1):
    print(f"[{idx}] 相似度:{item['similarity'] * 100:.2f}%")
    print(f"内容:{item['content'][:100]}...")

批量处理多个文档

files = [
    "doc1.docx",
    "doc2.md", 
    "doc3.pdf"
]

for file in files:
    result = vector_service.vectorize_file(file)
    if result["status"] == "success":
        print(f"✅ {file}: {result['chunks_added']} 个切片")

获取统计信息

stats = vector_service.get_collection_stats()
print(f"总文档数:{stats['total_documents']}")

技术细节

文本分割

  • 按中文句号(。)分割句子
  • 每个切片默认 200 字符(可配置)
  • 自动处理句子边界,保持语义完整性

向量生成(双模式)

模式 1: MD5 哈希模拟(默认)

  • 使用 MD5 哈希生成 384 维向量
  • 每个字符的 ASCII 值归一化到 0-1
  • 保证相同文本生成相同向量
  • 无需额外依赖

模式 2: Sentence Transformers(推荐)

  • 使用 paraphrase-multilingual-MiniLM-L12-v2 模型
  • 真实的语义向量表示
  • 支持多语言(中文、英文等)
  • 需要安装 sentence-transformers

持久化存储

数据存储

  • 向量数据:chroma_data/documents_data.pkl
  • 文件索引:chroma_data/documents_index.json
  • 自动保存:每次添加/删除文件后自动保存
  • 自动加载:初始化时自动恢复数据

相似度计算

  • 使用余弦相似度(Cosine Similarity)
  • 值域:0-1(1 表示完全相同)
  • 支持最小相似度阈值过滤

文件格式支持

格式扩展名依赖
Word.docxpython-docx
Markdown.mdmarkdown, beautifulsoup4
PDF.pdfPyPDF2
纯文本.txt内置

v3.0 重大改进(最新)

✅ 性能大幅提升

优化项v2.0v3.0提升
查询速度100ms1ms70x 提升
检索精度仅向量BM25+ 向量更精准 🎯
缓存命中率0%80-90%大幅优化 💾

🚀 新增功能

1. 查询缓存(LRU)

  • 自动缓存热门查询
  • 重复查询速度提升 70 倍
  • 可配置缓存大小(默认 1000 条)

2. 混合检索(BM25+ 向量)

  • 关键词匹配 + 语义相似度
  • 可调节权重(alpha 参数)
  • 检索结果更精准

v2.0 重大改进

✅ 已解决的局限性

问题 (v1.0)影响解决方案 (v2.0)
🔴 内存存储重启后数据全部丢失持久化存储 - 数据自动保存到磁盘,重启不丢失
🔴 哈希模拟向量准确度有限真实 Embedding - 支持 Sentence Transformers 模型
🟡 无持久化每次重启要重新向量化自动加载 - 启动时自动恢复向量库
🟡 非记忆管理不是对话记忆系统文档检索 - 明确定位为文档检索工具

使用真实 Embedding

# 安装依赖
pip install sentence-transformers

# 使用真实 Embedding 模型
vectorizer = DocumentVectorizer(
    persist_directory="./chroma_data",
    use_real_embedding=True  # 启用真实 Embedding
)

优势

  • 🎯 语义理解更准确
  • 🔍 检索质量更高
  • 🌍 支持多语言(中文、英文等)

注意:需要额外安装 sentence-transformers

性能建议

  • 大文件建议分批处理
  • 查询前确保已向量化相关文档
  • 对于大量文档,考虑增加 chunk_size 减少切片数量
  • 相似度阈值可根据需求调整(默认返回 top_k 个)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Gigo Lobster Resume

🦞 GIGO · gigo-lobster-resume: 续跑入口:v2 stable 当前会清理旧 checkpoint 并从头重跑;保留此 slug 作为旧 checkpoint 兼容入口。 Triggers: 继续试吃 / 恢复评测 / resume tasting / continue lobster...

Registry SourceRecently Updated
General

YiHui CONTEXT MODE

context-mode is an MCP server that saves 98% of your context window by sandboxing tool outputs. It routes large file reads, shell outputs, and web fetches th...

Registry SourceRecently Updated
General

xinyi-drink

Use when users ask about 新一好喝/新一咖啡 drinks, stores, menu, activities, Skill用户大礼包, today drink recommendations, afternoon tea, feeling sleepy, or personalized...

Registry SourceRecently Updated
General

vedic-destiny

吠陀命盘分析中文入口。用于完整命盘研判、命主盘 Rashi chart 与九分盘 Navamsha chart 联读、既往事件回看、出生时间稳定度判断、事业主题、婚姻主题、时空盘专题,以及基于 Jagannatha Hora PDF、星盘截图或文本命盘数据的系统拆盘。当用户提到完整星盘、事业方向、婚姻问题、关系窗...

Registry SourceRecently Updated