[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-shibing624--similarities":3,"tool-shibing624--similarities":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",147882,2,"2026-04-09T11:32:47",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,"2026-04-08T11:23:26",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":88,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":32,"env_os":92,"env_gpu":93,"env_ram":94,"env_deps":95,"category_tags":108,"github_topics":109,"view_count":32,"oss_zip_url":80,"oss_zip_packed_at":80,"status":17,"created_at":121,"updated_at":122,"faqs":123,"releases":164},5961,"shibing624\u002Fsimilarities","similarities","Similarities: a toolkit for similarity calculation and semantic search. 相似度计算、匹配搜索工具包，支持亿级数据文搜文、文搜图、图搜图，python3开发，开箱即用。","similarities 是一款专为高效相似度计算与语义搜索打造的 Python 工具包。它旨在解决海量数据中“找相似”的难题，无论是寻找意思相近的句子，还是检索内容匹配的图片，都能轻松应对。\n\n对于开发者和研究人员而言，similarities 提供了开箱即用的解决方案。在文本领域，它不仅支持基于 CoSENT 等先进模型的深度语义匹配，能精准理解中英文及多语言句子的含义，还涵盖了 BM25、SimHash 等传统字面匹配算法。在图像与跨模态领域，similarities 集成了强大的 CLIP 模型，实现了“文搜图”、“图搜图”甚至“向量搜图”功能，让机器能像人一样理解图片与文字的联系。\n\n其核心技术亮点在于卓越的扩展性与灵活性。similarities 底层优化了 Faiss、Annoy 等检索引擎，支持亿级数据的高效检索与 GPU 加速，同时提供多种距离计算公式以适应不同场景。工具包设计友好，既支持简单的几行代码调用，也提供命令行工具进行大规模向量化、建索引及服务部署，更包含基于 FastAPI 和 Gradio 的前后端演示示例。无论你是需要构建智能客服问答系统、搭建企业知识","similarities 是一款专为高效相似度计算与语义搜索打造的 Python 工具包。它旨在解决海量数据中“找相似”的难题，无论是寻找意思相近的句子，还是检索内容匹配的图片，都能轻松应对。\n\n对于开发者和研究人员而言，similarities 提供了开箱即用的解决方案。在文本领域，它不仅支持基于 CoSENT 等先进模型的深度语义匹配，能精准理解中英文及多语言句子的含义，还涵盖了 BM25、SimHash 等传统字面匹配算法。在图像与跨模态领域，similarities 集成了强大的 CLIP 模型，实现了“文搜图”、“图搜图”甚至“向量搜图”功能，让机器能像人一样理解图片与文字的联系。\n\n其核心技术亮点在于卓越的扩展性与灵活性。similarities 底层优化了 Faiss、Annoy 等检索引擎，支持亿级数据的高效检索与 GPU 加速，同时提供多种距离计算公式以适应不同场景。工具包设计友好，既支持简单的几行代码调用，也提供命令行工具进行大规模向量化、建索引及服务部署，更包含基于 FastAPI 和 Gradio 的前后端演示示例。无论你是需要构建智能客服问答系统、搭建企业知识库，还是探索多模态检索应用，similarities 都能助你快速落地原型并投入生产。","[**🇨🇳中文**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002FREADME.md) | [**🌐English**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002FREADME_EN.md) | [**📖文档\u002FDocs**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fwiki) | [**🤖模型\u002FModels**](https:\u002F\u002Fhuggingface.co\u002Fshibing624) \n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_da2c8462ba3e.png\" height=\"150\" alt=\"Logo\">\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n-----------------\n\n# Similarities: Similarity Calculation and Semantic Search\n[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fsimilarities.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fsimilarities)\n[![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_9c268d028339.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fsimilarities)\n[![Contributions welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcontributions-welcome-brightgreen.svg)](CONTRIBUTING.md)\n[![License Apache 2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg)](LICENSE)\n[![python_version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.5%2B-green.svg)](requirements.txt)\n[![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fshibing624\u002Fsimilarities.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fissues)\n[![Wechat Group](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fwechat-group-green.svg?logo=wechat)](#Contact)\n\n\n**similarities**: a toolkit for similarity calculation and semantic search, supports text and image. 相似度计算、语义匹配搜索工具包。\n\n**similarities** 实现了多种文本和图片的相似度计算、语义匹配检索算法，支持亿级数据文搜文、文搜图、图搜图，python3开发，pip安装，开箱即用。\n\n**Guide**\n\n- [Features](#Features)\n- [Install](#install)\n- [Usage](#usage)\n- [Contact](#Contact)\n- [Acknowledgements](#Acknowledgements)\n\n## Features\n\n### 文本相似度计算 + 文本搜索\n\n- 语义匹配模型【推荐】：本项目基于text2vec实现了CoSENT模型的文本相似度计算和文本搜索\n  - 支持中英文、多语言多种SentenceBERT类预训练模型\n  - 支持 Cos Similarity\u002FDot Product\u002FHamming Distance\u002FEuclidean Distance 等多种相似度计算方法\n  - 支持 SemanticSearch\u002FFaiss\u002FAnnoy\u002FHnsw 等多种文本搜索算法\n  - 支持亿级数据高效检索\n  - 支持命令行文本转向量（多卡）、建索引、批量检索、启动服务\n- 字面匹配模型：本项目实现了Word2Vec、BM25、RankBM25、TFIDF、SimHash、同义词词林、知网Hownet义原匹配等多种字面匹配模型\n\n\n### 图像相似度计算\u002F图文相似度计算 + 图搜图\u002F文搜图\n- CLIP(Contrastive Language-Image Pre-Training)模型：图文匹配模型，可用于图文特征（embeddings）、相似度计算、图文检索、零样本图片分类，本项目基于PyTorch实现了CLIP模型的向量表征、构建索引（基于AutoFaiss）、批量检索、后台服务（基于FastAPI）、前端展现（基于Gradio）功能\n  - 支持[openai\u002Fclip-vit-base-patch32](https:\u002F\u002Fhuggingface.co\u002Fopenai\u002Fclip-vit-base-patch32)等CLIP系列模型\n  - 支持[OFA-Sys\u002Fchinese-clip-vit-huge-patch14](https:\u002F\u002Fhuggingface.co\u002FOFA-Sys\u002Fchinese-clip-vit-huge-patch14)等Chinese-CLIP系列模型\n  - 支持前后端分离部署，FastAPI后端服务，Gradio前端展现\n  - 支持亿级数据高效检索，基于Faiss检索，支持GPU加速\n  - 支持图搜图、文搜图、向量搜图\n  - 支持图像embedding提取、文本embedding提取\n  - 支持图像相似度计算、图文相似度计算\n  - 支持命令行图像转向量（多卡）、建索引、批量检索、启动服务\n- 图像特征提取：本项目基于cv2实现了pHash、dHash、wHash、aHash、SIFT等多种图像特征提取算法\n\n## Demo\nImage Search Demo: https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshibing624\u002FCLIP-Image-Search\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_9459b9f92c78.png)\n\nText Search Demo: https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshibing624\u002Fsimilarities\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_106ceba13406.png)\n\n\n## Install\n\n```\npip install torch # conda install pytorch\npip install -U similarities\n```\n\nor\n\n```\ngit clone https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities.git\ncd similarities\npip install -e .\n```\n\n## Usage\n\n### 1. 文本向量相似度计算\n\nexample: [examples\u002Ftext_similarity_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ftext_similarity_demo.py)\n\n\n```python\nfrom similarities import BertSimilarity\nm = BertSimilarity(model_name_or_path=\"shibing624\u002Ftext2vec-base-chinese\")\nr = m.similarity('如何更换花呗绑定银行卡', '花呗更改绑定银行卡')\nprint(f\"similarity score: {float(r)}\")  # similarity score: 0.855146050453186\n```\n\n- `model_name_or_path`：模型名称或者路径，默认会从HF model hub下载并使用中文语义匹配模型[shibing624\u002Ftext2vec-base-chinese](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Ftext2vec-base-chinese)，如果需要多语言，可以替换为[shibing624\u002Ftext2vec-base-multilingual](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Ftext2vec-base-multilingual)模型，支持中、英、韩、日、德、意等多国语言\n\n### 2. 文本向量搜索\n\n在文档候选集中找与query最相似的文本，常用于QA场景的问句相似匹配、文本搜索等任务。\n\n#### SemanticSearch精准搜索算法，Cos Similarity + topK 聚类检索，适合百万内数据集\n\nexample: [examples\u002Ftext_semantic_search_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ftext_semantic_search_demo.py)\n\n#### Annoy、Hnswlib等近似搜索算法，适合百万级数据集\n\nexample: [examples\u002Ffast_text_semantic_search_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ffast_text_semantic_search_demo.py)\n\n#### Faiss高效向量检索，适合亿级数据集\n\n- 文本转向量，建索引，批量检索，启动服务：[examples\u002Ffaiss_bert_search_server_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ffaiss_bert_search_server_demo.py)\n\n- 前端python调用：[examples\u002Ffaiss_bert_search_client_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ffaiss_bert_search_client_demo.py)\n\n\n### 3. 基于字面的文本相似度计算和文本搜索\n\n支持同义词词林（Cilin）、知网Hownet、词向量（WordEmbedding）、Tfidf、SimHash、BM25等算法的相似度计算和字面匹配搜索，常用于文本匹配冷启动。\n\nexample: [examples\u002Fliteral_text_semantic_search_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Fliteral_text_semantic_search_demo.py)\n\n### 4. 图像相似度计算和图片搜索\n\n支持CLIP、pHash、SIFT等算法的图像相似度计算和匹配搜索，中文CLIP模型支持图搜图，文搜图、还支持中英文图文互搜。\n\nexample: [examples\u002Fimage_semantic_search_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Fimage_semantic_search_demo.py)\n\n![image_sim](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_27cb96c7517c.png)\n\n\n#### Faiss高效向量检索，适合亿级数据集\n\n- 图像转向量，建索引，批量检索，启动服务：[examples\u002Ffaiss_clip_search_server_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ffaiss_clip_search_server_demo.py)\n\n- 前端python调用：[examples\u002Ffaiss_clip_search_client_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ffaiss_clip_search_client_demo.py)\n\n- 前端gradio调用：[examples\u002Ffaiss_clip_search_gradio_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ffaiss_clip_search_gradio_demo.py)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_9333c5f08d00.png\"\u002F>\n\n### 5. 聚类\n\n通过社群发现（community_detection）算法可以在大规模数据集上执行聚类，寻找聚类簇（即相似的句子组）。\n\nexample: [examples\u002Ftext_clustering_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ftext_clustering_demo.py)\n\n\n### 6. 图文语义去重\n\n通过同义句挖掘（paraphrase_mining_embeddings）算法可以从大量句子或文档集中挖掘出具有相似意义的句子对，可用于冗余图文检测，语义去重。\n\n- 文本语义去重：[examples\u002Ftext_duplicates_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ftext_duplicates_demo.py)\n- 图片语义去重：[examples\u002Fimage_duplicates_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Fimage_duplicates_demo.py)\n\n### 命令行模式（CLI）\n\n- 支持批量获取文本向量、图像向量（embedding）\n- 支持构建索引（index）\n- 支持批量检索（filter）\n- 支持启动服务（server）\n\ncode: [cli.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fsimilarities\u002Fcli.py)\n\n```\n> similarities -h                                    \n\nNAME\n    similarities\n\nSYNOPSIS\n    similarities COMMAND\n\nCOMMANDS\n    COMMAND is one of the following:\n\n     bert_embedding\n       Compute embeddings for a list of sentences\n\n     bert_index\n       Build indexes from text embeddings using autofaiss\n\n     bert_filter\n       Entry point of bert filter, batch search index\n\n     bert_server\n       Main entry point of bert search backend, start the server\n\n     clip_embedding\n       Embedding text and image with clip model\n\n     clip_index\n       Build indexes from embeddings using autofaiss\n\n     clip_filter\n       Entry point of clip filter, batch search index\n\n     clip_server\n       Main entry point of clip search backend, start the server\n```\n\nrun：\n\n```shell\npip install similarities -U\nsimilarities clip_embedding -h\n\n# example\ncd examples\nsimilarities clip_embedding data\u002Ftoy_clip\u002F\n```\n\n- `bert_embedding`等是二级命令，bert开头的是文本相关，clip开头的是图像相关\n- 各二级命令使用方法见`similarities clip_embedding -h`\n- 上面示例中`data\u002Ftoy_clip\u002F`是`clip_embedding`方法的`input_dir`参数，输入文件目录（required）\n\n\n\n## Contact\n\n- Issue(建议)\n  ：[![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fshibing624\u002Fsimilarities.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fissues)\n- 邮件我：xuming: xuming624@qq.com\n- 微信我： 加我*微信号：xuming624, 备注：姓名-公司-NLP* 进NLP交流群。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_3dce032d5680.jpeg\" width=\"200\" \u002F>\n\n## Citation\n\n如果你在研究中使用了similarities，请按如下格式引用：\n\nAPA:\n\n```\nXu, M. Similarities: Compute similarity score for humans (Version 1.0.1) [Computer software]. https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\n```\n\nBibTeX:\n\n```\n@misc{Xu_Similarities_Compute_similarity,\n  title={Similarities: similarity calculation and semantic search toolkit},\n  author={Xu Ming},\n  year={2022},\n  howpublished={\\url{https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities}},\n}\n```\n\n## License\n\n授权协议为 [The Apache License 2.0](\u002FLICENSE)，可免费用做商业用途。请在产品说明中附加similarities的链接和授权协议。\n\n## Contribute\n\n项目代码还很粗糙，如果大家对代码有所改进，欢迎提交回本项目，在提交之前，注意以下两点：\n\n- 在`tests`添加相应的单元测试\n- 使用`python -m pytest`来运行所有单元测试，确保所有单测都是通过的\n\n之后即可提交PR。\n\n## Acknowledgements \n\n- [A Simple but Tough-to-Beat Baseline for Sentence Embeddings[Sanjeev Arora and Yingyu Liang and Tengyu Ma, 2017]](https:\u002F\u002Fopenreview.net\u002Fforum?id=SyK00v5xx)\n- [https:\u002F\u002Fgithub.com\u002Fliuhuanyong\u002FSentenceSimilarity](https:\u002F\u002Fgithub.com\u002Fliuhuanyong\u002FSentenceSimilarity)\n- [https:\u002F\u002Fgithub.com\u002Fqwertyforce\u002Fimage_search](https:\u002F\u002Fgithub.com\u002Fqwertyforce\u002Fimage_search)\n- [ImageHash - Official Github repository](https:\u002F\u002Fgithub.com\u002FJohannesBuchner\u002Fimagehash)\n- [https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP](https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP)\n- [https:\u002F\u002Fgithub.com\u002FOFA-Sys\u002FChinese-CLIP](https:\u002F\u002Fgithub.com\u002FOFA-Sys\u002FChinese-CLIP)\n- [https:\u002F\u002Fgithub.com\u002FUKPLab\u002Fsentence-transformers](https:\u002F\u002Fgithub.com\u002FUKPLab\u002Fsentence-transformers)\n- [https:\u002F\u002Fgithub.com\u002From1504\u002Fclip-retrieval](https:\u002F\u002Fgithub.com\u002From1504\u002Fclip-retrieval)\n\nThanks for their great work!\n","[**🇨🇳中文**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002FREADME.md) | [**🌐English**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002FREADME_EN.md) | [**📖文档\u002FDocs**](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fwiki) | [**🤖模型\u002FModels**](https:\u002F\u002Fhuggingface.co\u002Fshibing624) \n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_da2c8462ba3e.png\" height=\"150\" alt=\"Logo\">\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n-----------------\n\n# Similarities: 相似度计算与语义搜索\n[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fsimilarities.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fsimilarities)\n[![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_9c268d028339.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fsimilarities)\n[![Contributions welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcontributions-welcome-brightgreen.svg)](CONTRIBUTING.md)\n[![License Apache 2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg)](LICENSE)\n[![python_version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.5%2B-green.svg)](requirements.txt)\n[![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fshibing624\u002Fsimilarities.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fissues)\n[![Wechat Group](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fwechat-group-green.svg?logo=wechat)](#Contact)\n\n\n**similarities**: 一个用于相似度计算和语义搜索的工具包，支持文本和图像。相似度计算、语义匹配搜索工具包。\n\n**similarities** 实现了多种文本和图片的相似度计算、语义匹配检索算法，支持亿级数据文搜文、文搜图、图搜图，python3开发，pip安装，开箱即用。\n\n**指南**\n\n- [功能特性](#Features)\n- [安装](#install)\n- [使用方法](#usage)\n- [联系方式](#Contact)\n- [致谢](#Acknowledgements)\n\n## 功能特性\n\n### 文本相似度计算 + 文本搜索\n\n- 语义匹配模型【推荐】：本项目基于text2vec实现了CoSENT模型的文本相似度计算和文本搜索\n  - 支持中英文、多语言多种SentenceBERT类预训练模型\n  - 支持 Cos Similarity\u002FDot Product\u002FHamming Distance\u002FEuclidean Distance 等多种相似度计算方法\n  - 支持 SemanticSearch\u002FFaiss\u002FAnnoy\u002FHnsw 等多种文本搜索算法\n  - 支持亿级数据高效检索\n  - 支持命令行文本转向量（多卡）、建索引、批量检索、启动服务\n- 字面匹配模型：本项目实现了Word2Vec、BM25、RankBM25、TFIDF、SimHash、同义词词林、知网Hownet义原匹配等多种字面匹配模型\n\n\n### 图像相似度计算\u002F图文相似度计算 + 图搜图\u002F文搜图\n- CLIP(Contrastive Language-Image Pre-Training)模型：图文匹配模型，可用于图文特征（embeddings）、相似度计算、图文检索、零样本图片分类，本项目基于PyTorch实现了CLIP模型的向量表征、构建索引（基于AutoFaiss）、批量检索、后台服务（基于FastAPI）、前端展现（基于Gradio）功能\n  - 支持[openai\u002Fclip-vit-base-patch32](https:\u002F\u002Fhuggingface.co\u002Fopenai\u002Fclip-vit-base-patch32)等CLIP系列模型\n  - 支持[OFA-Sys\u002Fchinese-clip-vit-huge-patch14](https:\u002F\u002Fhuggingface.co\u002FOFA-Sys\u002Fchinese-clip-vit-huge-patch14)等Chinese-CLIP系列模型\n  - 支持前后端分离部署，FastAPI后端服务，Gradio前端展现\n  - 支持亿级数据高效检索，基于Faiss检索，支持GPU加速\n  - 支持图搜图、文搜图、向量搜图\n  - 支持图像embedding提取、文本embedding提取\n  - 支持图像相似度计算、图文相似度计算\n  - 支持命令行图像转向量（多卡）、建索引、批量检索、启动服务\n- 图像特征提取：本项目基于cv2实现了pHash、dHash、wHash、aHash、SIFT等多种图像特征提取算法\n\n## 演示\n图像搜索演示：https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshibing624\u002FCLIP-Image-Search\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_9459b9f92c78.png)\n\n文本搜索演示：https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshibing624\u002Fsimilarities\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_106ceba13406.png)\n\n\n## 安装\n\n```\npip install torch # conda install pytorch\npip install -U similarities\n```\n\n或者\n\n```\ngit clone https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities.git\ncd similarities\npip install -e .\n```\n\n## 使用方法\n\n### 1. 文本向量相似度计算\n\n示例：[examples\u002Ftext_similarity_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ftext_similarity_demo.py)\n\n\n```python\nfrom similarities import BertSimilarity\nm = BertSimilarity(model_name_or_path=\"shibing624\u002Ftext2vec-base-chinese\")\nr = m.similarity('如何更换花呗绑定银行卡', '花呗更改绑定银行卡')\nprint(f\"similarity score: {float(r)}\")  # similarity score: 0.855146050453186\n```\n\n- `model_name_or_path`：模型名称或者路径，默认会从HF model hub下载并使用中文语义匹配模型[shibing624\u002Ftext2vec-base-chinese](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Ftext2vec-base-chinese)，如果需要多语言，可以替换为[shibing624\u002Ftext2vec-base-multilingual](https:\u002F\u002Fhuggingface.co\u002Fshibing624\u002Ftext2vec-base-multilingual)模型，支持中、英、韩、日、德、意等多国语言\n\n### 2. 文本向量搜索\n\n在文档候选集中找与query最相似的文本，常用于QA场景的问句相似匹配、文本搜索等任务。\n\n#### SemanticSearch精准搜索算法，Cos Similarity + topK 聚类检索，适合百万内数据集\n\n示例：[examples\u002Ftext_semantic_search_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ftext_semantic_search_demo.py)\n\n#### Annoy、Hnswlib等近似搜索算法，适合百万级数据集\n\n示例：[examples\u002Ffast_text_semantic_search_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ffast_text_semantic_search_demo.py)\n\n#### Faiss高效向量检索，适合亿级数据集\n\n- 文本转向量，建索引，批量检索，启动服务：[examples\u002Ffaiss_bert_search_server_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ffaiss_bert_search_server_demo.py)\n\n- 前端python调用：[examples\u002Ffaiss_bert_search_client_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ffaiss_bert_search_client_demo.py)\n\n\n### 3. 基于字面的文本相似度计算和文本搜索\n\n支持同义词词林（Cilin）、知网Hownet、词向量（WordEmbedding）、Tfidf、SimHash、BM25等算法的相似度计算和字面匹配搜索，常用于文本匹配冷启动。\n\n示例：[examples\u002Fliteral_text_semantic_search_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Fliteral_text_semantic_search_demo.py)\n\n### 4. 图像相似度计算和图片搜索\n\n支持CLIP、pHash、SIFT等算法的图像相似度计算和匹配搜索，中文CLIP模型支持图搜图、文搜图、还支持中英文图文互搜。\n\n示例：[examples\u002Fimage_semantic_search_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Fimage_semantic_search_demo.py)\n\n![image_sim](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_27cb96c7517c.png)\n\n\n#### Faiss高效向量检索，适合亿级数据集\n\n- 图像转向量，建索引，批量检索，启动服务：[examples\u002Ffaiss_clip_search_server_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ffaiss_clip_search_server_demo.py)\n\n- 前端python调用：[examples\u002Ffaiss_clip_search_client_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ffaiss_clip_search_client_demo.py)\n\n- 前端gradio调用：[examples\u002Ffaiss_clip_search_gradio_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ffaiss_clip_search_gradio_demo.py)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_9333c5f08d00.png\"\u002F>\n\n### 5. 聚类\n\n通过社群发现（community_detection）算法可以在大规模数据集上执行聚类，寻找聚类簇（即相似的句子组）。\n\n示例：[examples\u002Ftext_clustering_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ftext_clustering_demo.py)\n\n\n### 6. 图文语义去重\n\n通过同义句挖掘（paraphrase_mining_embeddings）算法可以从大量句子或文档集中挖掘出具有相似意义的句子对，可用于冗余图文检测，语义去重。\n\n- 文本语义去重：[examples\u002Ftext_duplicates_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Ftext_duplicates_demo.py)\n- 图片语义去重：[examples\u002Fimage_duplicates_demo.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fexamples\u002Fimage_duplicates_demo.py)\n\n### 命令行模式（CLI）\n\n- 支持批量获取文本向量、图像向量（embedding）\n- 支持构建索引（index）\n- 支持批量检索（filter）\n- 支持启动服务（server）\n\n代码：[cli.py](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fblob\u002Fmain\u002Fsimilarities\u002Fcli.py)\n\n```\n> similarities -h                                    \n\n名称\n    similarities\n\n用法\n    similarities COMMAND\n\n命令\n    COMMAND 是以下之一：\n\n     bert_embedding\n       计算一系列句子的嵌入向量\n\n     bert_index\n       使用 autofaiss 从文本嵌入构建索引\n\n     bert_filter\n       bert 滤波器的入口点，用于批量搜索索引\n\n     bert_server\n       bert 搜索后端的主要入口点，启动服务器\n\n     clip_embedding\n       使用 CLIP 模型对文本和图像进行嵌入\n\n     clip_index\n       使用 autofaiss 从嵌入构建索引\n\n     clip_filter\n       CLIP 滤波器的入口点，用于批量搜索索引\n\n     clip_server\n       CLIP 搜索后端的主要入口点，启动服务器\n```\n\n运行：\n\n```shell\npip install similarities -U\nsimilarities clip_embedding -h\n\n# 示例\ncd examples\nsimilarities clip_embedding data\u002Ftoy_clip\u002F\n```\n\n- `bert_embedding`等是二级命令，bert开头的是文本相关，clip开头的是图像相关。\n- 各二级命令使用方法见`similarities clip_embedding -h`。\n- 上面示例中`data\u002Ftoy_clip\u002F`是`clip_embedding`方法的`input_dir`参数，即输入文件目录（必填）。\n\n\n\n## 联系方式\n\n- 提问与建议：[![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fshibing624\u002Fsimilarities.svg)](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fissues)\n- 邮件联系：xuming: xuming624@qq.com\n- 微信联系：请加我微信号：xuming624，并备注“姓名-公司-NLP”，即可加入NLP交流群。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_readme_3dce032d5680.jpeg\" width=\"200\" \u002F>\n\n## 引用\n\n如果你在研究中使用了similarities，请按如下格式引用：\n\nAPA:\n\n```\nXu, M. Similarities: Compute similarity score for humans (Version 1.0.1) [Computer software]. https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\n```\n\nBibTeX:\n\n```\n@misc{Xu_Similarities_Compute_similarity,\n  title={Similarities: similarity calculation and semantic search toolkit},\n  author={Xu Ming},\n  year={2022},\n  howpublished={\\url{https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities}},\n}\n```\n\n## 许可证\n\n本项目采用 [Apache License 2.0](\u002FLICENSE) 许可协议，可免费用于商业用途。请在产品说明中附上similarities的链接及许可证信息。\n\n## 贡献\n\n目前项目代码仍较为粗糙，欢迎大家对代码进行改进并提交回本项目。在提交之前，请注意以下两点：\n\n- 在`tests`目录下添加相应的单元测试。\n- 使用`python -m pytest`运行所有单元测试，确保所有测试均通过。\n\n确认无误后即可提交 Pull Request。\n\n## 致谢\n\n- [A Simple but Tough-to-Beat Baseline for Sentence Embeddings[Sanjeev Arora 和 Yingyu Liang 及 Tengyu Ma，2017]](https:\u002F\u002Fopenreview.net\u002Fforum?id=SyK00v5xx)\n- [https:\u002F\u002Fgithub.com\u002Fliuhuanyong\u002FSentenceSimilarity](https:\u002F\u002Fgithub.com\u002Fliuhuanyong\u002FSentenceSimilarity)\n- [https:\u002F\u002Fgithub.com\u002Fqwertyforce\u002Fimage_search](https:\u002F\u002Fgithub.com\u002Fqwertyforce\u002Fimage_search)\n- [ImageHash - 官方 GitHub 仓库](https:\u002F\u002Fgithub.com\u002FJohannesBuchner\u002Fimagehash)\n- [https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP](https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP)\n- [https:\u002F\u002Fgithub.com\u002FOFA-Sys\u002FChinese-CLIP](https:\u002F\u002Fgithub.com\u002FOFA-Sys\u002FChinese-CLIP)\n- [https:\u002F\u002Fgithub.com\u002FUKPLab\u002Fsentence-transformers](https:\u002F\u002Fgithub.com\u002FUKPLab\u002Fsentence-transformers)\n- [https:\u002F\u002Fgithub.com\u002From1504\u002Fclip-retrieval](https:\u002F\u002Fgithub.com\u002From1504\u002Fclip-retrieval)\n\n感谢这些优秀的工作！","# Similarities 快速上手指南\n\n**Similarities** 是一个功能强大的相似度计算与语义搜索工具包，支持文本和图片的向量化、相似度计算及大规模检索（文搜文、文搜图、图搜图）。基于 Python 开发，支持亿级数据高效检索。\n\n## 1. 环境准备\n\n- **操作系统**：Linux, macOS, Windows\n- **Python 版本**：3.5+ (推荐 3.8+)\n- **前置依赖**：\n  - `torch` (PyTorch)：用于加载深度学习模型。\n  - 网络连接：首次运行时会自动从 Hugging Face 下载预训练模型（如网络受限，建议配置镜像或手动下载模型至本地）。\n\n## 2. 安装步骤\n\n推荐使用 pip 进行安装。为确保依赖完整，请先安装 PyTorch，再安装 similarities。\n\n### 方式一：pip 安装（推荐）\n\n```bash\n# 1. 安装 PyTorch (根据官网指引选择适合你环境的命令，或使用 conda)\npip install torch\n\n# 2. 安装 similarities\npip install -U similarities\n```\n\n> **提示**：如果下载速度慢，可添加国内镜像源参数，例如：\n> `pip install -U similarities -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n### 方式二：源码安装\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities.git\ncd similarities\npip install -e .\n```\n\n## 3. 基本使用\n\n### 场景一：文本相似度计算\n\n最简单的用法是计算两个句子的语义相似度。默认使用中文预训练模型。\n\n```python\nfrom similarities import BertSimilarity\n\n# 初始化模型（首次运行会自动下载 shibing624\u002Ftext2vec-base-chinese）\nm = BertSimilarity(model_name_or_path=\"shibing624\u002Ftext2vec-base-chinese\")\n\n# 计算相似度\nr = m.similarity('如何更换花呗绑定银行卡', '花呗更改绑定银行卡')\n\nprint(f\"similarity score: {float(r)}\")\n# 输出示例：similarity score: 0.855146050453186\n```\n\n*注：如需多语言支持，可将 `model_name_or_path` 替换为 `shibing624\u002Ftext2vec-base-multilingual`。*\n\n### 场景二：图像\u002F图文搜索 (CLIP)\n\n支持图搜图、文搜图。以下示例展示如何使用 CLIP 模型提取特征并进行搜索（需确保已安装 torch 和 torchvision）。\n\n```python\nfrom similarities import ClipSimilarity\n\n# 初始化 CLIP 模型 (支持中文 CLIP 模型，如 OFA-Sys\u002Fchinese-clip-vit-huge-patch14)\nm = ClipSimilarity(model_name_or_path=\"OFA-Sys\u002Fchinese-clip-vit-huge-patch14\")\n\n# 示例：计算图片与文本的相似度\n# 需要准备图片路径和文本查询\nscore = m.similarity_query_image(\"一只可爱的猫\", \"data\u002Fcat.jpg\") \nprint(f\"score: {score}\")\n```\n\n### 场景三：命令行工具 (CLI)\n\n工具包内置了命令行接口，适合批量处理向量提取、建索引和启动服务。\n\n```bash\n# 查看帮助\nsimilarities -h\n\n# 示例：批量提取图片向量 (输入目录为 data\u002Ftoy_clip\u002F)\nsimilarities clip_embedding data\u002Ftoy_clip\u002F\n\n# 示例：构建索引\nsimilarities clip_index --embeddings_dir \u003Cembedding_output_dir>\n\n# 示例：启动搜索服务\nsimilarities clip_server\n```\n\n*常用命令说明：*\n- `bert_` 开头：处理文本任务（embedding, index, filter, server）。\n- `clip_` 开头：处理图像\u002F图文任务（embedding, index, filter, server）。","某大型电商平台的智能客服团队，每天需处理数万条用户关于“订单异常”、“退款流程”等自然语言咨询，急需提升自动回复的准确率。\n\n### 没有 similarities 时\n- **关键词匹配失效**：传统系统依赖精确关键词，当用户问“花呗怎么换绑银行卡”而知识库只有“如何更换花呗绑定银行卡”时，因字面不完全匹配导致检索失败。\n- **开发门槛高**：若要引入语义搜索，工程师需手动搭建 Faiss 索引、调试 SentenceBERT 模型并编写复杂的向量计算代码，耗时数周。\n- **多模态支持缺失**：用户上传商品破损图片求助时，系统无法理解图片内容，只能机械地要求用户提供文字描述，体验极差。\n- **扩展性受限**：面对亿级历史工单数据，现有方案检索速度慢，无法在毫秒级内返回最相似的解决方案。\n\n### 使用 similarities 后\n- **语义精准匹配**：利用 `BertSimilarity` 模块，系统能直接识别“换绑”与“更改绑定”的语义等价性，即使措辞不同也能给出高相似度评分（如 0.85+），大幅提升召回率。\n- **开箱即用部署**：通过简单的 Python 代码调用 `SemanticSearch` 接口，几分钟内即可完成从模型加载、向量化到建立亿级数据索引的全流程，无需底层算法重构。\n- **图文跨模态检索**：集成 CLIP 模型实现“文搜图”与“图搜图”，用户上传破损照片，系统即可直接检索库中类似的售后案例并推送对应处理流程。\n- **高性能并发服务**：内置 Faiss 加速与多卡支持，轻松支撑亿级数据量的毫秒级检索，并可快速封装为 FastAPI 服务供前端调用。\n\nsimilarities 将复杂的语义理解与大规模检索能力封装为简洁接口，让开发者能以最低成本构建懂人话、看得图的智能搜索系统。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshibing624_similarities_1d3d94ba.png","shibing624","Ming Xu (徐明)","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fshibing624_1945cf94.jpg","Algorithm Researcher, Deep Learning Developer","@tencent","Beijing, China","shibing624@126.com",null,"https:\u002F\u002Fblog.csdn.net\u002Fmingzai624","https:\u002F\u002Fgithub.com\u002Fshibing624",[84],{"name":85,"color":86,"percentage":87},"Python","#3572A5",100,900,88,"2026-03-31T03:25:48","Apache-2.0","Linux, macOS, Windows","非必需，但处理亿级数据或使用 CLIP\u002FBERT 模型进行批量检索、多卡训练时推荐 NVIDIA GPU 以加速；具体型号和显存未说明，CUDA 版本取决于安装的 torch 版本","未说明（处理亿级数据需较大内存）",{"notes":96,"python":97,"dependencies":98},"支持文本和图像相似度计算及语义搜索。默认会从 Hugging Face 下载预训练模型（如 text2vec 或 CLIP）。支持命令行模式进行向量化、建索引和服务部署。若需处理亿级数据，建议使用 Faiss 并配置 GPU 加速。安装时需先安装 torch（可通过 pip 或 conda 安装）。","3.5+",[99,64,100,101,102,103,104,105,106,107],"torch","faiss","annoy","hnswlib","transformers","fastapi","gradio","opencv-python (cv2)","autofaiss",[35,15,14],[110,111,112,113,114,115,116,117,118,119,100,120],"nlp","deep-learning","pytorch","matching","text-matching","bm25","similarity","similarity-search","image-search","image-similarity","search-engine","2026-03-27T02:49:30.150509","2026-04-10T02:45:02.790092",[124,129,134,139,144,149,154,159],{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},27034,"为什么 ANN 预测速度比原生模型慢很多，且准确度较低？","1. 速度慢的原因：示例中的快速推理（quick_sentence_transformers）使用了 ONNX + TensorRT 进行加速，这是 GPU 模型部署的常用操作。如果直接使用原生 SBERT 模型而没有这些优化，速度会较慢。\n2. 准确度低的原因：在使用 FAISS 计算向量余弦相似度时，建议尝试使用 `IndexFlatIP` 索引类型以获得更好的效果。\n3. 关于其他模型（如 Paddle 的 RocketQA），建议自行调研或根据需求修改模型。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fissues\u002F5",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},27035,"运行 faiss_bert_search_server_demo.py 时报错找不到嵌入文件怎么办？","该错误通常是因为运行路径或配置不正确。请严格按照以下步骤操作：\n1. 克隆项目：`git clone https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities`\n2. 进入 examples 目录：`cd similarities\u002Fexamples`\n3. 在该目录下执行脚本：`python faiss_bert_search_server_demo.py`\n确保传给 `EmbeddingReader` 的 `embeddings_folder` 参数路径（如 `bert_engine\u002Ftext_emb\u002F`）相对于当前运行目录是正确的。不要直接在 IDE 中随意设置运行路径，需在正确的目录下运行。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fissues\u002F36",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},27036,"运行图片相似度 demo (image_demo) 报错如何解决？","这通常是由于 `similarities` 库的版本问题导致的。请尝试升级库到最新版本：\n```bash\npip install similarities==1.0.1\n```\n或者使用更新命令：\n```bash\npip3 install -U similarities\n```\n升级到 1.0.1 或更高版本后，该问题通常会被解决。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fissues\u002F2",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},27037,"如何为百万级数据创建增量索引，避免每次重新生成？","支持增量索引构建。对于新增的数据集：\n1. 将新生成的嵌入文件保存为新的文件名，例如 `00010.npy`, `00011.npy` 等，追加在原有文件之后。\n2. 如果是 parquet 格式的文件（corpus 目录），也需按顺序命名，如 `part-00000.parquet`, `part-00001.parquet`。\n3. 在加载索引时，FAISS 会按顺序加载所有文件。\n4. 最后重新 load 索引即可包含新数据，无需从头重建。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fissues\u002F20",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},27038,"导入 Similarity 类时报错，提示需要下载模型吗？","是的，使用前需要下载中文语义匹配模型。默认模型地址为：`shibing624\u002Ftext2vec-base-chinese` (HuggingFace)。\n使用方法如下：\n```python\nfrom similarities import Similarity\n\n# 方法一：自动下载（需联网）\nm = Similarity(model_name_or_path=\"shibing624\u002Ftext2vec-base-chinese\")\n\n# 方法二：使用本地已下载的模型路径\ndownload_path = \".\u002Fpath\u002Fto\u002Fdownloaded\u002Fmodel\"\nm = Similarity(model_name_or_path=download_path)\n```\n确保网络通畅或提前将模型下载到本地并指定路径。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fissues\u002F10",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},27039,"遇到 ImportError: cannot import name 'Literal' from 'typing' 错误怎么办？","这是因为 Python 版本过低。`typing.Literal` 是在 Python 3.8+ 中引入的，而该库可能需要更高的版本支持。\n解决方案：请将 Python 环境升级到 **Python 3.10** 或更高版本，然后重新运行代码。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fissues\u002F44",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},27040,"如何删除或清空已添加的 corpus（语料库）？","目前库中没有专门的 API 方法来删除或清空 corpus，因为 corpus 本质上是一个字典（dict）。你可以直接使用 Python 原生操作：\n1. 删除特定键值对：`del my_similarity_instance.corpus['key']`\n2. 清空所有语料：`my_similarity_instance.corpus = {}`\n用户可自行通过代码管理语料库的增删。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fissues\u002F13",{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},27041,"同样的代码在 Windows 上运行快，在 Linux 上运行慢是什么原因？","如果计算结果一致，说明模型本身没有问题。速度差异主要源于硬件配置不同：\n1. 检查两台机器的 CPU 型号、核心数、内存大小以及硬盘类型（SSD vs HDD）。\n2. 确认是否使用了 GPU 加速。如果没有 GPU，纯 CPU 推理的性能高度依赖 CPU 性能。\n通常 Windows 开发机的配置可能高于 Linux 服务器，导致速度差异。","https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fissues\u002F7",[165,170],{"id":166,"version":167,"summary_zh":168,"released_at":169},180206,"1.1.2","### 1.1.2 版本\nhttps:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\n\n1. 新增图像相似度计算\u002F图文相似度计算 + 图搜图\u002F文搜图\n\nCLIP图文匹配模型，可用于图文特征（embeddings）、相似度计算、图文检索、零样本图片分类，本项目基于PyTorch实现了CLIP模型的向量表征、构建索引（基于AutoFaiss）、批量检索、后台服务（基于FastAPI）、前端展现（基于Gradio）功能\n  - 支持[openai\u002Fclip-vit-base-patch32](https:\u002F\u002Fhuggingface.co\u002Fopenai\u002Fclip-vit-base-patch32)等CLIP系列模型\n  - 支持[OFA-Sys\u002Fchinese-clip-vit-huge-patch14](https:\u002F\u002Fhuggingface.co\u002FOFA-Sys\u002Fchinese-clip-vit-huge-patch14)等Chinese-CLIP系列模型\n  - 支持前后端分离部署，FastAPI后端服务，Gradio前端展现\n  - 支持亿级数据高效检索，基于Faiss检索，支持GPU加速\n  - 支持图搜图、文搜图、向量搜图\n  - 支持图像embedding提取、文本embedding提取\n  - 支持图像相似度计算、图文相似度计算\n\n\n2. 新增命令行工具（CLI），可以无需代码开发，用命令行图像转向量（多卡）、建索引、批量检索、启动服务\n\n3. 新增亿级图片gradio图像检索：\n![dog-img](https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fassets\u002F10249622\u002F7854fc6c-5297-459d-8deb-259909c3dd44)\n\n## 变更内容\n* @tosemml 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fpull\u002F15 中进行了代码重构\n* @shibing624 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fpull\u002F19 中引入了Faiss\n\n## 新贡献者\n* @tosemml 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fpull\u002F15 中做出了首次贡献\n* @shibing624 在 https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fpull\u002F19 中做出了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fcompare\u002F1.0.5...1.1.2","2023-09-22T02:49:25",{"id":171,"version":172,"summary_zh":173,"released_at":174},180207,"1.0.5","**完整更新日志**: https:\u002F\u002Fgithub.com\u002Fshibing624\u002Fsimilarities\u002Fcompare\u002F1.0.4...1.0.5","2023-07-07T10:32:15"]