Skip to content

Eswelt/AIsearching

Repository files navigation

信贷客群特征AI检索平台

一个智能的客群特征检索平台,通过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

安装依赖

  1. 安装前端依赖
npm install
  1. 安装后端依赖
cd backend
pip install -r requirements.txt

配置环境变量

复制 backend/.env.examplebackend/.env 并配置:

# 可选:配置OpenAI API(如不配置将使用mock数据)
OPENAI_API_KEY=your_openai_api_key_here

# 数据库配置
DATABASE_URL=sqlite:///./features.db

启动应用

  1. 启动后端服务
cd backend
python main.py
# 或者使用 uvicorn
uvicorn main:app --reload --host 0.0.0.0 --port 8000
  1. 启动前端服务
npm run dev
  1. 访问应用 打开浏览器访问: http://localhost:3000

使用说明

1. 客群搜索

在搜索框中输入您感兴趣的客群描述,例如:

  • "一线城市白领"
  • "道德感强的人群"
  • "高消费能力女性"
  • "年轻创业者"
  • "有车有房的中年人"

2. AI分析

系统会自动:

  • 提取查询中的关键实体
  • 生成相关的泛化关键词
  • 例如:"道德感强的人群" → 实体["道德感"] → 泛化关键词["已婚","已育","养宠物","有宗教信仰","慈善捐赠"]

3. 特征检索

根据AI分析结果,系统会从特征表中检索匹配的字段:

  • 字段名称和含义
  • 数据类型
  • 取值范围
  • 所在数据表
  • 示例值

4. SQL生成

最终生成可直接使用的SQL查询语句,支持:

  • 单表查询
  • 多表关联查询
  • 智能WHERE条件生成
  • 合理的字段选择和排序

示例场景

场景1:一线城市白领

输入: "一线城市白领"
实体提取: ["一线城市", "白领"]
关键词泛化: ["高学历", "稳定收入", "消费能力强", "年龄25-40", "有房贷", "使用信用卡"]
匹配字段: 城市等级、职业、年龄、收入、学历等
生成SQL: 多表联查,包含合适的过滤条件

场景2:道德感强的人群

输入: "道德感强的人群"
实体提取: ["道德感"]
关键词泛化: ["已婚", "已育", "养宠物", "有宗教信仰", "慈善捐赠", "诚信记录良好"]
匹配字段: 婚姻状况、子女情况、宠物、宗教信仰、慈善捐赠、信用评分等
生成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             # 项目说明

API接口

POST /api/search

主要的搜索接口,执行完整的检索流程。

请求体:

{
  "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..."
}

扩展开发

添加新的特征字段

  1. feature_service.py_init_sample_data() 方法中添加新的特征定义
  2. 重启后端服务,系统会自动创建新的特征记录

自定义AI分析逻辑

  1. 修改 ai_service.py 中的prompt模板
  2. 调整 _mock_analysis() 方法中的示例数据
  3. 扩展关键词泛化规则

优化SQL生成

  1. sql_generator.py 中添加更多的WHERE条件生成规则
  2. 扩展多表关联逻辑
  3. 添加更复杂的查询模式

GitHub Pages 部署

本项目已配置自动部署到 GitHub Pages。

部署步骤

  1. 将代码推送到 GitHub

    git add .
    git commit -m "Initial commit"
    git push origin main
  2. 启用 GitHub Pages

    • 进入 GitHub 仓库的 Settings 页面
    • 点击左侧菜单的 "Pages"
    • 在 "Source" 下选择 "GitHub Actions"
    • 保存设置
  3. 自动部署

    • 每次推送到 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

About

A demo for AI searching on customer features.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages