一个智能的客群特征检索平台,通过AI分析用户输入的客群描述,自动提取实体、泛化关键词,并检索相关特征字段,最终生成取数SQL。
🔍 智能客群搜索 - 支持自然语言描述客群特征
🧠 AI意图识别 - 自动提取实体并推理泛化关键词
📊 特征字段检索 - 智能匹配相关的数据库字段
💾 SQL自动生成 - 根据特征字段生成取数SQL语句
- 前端: React 18 + TypeScript + Tailwind CSS + Vite
- 后端: Python FastAPI + SQLAlchemy + SQLite
- AI服务: OpenAI GPT-3.5-turbo (支持mock模式)
- 数据库: SQLite (特征表存储)
- Node.js 16+
- Python 3.8+
- npm 或 yarn
- 安装前端依赖
npm install- 安装后端依赖
cd backend
pip install -r requirements.txt复制 backend/.env.example 到 backend/.env 并配置:
# 可选:配置OpenAI API(如不配置将使用mock数据)
OPENAI_API_KEY=your_openai_api_key_here
# 数据库配置
DATABASE_URL=sqlite:///./features.db- 启动后端服务
cd backend
python main.py
# 或者使用 uvicorn
uvicorn main:app --reload --host 0.0.0.0 --port 8000- 启动前端服务
npm run dev- 访问应用 打开浏览器访问: http://localhost:3000
在搜索框中输入您感兴趣的客群描述,例如:
- "一线城市白领"
- "道德感强的人群"
- "高消费能力女性"
- "年轻创业者"
- "有车有房的中年人"
系统会自动:
- 提取查询中的关键实体
- 生成相关的泛化关键词
- 例如:"道德感强的人群" → 实体["道德感"] → 泛化关键词["已婚","已育","养宠物","有宗教信仰","慈善捐赠"]
根据AI分析结果,系统会从特征表中检索匹配的字段:
- 字段名称和含义
- 数据类型
- 取值范围
- 所在数据表
- 示例值
最终生成可直接使用的SQL查询语句,支持:
- 单表查询
- 多表关联查询
- 智能WHERE条件生成
- 合理的字段选择和排序
输入: "一线城市白领"
实体提取: ["一线城市", "白领"]
关键词泛化: ["高学历", "稳定收入", "消费能力强", "年龄25-40", "有房贷", "使用信用卡"]
匹配字段: 城市等级、职业、年龄、收入、学历等
生成SQL: 多表联查,包含合适的过滤条件
输入: "道德感强的人群"
实体提取: ["道德感"]
关键词泛化: ["已婚", "已育", "养宠物", "有宗教信仰", "慈善捐赠", "诚信记录良好"]
匹配字段: 婚姻状况、子女情况、宠物、宗教信仰、慈善捐赠、信用评分等
生成SQL: 包含道德相关特征的查询条件
信贷客群特征AI检索平台/
├── src/ # 前端源码
│ ├── components/ # React组件
│ ├── api/ # API调用
│ ├── types/ # TypeScript类型定义
│ └── main.tsx # 入口文件
├── backend/ # 后端源码
│ ├── services/ # 业务服务
│ │ ├── ai_service.py # AI分析服务
│ │ ├── feature_service.py # 特征检索服务
│ │ └── sql_generator.py # SQL生成服务
│ ├── models/ # 数据模型
│ └── main.py # FastAPI应用入口
├── package.json # 前端依赖配置
└── README.md # 项目说明
主要的搜索接口,执行完整的检索流程。
请求体:
{
"query": "一线城市白领"
}响应:
{
"query": "一线城市白领",
"entities": ["一线城市", "白领"],
"generalizedKeywords": ["高学历", "稳定收入", "消费能力强"],
"features": [
{
"name": "city_tier",
"dataType": "VARCHAR",
"description": "所在城市等级",
"table": "customer_basic",
"valueRange": "一线/二线/三线/四线",
"examples": ["一线", "二线", "三线"]
}
],
"sql": "SELECT cb.city_tier, cb.occupation... FROM customer_basic cb..."
}- 在
feature_service.py的_init_sample_data()方法中添加新的特征定义 - 重启后端服务,系统会自动创建新的特征记录
- 修改
ai_service.py中的prompt模板 - 调整
_mock_analysis()方法中的示例数据 - 扩展关键词泛化规则
- 在
sql_generator.py中添加更多的WHERE条件生成规则 - 扩展多表关联逻辑
- 添加更复杂的查询模式
本项目已配置自动部署到 GitHub Pages。
-
将代码推送到 GitHub
git add . git commit -m "Initial commit" git push origin main
-
启用 GitHub Pages
- 进入 GitHub 仓库的 Settings 页面
- 点击左侧菜单的 "Pages"
- 在 "Source" 下选择 "GitHub Actions"
- 保存设置
-
自动部署
- 每次推送到
main分支时,GitHub Actions 会自动构建并部署 - 部署完成后,可在
https://your-username.github.io/【Demo】信贷客群特征AI检索/访问
- 每次推送到
# 构建项目
npm run build
# 预览构建结果
npm run preview- Vite 配置:
vite.config.ts中配置了正确的 base path - GitHub Actions:
.github/workflows/deploy.yml配置了自动部署流程 - 静态资源: 项目使用 mock 数据,无需后端服务,完全静态部署
- 系统默认使用mock数据进行演示,如需使用真实AI分析,请配置OpenAI API Key
- 特征表数据为示例数据,实际使用时需要根据业务需求调整
- SQL生成的WHERE条件为智能推测,实际使用时可能需要人工调整
- 建议在生产环境中添加更严格的输入验证和错误处理
- GitHub Pages 部署为静态站点,不支持后端API,当前使用前端 mock 数据
欢迎提交Issue和Pull Request来改进这个项目!
MIT License