article
README
🚀 Remix 图标 MCP
一个强大的图标搜索和推荐服务,基于 Cloudflare Workers 构建,借助先进的语义匹配算法,为用户提供智能的图标发现功能。
🚀 快速开始
该项目使用 TypeScript 和 Cloudflare Workers 构建。主要功能在 RemixIconMCP 类中实现,该类继承自 WorkerEntrypoint。以下是项目的设置与部署步骤:
# 安装依赖
npm install
# 运行开发服务器
npm run dev
# 部署到 Cloudflare Workers
npm run deploy
# 运行测试
npm run test
✨ 主要特性
- 智能图标搜索:依据自然语言描述查找图标,运用多种相似性算法。
- 多语言支持:对英语和中文文本输入的支持进行了优化。
- 分类管理:可按类别浏览和搜索图标。
- 高级匹配:通过多种算法实现更优的搜索结果,包括 Jaccard 相似度、N - gram 匹配、分类匹配、精确匹配、Levenshtein 距离、名称匹配、标签基于匹配。
- 倒排索引:利用倒排索引实现快速初步搜索。
- 缓存:采用 LRU 缓存策略提升性能。
📚 详细文档
📄 API 接口
搜索图标
findIcons(description: string): ResponseContent[]
根据用户描述查找图标,返回前 5 个推荐结果及相似度评分。
获取图标分类
getIconCategories(): ResponseContent[]
返回所有可用的图标分类列表。
按分类搜索图标
findIconsByCategory(description: string, category: string): ResponseContent[]
在特定分类内根据描述查找图标,返回前 5 个推荐结果。
📁 项目结构
.
├── src/ # 源代码目录
│ ├── index.ts # 入口文件
│ ├── data/ # 数据文件包括图标目录
│ ├── domain/ # 域模型和服务
│ │ ├── icon/ # 图标域模型
│ │ └── search/ # 搜索功能模块
│ ├── infrastructure/ # 基础设施组件
│ │ ├── logging/ # 日志工具
│ │ └── result/ # 结果处理
│ └── utils/ # 工具函数
│ ├── similarity/ # 相似度计算算法
│ └── text/ # 文本处理工具
├── tests/ # 测试文件
│ ├── integration/ # 集成测试
│ └── unit/ # 单元测试
└── wrangler.jsonc # Cloudflare Workers配置文件
📋 响应格式
所有接口返回响应采用以下格式:
interface ResponseContent {
type: 'text';
text: string;
}
🔧 技术细节
- 基于 Cloudflare Workers 平台构建。
- 使用 LRU 缓存策略进行性能优化。
- 实现加权多算法相似度评分。
- 支持中英文文本的字符和单词级匹配。
- 可配置相似度阈值和权重。
- 使用倒排索引实现快速初步搜索。
⚙️ 性能优化
- 采用 LRU(最近最少使用)缓存策略,最大缓存大小为 2000 条目。
- 最低分数阈值为 0.08。
- 对中英文文本进行优化的相似度计算。
- 采用两级搜索策略:先通过倒排索引获取快速初步结果,随后进行详细评分。
微信扫一扫