用途
GrepAI Search Tips 是一个用于提升 GrepAI 语义搜索结果质量的技能,主要提供编写有效语义搜索查询的技巧与最佳实践。它适用于以下场景:改善搜索结果质量、学习语义搜索技术、理解如何组织查询语句、排查搜索结果不佳的问题。
语义搜索思维
该技能强调语义搜索与文本搜索(grep)的思维差异:文本搜索查找精确文本,语义搜索查找含义与意图。例如,文本搜索使用 "getUserById" 进行字面匹配,而语义搜索应使用 "retrieve user from database by ID" 进行概念匹配。
查询编写原则
技能给出五条核心原则:
- 描述意图而非实现。例如用 "fetch user record from database using ID" 替代 "getUserById",用 "error handling and response to client" 替代 "handleError"。
- 使用描述性语言。例如用 "user authentication and authorization" 替代 "auth",用 "database connection and queries" 替代 "db"。
- 明确上下文。例如用 "validate email address format" 替代 "validation",用 "parse JSON request body" 替代 "parse"。
- 使用 3-7 个词。过短如 "auth" 含义模糊,过长则过于冗长,"user authentication middleware" 是合适长度。
- 使用英文。嵌入模型主要基于英文训练,即使代码注释为其他语言,英文查询效果最佳。
查询模式
技能提供了多种查询模式示例,包括:按行为查找代码(如 "validate user credentials before login")、按用途查找代码(如 "middleware that checks authentication")、查找错误处理(如 "handle errors from API calls")、查找数据操作(如 "save user to database")、查找配置(如 "load configuration from environment")、查找安全代码(如 "password hashing and verification")。
迭代优化
如果结果不理想,可逐步迭代:先宽泛搜索(如 "authentication"),再添加上下文(如 "JWT authentication"),最后具体化(如 "JWT token validation middleware")。也可尝试同义词替换、领域特定术语以及问句式查询(如 "how are users authenticated")。
常见错误
技能列出应避免的做法:不要使用精确函数名(应使用 grep)、不要过于抽象(如 "business logic")、不要使用代码语法(如 "function() { return }")、不要过度指定(如提及无关的 TypeScript、axios 等细节)。
结果解读
技能给出相似度分数的参考:高分(0.85+)为强匹配;中分(0.70-0.84)为相关代码;低分(0.60-0.69)为弱相关,建议优化查询;极低分(<0.60)为弱匹配,概念可能不存在或查询需重写。
无结果时的排查
当 GrepAI 找不到结果时,可检查索引状态(grepai status)、确认文件未被忽略、尝试更简单的查询、更换同义词,或确认代码是否确实存在。
限制
该技能仅提供查询编写建议,不涉及 GrepAI 的安装、配置、收费或平台支持等信息,这些内容暂未提供。