2025-05-25 20:28:43 +08:00
2025-05-22 23:27:45 +08:00
2025-05-22 23:27:45 +08:00
2025-03-05 13:49:29 +08:00
2025-03-05 13:49:29 +08:00
2025-02-23 03:17:45 +08:00
2025-05-25 20:27:47 +08:00
2025-05-22 19:02:56 +08:00
2025-05-21 22:22:22 +08:00
2025-05-25 20:28:43 +08:00
2025-05-22 19:02:56 +08:00
2025-03-02 22:35:53 +08:00
fix
2025-02-26 14:32:33 +08:00
2025-05-22 19:02:56 +08:00
2025-05-25 20:27:47 +08:00

███╗   ███╗███████╗███╗   ███╗███████╗███╗   ███╗███████╗ ██████╗ ██╗    ██╗
████╗ ████║██╔════╝████╗ ████║██╔════╝████╗ ████║██╔════╝██╔═══██╗██║    ██║
██╔████╔██║█████╗  ██╔████╔██║█████╗  ██╔████╔██║█████╗  ██║   ██║██║ █╗ ██║
██║╚██╔╝██║██╔══╝  ██║╚██╔╝██║██╔══╝  ██║╚██╔╝██║██╔══╝  ██║   ██║██║███╗██║
██║ ╚═╝ ██║███████╗██║ ╚═╝ ██║███████╗██║ ╚═╝ ██║███████╗╚██████╔╝╚███╔███╔╝
╚═╝     ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝ ╚═════╝  ╚══╝╚══╝ 

✨ 通过自然语言检索表情包 ✨

在线体验 · 反馈问题 · 参与贡献

License Python Version Online Demo


Features • Screenshots • Quick Start • Usage • API • Related Applications

✨ Features

Caution

本项目返回表情包结果由AI生成,与本人观点无关。

  • 自然语言处理: 采用嵌入模型,实现 Q&A 式的检索,能够对给出问题自动使用表情包回应。
  • 高拓展性: 可结合 VLM 高效为图片打上标签,制作资源包并在 Issues 中分享。
  • 便捷使用: 提供现成的web(无法导入资源包),API使用,以及iOS捷径使用,可不用部署到本地。
  • 社区驱动:能够在社区(WIP)分享自己制作的表情包资源包!
  • 另外,单纯使用检索功能,若使用API无需任何花费💰

Mememeow 是一个基于自然语言的表情包检索工具。它能让你通过描述想要的场景,快速找到合适的表情包。不再需要记住具体的文件名或标签,就能轻松找到想要的表情!

📸 Screenshots

主页面

主页面 - 表情包检索

Web界面

Web界面展示

上传页面

上传页面 - 添加新表情包

标签页面

标签页面 - 为表情包添加描述

ℹ️ Data Source

本项目张维为表情包来源于 知乎

Caution

若有侵权,请联系删除

🚀 Quick Start

环境要求

  • Python 3.11+
  • 可选: Silicon Flow API Key (用于云端模型) / OpenAI API Key (用于 VLM 打标)

安装步骤

  1. 克隆仓库
git clone https://github.com/MemeMeow-Studio/MemeMeow.git
cd MemeMeow
  1. 安装依赖
pip install -r requirements.txt
  1. 启动应用
python -m streamlit run app.py

Note

首次运行本地模型时会需要下载必要的模型文件,这可能需要一些时间。

📖 Usage

Basic Usage

  1. 访问 Web 界面 (默认为 http://localhost:8501)
  2. 在搜索框中输入你想要的表情包场景描述
  3. 点击搜索,系统会返回最匹配的表情包

图片管理

上传新图片

  1. 进入 upload images 页面
  2. 在 添加表情包 下选择图片
  3. 可选: 启用 使用VLM自动生成文件名 功能,这样省去人工打标的步骤

Caution

每次上传后需要重新生成缓存。

图片打标

  1. 进入 label images 页面
  2. 选择图片文件夹
  3. 点击 使用VLM生成描述 生成标签
  4. 选择合适的描述并重命名文件或直接点击 下一张 (会自动重命名)

导出资源包

  1. 检查图片已经完全标记完成
  2. 填写资源包相关信息
  3. 点击 导出资源包 按钮
  4. 等待生成完成后点击 下载资源包

Tip

你可以在 Issues 中分享你的资源包,或者查看其他用户分享的资源包。

导入资源包

社区资源包 (NEW!)

社区资源包工作原理

社区资源包分为 资源包仓库更新信息community_manifest.json,表情包仓库metadata.json,和表情包库manifest.json。

点击资源包管理页面,添加一个community_manifest的url,然后点击更新按钮。每次更新,MemeMeow会对比url指向的manifest和本地manifest中,每个表情包库的timestamp;

如果存在更新,则根据清单文件的信息,针对有更新的表情包库,重新下载表情包库的清单文件。

下载完成的社区资源包跟在线资源包的管理方式一致。

示例社区清单文件链接:

https://raw.githubusercontent.com/MemeMeow-Studio/Memes-Community/refs/heads/main/community_manifest.json

在线资源包

点击资源包管理页面,点击导入在线资源包,输入资源包链接,按下回车。

导入在线资源包只会下载一个manifest,存储所有图片的url路径和文件名。文件名用于匹配查询;匹配到图片后,会自动根据url联网下载图片,并缓存到本地,避免下载整个资源包。

示例资源包链接:(导入时输入)

https://github.com/MemeMeow-Studio/VVfromVideo/raw/main/all_vvs/manifest.json

示例仓库链接:

https://github.com/MemeMeow-Studio/VVfromVideo

离线资源包

点击资源包管理,点击导入资源包,选择资源包,点击导入。

Caution

导入资源包后,需要重新生成缓存。

Caution

新版本查找图片不再从config读取。为了从旧版本迁移,请在label images选择你的图片文件夹,选择导出资源包,然后再导入Mememeow。

🔌 API

本项目开放 API 接口,共各位开发者快捷使用,具体请求方式如下:

Endpoint

GET https://api.zvv.quest/search

请求参数

参数名 类型 简介 是否必填 范围
q string 要查询的内容(例如关键词或某个话题) ✅ -
n integer 返回的图片数量 ✅ 1 - 50

返回格式

返回格式为json,结构如下:

字段 数据类型 简介
code int 响应状态码 (200代表成功)
data string[] 图片的URL列表
msg string 如果响应出错的情况下,对应的错误信息,成功时为空

Mememeow 相关应用:

应用 作者 GitHub 链接
VVQuest网页端 VVQuest 链接
VVQuestiOS捷径 TomSmith163 链接
HakuBot().vv() 命令 apple_catwaii QQ
VVQuest油猴脚本 DanielZhangyc vvquest-tampermonkey-extension greasyfork

Tip

如果你想添加你的应用,请提交 PR 或 Issue

📄 License

本项目采用 MIT 开源协议。

⭐ Star History

Star History Chart


已知问题

由于streamlit的管理方式,每次源代码更新后刷新网页,会重新生成ImageData,造成内存泄漏。不修改源代码不会触发此问题。

S
Description
智能检索张维为表情包
Readme AGPL-3.0 52 MiB
Languages
Python 86.2%
JavaScript 5.3%
Vue 4.2%
TypeScript 2.2%
CSS 1.5%
Other 0.6%