🚀 PuchAI Hackathon
PuchAI Hackathon 整合了多种实用工具,涵盖数据抓取、可视化、医药信息查询、用户偏好管理和任务管理等功能,为用户提供了全面且便捷的服务体验,可用于市场调研、数据展示、信息查询和日常任务管理等场景。
🚀 快速开始
点击下方链接即可使用 MCP:
🌟 点击使用 MCP
✨ 主要特性
🔍 Reddit 研究工具
- 功能描述:从指定的子版块中抓取最新的帖子,并过滤包含特定关键词的帖子,然后使用意图评分分析内容,用于市场验证和受众情绪分析。
- 参数说明:
| 属性 | 详情 |
| ---- | ---- |
|
puch_user_id(字符串) | 用于限流的用户 ID |
| query(字符串) | 关于您所查找内容的描述性查询 |
| subreddits(字符串列表) | 子版块名称列表(无需 'r/' 前缀) |
| keywords(字符串列表) | 使用模糊匹配搜索的关键词 |
| threshold(整数,默认值:80) | 模糊匹配阈值(0 - 100) |
| post_limit(整数,默认值:10) | 每个子版块要检查的新帖子数量(1 - 35) |
- 冷却时间:每次使用间隔 80 秒。
- 示例提示:
- "嘿,Puch,我正在尝试推广我的带有 Kubernetes EKS 配置的 MCP,请查看最近是否有人对 r/mcp 或 r/saas 感兴趣。"
- "我正在构建自己的支付网关服务,请检查 r/saas 中是否有关于支付网关的讨论,并告诉我如何与相关人员接触。"
📊 数据可视化工具
制作柱状图
- 功能描述:根据标签列表和数值数据生成带有标签的柱状图图像,支持自定义样式。
- 参数说明:
| 属性 | 详情 |
| ---- | ---- |
|
puch_labels(字符串列表) | x 轴的标签字符串 |
| puch_values(浮点数列表) | 数值(与标签长度相同) |
| width(整数,默认值:900) | 图像宽度(像素) |
| height(整数,默认值:450) | 图像高度(像素) |
| bg_color(字符串,默认值:"#f8fffe") | 背景颜色 |
| bar_color(字符串,默认值:"#4ade80") | 柱状图颜色 |
| title(字符串,可选) | 图表标题 |
- 示例提示:
- "创建一个显示销售数据的柱状图:第一季度 = 15000,第二季度 = 18000,第三季度 = 22000,第四季度 = 17000,标题为 '季度销售'。"
- "制作一个关于编程语言的柱状图:Python = 45,JavaScript = 38,Java = 32,C++ = 28,Go = 15。"
制作折线图
- 功能描述:创建折线图可视化,展示随时间的趋势或变量之间的关系。
- 参数说明:
| 属性 | 详情 |
| ---- | ---- |
|
puch_labels(字符串列表) | x 轴的标签字符串 |
| puch_values(浮点数列表) | 数值(与标签长度相同) |
| width(整数,默认值:900) | 图像宽度(像素) |
| height(整数,默认值:450) | 图像高度(像素) |
| bg_color(字符串,默认值:"#f8fffe") | 背景颜色 |
| line_color(字符串,默认值:"#4ade80") | 折线颜色 |
| title(字符串,可选) | 图表标题 |
- 示例提示:
- "给我展示一个过去 6 个月网站流量的折线图:1 月 = 1200,2 月 = 1350,3 月 = 1100,4 月 = 1600,5 月 = 1850,6 月 = 2100。"
- "创建一个显示温度趋势的折线图:周一 = 22,周二 = 24,周三 = 19,周四 = 25,周五 = 27,周六 = 23,周日 = 21。"
制作饼图
- 功能描述:生成具有现代样式、阴影效果和详细图例的饼图,显示百分比和数值。
- 参数说明:
| 属性 | 详情 |
| ---- | ---- |
|
labels(字符串列表) | 饼图的类别标签 |
| values(浮点数列表) | 每个类别的数值 |
| title(字符串,可选) | 图表标题 |
| width(整数,默认值:1000) | 图像宽度(像素) |
| height(整数,默认值:600) | 图像高度(像素) |
- 示例提示:
- "创建一个显示预算分配的饼图:营销 = 5000,开发 = 8000,运营 = 3000,销售 = 4000。"
- "制作一个关于调查回复的饼图:非常满意 = 45,满意 = 32,中立 = 15,不满意 = 8。"
制作散点图
- 功能描述:创建散点图,可视化两个数值变量之间的关系,支持可选的分类和自定义样式。
- 参数说明:
| 属性 | 详情 |
| ---- | ---- |
|
x_values(浮点数列表) | x 坐标值 |
| y_values(浮点数列表) | y 坐标值(与 x_values 长度相同) |
| labels(字符串列表,可选) | 点标签 |
| categories(字符串列表,可选) | 用于颜色编码的类别 |
| colors(字符串列表,可选) | 每个点的自定义颜色(十六进制代码) |
| width(整数,默认值:900) | 图像宽度(像素) |
| height(整数,默认值:600) | 图像高度(像素) |
| bg_color(字符串,默认值:"#fafafa") | 背景颜色 |
| point_color(字符串,默认值:"#4F46E5") | 默认点颜色 |
| point_size(整数,默认值:6) | 点半径(像素) |
| title(字符串,可选) | 图表标题 |
| x_label(字符串,可选) | x 轴标签 |
| y_label(字符串,可选) | y 轴标签 |
- 示例提示:
- "创建一个显示学习时间(x)和考试成绩(y)之间相关性的散点图:学习时间 [2, 4, 6, 8, 10, 12] 和成绩 [65, 72, 78, 85, 90, 95]。"
- "制作一个身高与体重数据的散点图,并按不同年龄组进行分类。"
💊 医药信息提供者
- 功能描述:从 Tata 1mg 获取任何给定药物的信息。
- 参数说明:
| 属性 | 详情 |
| ---- | ---- |
|
medicine_name(字符串) | 药物名称 |
- 示例提示:
- "嘿,药房给了我孟鲁司特,这是治疗过敏的正确药物吗?"
⚙️ 用户偏好管理
获取用户偏好
- 功能描述:检索用户偏好或按键检索特定偏好值。
- 参数说明:
| 属性 | 详情 |
| ---- | ---- |
|
puch_user_id(字符串) | 用户 ID |
| key(字符串,可选) | 要检索的特定偏好键 |
- 示例提示:
- "我最喜欢的编程语言是什么?"
- "给我展示所有已保存的偏好。"
保存用户偏好
- 功能描述:将用户偏好、喜好、兴趣或任何值得记住的信息保存到持久存储中。
- 参数说明:
| 属性 | 详情 |
| ---- | ---- |
|
puch_user_id(字符串) | 用户 ID |
| key(字符串) | 偏好类别或键(例如,'favorite_color') |
| value(字符串) | 要保存在给定键下的值 |
- 示例提示:
- "记住我最喜欢的编程语言是 Python。"
- "保存我早上更喜欢咖啡而不是茶。"
📋 任务管理工具
添加待办事项
- 功能描述:将新任务添加到用户的待办事项列表中,并记录时间戳。
- 参数说明:
| 属性 | 详情 |
| ---- | ---- |
|
puch_user_id(字符串) | 用户 ID |
| task(字符串) | 任务或待办事项文本 |
- 示例提示:
- "将 '完成 MCP 文档' 添加到我的待办事项列表中。"
- "我需要记住 '给客户打电话讨论项目提案' - 请将此添加到我的任务中。"
列出待办事项
- 功能描述:检索并显示用户的所有待办事项,按创建日期排序。
- 参数说明:
| 属性 | 详情 |
| ---- | ---- |
|
puch_user_id(字符串) | 用户 ID |
- 示例提示:
- "给我展示所有当前的任务和待办事项。"
- "我现在的待办事项列表上有什么?"
删除待办事项
- 功能描述:按索引编号从用户的待办事项列表中删除特定任务。
- 参数说明:
| 属性 | 详情 |
| ---- | ---- |
|
puch_user_id(字符串) | 用户 ID |
| index(整数) | 待办事项在 list_todos 中的索引编号(从 1 开始) |
- 示例提示:
- "从我的待办事项列表中删除第 3 个任务。"
- "从我的任务中删除第二项。"
⚠️ 重要提示
- Reddit 抓取器:每个用户每次使用间隔 80 秒。
- 其他工具:无冷却时间限制。
- 用户数据存储在
user_data.json 中。
- 采用线程安全的文件操作并使用锁机制。
- 使用临时文件进行原子写入操作。
📦 安装指南
安装 uv
假设您已经安装了 Python。
uv 是一个快速的 Python 包安装程序和环境管理器。
使用以下命令进行安装:
pip install uv
运行项目
克隆仓库,填充 .env 文件,进入项目目录,然后执行以下命令:
uv run src/main.py
默认情况下,项目将在 端口 8085 上运行。
设置 NGROK
1. 安装 ngrok
从以下链接下载并安装 ngrok:
https://ngrok.com/download
2. 获取您的认证令牌
- 访问:https://dashboard.ngrok.com/get-started/your-authtoken
- 复制您的认证令牌。
- 运行以下命令添加您的令牌:
ngrok config add-authtoken YOUR_AUTHTOKEN
- 运行
ngrok http 8085
- 复制生成的 URL,并在 puch.ai/hi 上输入
/mcp connect {复制的 URL}/mcp AUTH_TOKEN。其中,AUTH_TOKEN 应与 .env 文件中的令牌相同。