trueai
Recommend and inspect AI SaaS apps from the TrueAI catalog (1,600+ apps) by need, name or URL.
README
真选AI (TrueAI) — 新一代 AI 导航,懂你
我来帮你省钱,我来帮你省时间。 数据实时、人工评测、无广告。 没有最好的,只有最适合你的。
TrueAI 是一个面向 AI 工具的 智能体推荐 + 人工评测 + 对话式导航 平台 MVP。 用户可以:
- 浏览按类目组织的 AI 工具卡片墙(带吊绳轻摆动效)
- 用对话的方式让 "懂你" 助手反问并推荐(流式 SSE)
- 查看多维排行榜,支持"用自然语言生成专属排名"
- 把最多 3 个工具加入对比抽屉,做并排多维对比
- 阅读 / 提交工具评测(审核通过后可获得现金奖励;MVP 仅保留表结构)
🤖 接入你的 AI Agent(MCP / Skill)
TrueAI 1600+ 应用目录已封装成 MCP Server 和 单文件 Skill,让你的
agent 直接获得"挑 AI 工具"的能力。完整文档:skills/trueai/SKILL.md。
一行接入 MCP(Claude Desktop / Cursor / Cline / Continue / Windsurf)
{ "mcpServers": { "trueai": { "url": "https://www.shiflowai.cloud/mcp" } } }
接入后 agent 立即获得 4 个工具:
| 工具 | 用途 |
|---|---|
recommend_ai_tools(description, top_k) |
用户自然语言需求 → 推荐合适应用 |
get_ai_tool(name_or_url, include_reviews) |
名称 / slug / 官网 URL → 应用完整信息 |
list_ai_tools(category, free_only, ...) |
按分类 / 形态 / 是否免费 浏览目录 |
list_categories() |
列出全部分类 |
无 MCP 也能用——drop-in skill 文件
把 skills/trueai/SKILL.md 复制到任意 agent 的 skills 目录,
agent 就会按文档里 curl 示例直接调 https://www.shiflowai.cloud/api/*。
数据 schema
每个 AI 应用 34 个结构化字段(评分 / 价格 / 形态 / 评论 / 链接 …),
完整 JSON Schema:docs/ai_tool_schema.json。
🕷️ 数据从哪里来:StructAIWeb(核心采集智能体)
TrueAI 网站里 1600+ 应用的结构化字段——名称、Logo、Slogan、定价、子功能列表、 易用性 / 效果 / 性价比评分等——不是人工录入的,而是由我们另一个开源项目 StructAIWeb 自动跑出来的。 它是 TrueAI 数据管线的 核心 AI 智能体:
| 维度 | 说明 |
|---|---|
| 仓库 | https://github.com/chenyujing1234-netizen/StructAIWeb |
| 形态 | Windows 桌面 GUI + CLI(Python + Playwright) |
| 浏览器 | 通过 CDP 接管你本地已登录的 Chrome,天然复用 Cookie / 扩展,规避大多数风控 |
| 探索 | 启发式按「价格 → 功能 → 关于 → 文档」遍历站点,自动点 CTA 进入主功能区 |
| 试用 | 主动输入提示词、点 "生成 / 提交",永远避开 "购买 / 充值 / 订阅" 按钮 |
| 视觉 | 可选启用多模态视觉模型(Qwen-VL / GPT-4o / GLM-4V)识别"该点哪个按钮" |
| 登录墙 | 自动检测并暂停,等你完成登录后继续 |
| 整合 | 把所有页面快照交给 LLM 输出结构化 JSON + 三项主观评分(usability / effect / price) |
| 输出字段 | 与 docs/ai_tool_schema.json 完全对齐 |
| License | MIT |
简言之:
StructAIWeb 负责"看懂一个 AI 网站",TrueAI 负责"把上千个看懂的结果织成一个懂你的导航站"。
想自己跑数据 / 扩展更多 AI 工具?fork StructAIWeb,跑完把 output/*.json 喂进 TrueAI 的
backend/scripts/sync_*.py 入库脚本即可。
技术栈
| 层 | 选型 |
|---|---|
| 后端 | Python 3.10+ / FastAPI 0.115 / SQLAlchemy 2 / Alembic / PyMySQL |
| 前端 | Next.js 14 (App Router, 纯 JavaScript) / Tailwind CSS / Framer Motion / Zustand |
| 数据库 | MySQL 8 (114.55.254.123:3306/trueai) |
| LLM | 阿里云 DashScope (qwen-plus),未配置 Key 时自动回退 Mock 文案 |
| 鉴权 | JWT (python-jose) + bcrypt |
目录结构
TrueAI/
├── backend/ # FastAPI 服务
│ ├── app/
│ │ ├── core/ # 配置 / DB / 安全
│ │ ├── models/ # ORM 模型
│ │ ├── schemas/ # Pydantic
│ │ ├── api/routers/ # auth / categories / tools / reviews / rankings / stats / search
│ │ ├── services/llm/ # Qwen 与 Mock 两种 Provider
│ │ ├── services/recommend.py # 意图抽取 + MySQL 候选召回
│ │ └── seeds/seed_tools.py
│ ├── alembic/
│ └── requirements.txt
└── frontend/ # Next.js 14
├── app/ # layout / page / category / tool / search / rankings / compare / earn
├── components/ # NavBar / HeroTypewriter / Sidebar / ToolCard / CompareBar / ChatSearch ...
├── lib/ # api.js / compareStore.js / labels.js
└── tailwind.config.js
快速开始
前提:已安装 Python 3.10+、Node 20+、能访问 MySQL
114.55.254.123:3306。
1. 后端
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # 按需改 JWT_SECRET / DASHSCOPE_API_KEY
# 首次:执行数据库迁移 + 种子数据
alembic upgrade head
python -m app.seeds.seed_tools
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
# http://localhost:8000/docs 查看 OpenAPI
2. 前端
cd frontend
npm install
cp .env.local.example .env.local # 默认指向 http://127.0.0.1:8000
npm run dev
# 打开 http://localhost:3000
环境变量
backend/.env
| 变量 | 说明 |
|---|---|
DATABASE_URL |
形如 mysql+pymysql://user:pass@host:3306/trueai,密码中特殊字符需 URL 编码(@ → %40) |
JWT_SECRET |
JWT 签名密钥,生产请替换为长随机串 |
JWT_EXPIRES_MINUTES |
token 过期分钟数,默认 7 天 |
LLM_PROVIDER |
qwen(默认)。为空或 Key 缺失时自动回退 Mock |
DASHSCOPE_API_KEY |
通义千问 Key,在 DashScope 控制台 创建 |
QWEN_MODEL |
默认 qwen-plus,可换成 qwen-turbo / qwen-max |
CORS_ORIGINS |
允许的前端 origin,逗号分隔 |
frontend/.env.local
| 变量 | 说明 |
|---|---|
NEXT_PUBLIC_API_BASE |
后端 Base URL,开发默认 http://127.0.0.1:8000 |
前端所有
/api/*请求在 Next.js 端通过rewrites代理到后端,避免浏览器 CORS 问题。
核心 API
| 接口 | 说明 |
|---|---|
GET /api/health |
健康检查 |
GET /api/stats |
首页横幅用:工具数 / 分类数 / 评测数 / 价值观文案 |
GET /api/categories |
全部分类 + 每类工具数 |
GET /api/tools |
列表 + 多维筛选 + 排序 + 分页 |
GET /api/tools/{id 或 slug} |
智能体详情 |
POST /api/tools/compare |
对比(body 为 id 列表) |
GET /api/rankings?dimension=&category=&top= |
排行榜 |
POST /api/reviews |
提交评测(需 Bearer token) |
GET /api/reviews?tool_id=&status_filter=approved |
评测列表 |
POST /api/search/chat |
对话搜索,SSE 流:event: meta + 多个 event: delta + event: done |
GET /api/search/chat?q=... |
非流式兜底:直接给候选和外部导航 |
POST /api/auth/register / /login / GET /api/auth/me |
注册 / 登录 / 查询当前用户 |
种子数据自带一个管理员账号:admin / admin123456(生产请删除或改密)。
"懂你"对话搜索的工作方式
- 客户端把当前会话(含历史)
POST到/api/search/chat。 - 后端根据最新 user 消息,用关键词字典抽取 类目 / 人群 / 免费 / 国内直连 等意图。
- 先从 MySQL 召回 ≤ 6 个候选,立即通过
event: meta推送给前端(前端马上渲染卡片)。 - 接着把系统 Prompt + 候选摘要 + 会话历史交给 Qwen 流式输出,按字/片推送
event: delta。 - 若候选为空,
meta中带external外部 AI 导航站清单,前端展示"去别家看看"。
常见问题
ValueError: invalid interpolation syntax:Alembic 读%会报错。alembic/env.py已做%→%%转义。pymysql连接慢 / 超时:pool_pre_ping=True、pool_recycle=3600已打开;请确认 MySQL 白名单已允许你的出口 IP。- 前端 API 跨域:开发期通过
next.config.jsrewrites 代理,无需额外处理。部署时建议把后端放到同域/api/*路径下。 - Qwen 没配 Key:
/api/search/chat会自动回退到 Mock Provider,候选卡片依然是真实数据,只是 AI 文案是占位。
下一步(非 MVP)
- 任务 / 赏金系统:管理员发布任务 → 用户领取评测 → 后台审核 → 微信提现
- 用户自发布任务
- 评测通过后自动刷新工具的综合评分
- 微信登录 + 手机号登录
- 工具增删改的管理后台
MIT License.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.