AI Conversational PC Buying Assistant - Helps you take orders 24/7
English | 简体中文
Xiaoyaopeipei is an AI conversational PC buying assistant that provides an intelligent SaaS platform for PC shop owners to collect customer requirements and recommend configuration services. It collects customer needs through AI conversations and intelligently recommends suitable PC configuration solutions.
Core Features:
- 🤖 AI Smart Chat - Natural language interaction with automatic customer intent recognition
- 🎯 Precise Configuration Recommendations - Automatically matches the best PC configurations based on needs
- 📊 Customer Lead Management - Automatically collects customer contact information, never missing a potential customer
- 📈 Data Statistics & Analysis - Real-time view of marketing data and conversion effects to optimize business decisions
- 🚀 Quick Deployment - Frontend-backend separation architecture, easy to deploy and scale
- 💻 Dual Platform Support - B-end merchant backend + C-end customer chat interface
- 📱 Responsive Design - Supports both desktop and mobile access
dtsola — IT Architect | One-Person Company Practitioner
🌐 Personal Website | 📺 Bilibili | 💬 WeChat: dtsola (Tech Discussion | Business Collaboration)
WeChat Contact Developer Group User Group
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
- Node.js: >= 18.0.0
- Python: 3.10
- MySQL: 8.0
- Git: Latest version
For detailed deployment guide, see: Docker Deployment Documentation
Environment Variables Configuration:
Edit the docker/.env file and fill in the required configurations:
| Parameter | How to Get | Description |
|---|---|---|
MYSQL_ROOT_PASSWORD |
Custom Generate: openssl rand -base64 16 |
MySQL root password, use strong password |
MYSQL_PASSWORD |
Custom Generate: openssl rand -base64 16 |
Database user password, use strong password |
JWT_SECRET |
Custom Generate: openssl rand -base64 32 |
JWT secret key, must be random string (32+ chars) |
QWEN_API_KEY |
Alibaba Cloud Bailian Platform Create API-KEY after enabling service |
Qwen API key |
OSS_ACCESS_KEY_ID |
Alibaba Cloud OSS Console Get after creating AccessKey |
OSS access key ID |
OSS_ACCESS_KEY_SECRET |
Alibaba Cloud OSS Console Get after creating AccessKey |
OSS access key secret |
OSS_BUCKET |
Alibaba Cloud OSS Console Copy bucket name after creation |
OSS bucket name |
OSS_ENDPOINT |
Select by region • Shanghai: oss-cn-shanghai.aliyuncs.com• Hangzhou: oss-cn-hangzhou.aliyuncs.com• Beijing: oss-cn-beijing.aliyuncs.com |
OSS endpoint |
OSS_HOST |
No custom domain: https://{bucket}.{endpoint}Has custom domain: Fill in bound domain |
OSS file access URL |
AES_KEY |
Custom Generate: openssl rand -base64 24 | head -c 32 |
AES encryption key, must be 32 characters |
MEMBERSHIP_DEFAULT_DAYS |
Custom, default 7 |
Default membership days (granted on registration) |
MEMBERSHIP_RENEWAL_THRESHOLD |
Custom, default 3 |
Membership renewal reminder threshold (days) |
Quick Generate Random Keys:
# Generate JWT_SECRET (example)
openssl rand -base64 32
# Generate AES_KEY (must be 32 characters)
openssl rand -base64 24 | head -c 32One-Command Start All Services:
# 1. Configure environment variables
cd docker
# Edit .env file, fill in real configurations
# 2. Start all services (database migration runs automatically)
docker-compose up -d
# 3. Check service status
docker-compose psLocal Access URLs:
- C-End Frontend: http://localhost
- B-End Frontend: http://localhost/mer
- Backend API: http://localhost/api
Advantages:
- 🚀 One-command start, no manual configuration needed
- 📦 Environment isolation, doesn't affect local system
- 🔄 Auto-run database migrations
- 🛠️ Consistent dev, test, and production environments
# 1. Enter backend directory
cd xiaoyaopeipei-user-merchant-backend
# 2. Create virtual environment (Windows)
py -3.10 -m venv venv
venv\Scripts\activate
# 3. Install dependencies
pip install -r requirements.txt
# 4. Configure environment variables
cp .env.example .env
# Edit .env file, fill in real configurations
# 5. Database migration
alembic upgrade head
# 6. Start service
uvicorn app.main:app --reload --port 8001Backend runs at: http://localhost:8001 API Docs: http://localhost:8001/docs
# 1. Enter C-End frontend directory
cd xiaoyaopeipei-user-frontend
# 2. Install dependencies
pnpm install
# 3. Start dev server
pnpm devC-End runs at: http://localhost:3000
# 1. Enter B-End frontend directory
cd xiaoyaopeipei-mer-frontend
# 2. Install dependencies
pnpm install
# 3. Start dev server
pnpm devB-End runs at: http://localhost:3001
For detailed deployment guide, see: Deployment Documentation
Deployment Architecture:
- Cloud Server: Alibaba Cloud ECS 2-core 4GB
- Web Server: Nginx (reverse proxy + static file serving)
- Process Manager: Supervisor
Domain Planning:
| Project | Domain |
|---|---|
| C-End | user.example.com |
| B-End | mer.example.com |
| API | api.example.com |
- Register Account: Visit B-End, complete email registration
- Configuration Management: Add PC configuration SKUs, set prices and categories
- Generate QR Code: Get exclusive promotion QR code
- Share & Promote: Share QR code with potential customers
- View Leads: Receive customer leads in real-time, follow up quickly
- Data Statistics: View business data, optimize marketing strategies
- Scan to Access: Scan merchant's exclusive QR code to enter chat page
- AI Chat: Express PC needs in natural language
- Get Recommendations: AI intelligently matches best configurations
- Compare & Select: View multiple recommended plans, compare and choose
- Submit Lead: Leave contact information, wait for merchant contact
| Technology | Version | Description |
|---|---|---|
| Python | 3.10+ | Backend development language |
| FastAPI | 0.109+ | High-performance web framework |
| SQLAlchemy | 2.0+ | ORM framework |
| Alembic | Latest | Database migration tool |
| Pydantic | 2.x | Data validation |
| Loguru | 0.7+ | Log management |
| LangChain | 0.1+ | AI agent framework |
| Qwen | qwen-plus | Large language model |
| MySQL | 8.0+ | Relational database |
| Alibaba Cloud OSS | - | File storage |
| JWT | - | User authentication |
| Technology | Version | Description |
|---|---|---|
| Vue | 3.4+ | Progressive frontend framework |
| Vite | 5.0+ | Next-generation build tool |
| TypeScript | 5.0+ | Type-safe JavaScript |
| Ant Design Vue | 4.x | Enterprise UI component library |
| Vue Router | 4.2+ | Official routing |
| Pinia | 2.1+ | New generation state management |
| Axios | Latest | HTTP client |
| ECharts | 5.4+ | Data visualization (B-End) |
| Technology | Description |
|---|---|
| Nginx | Web server / Reverse proxy |
| Supervisor | Process management |
| Docker | Container deployment (optional) |
xiaoyaopeipei/
├── xiaoyaopeipei-user-frontend/ # C-End frontend (Vue 3)
│ ├── src/
│ │ ├── api/ # API client
│ │ ├── views/ # Page components
│ │ ├── components/ # Common components
│ │ ├── stores/ # State management (Pinia)
│ │ └── utils/ # Utility functions
│ ├── package.json
│ └── vite.config.ts
│
├── xiaoyaopeipei-mer-frontend/ # B-End frontend (Vue 3)
│ ├── src/
│ │ ├── api/
│ │ ├── views/
│ │ ├── components/
│ │ ├── stores/
│ │ └── utils/
│ ├── package.json
│ └── vite.config.ts
│
├── xiaoyaopeipei-user-merchant-backend/ # Backend (FastAPI)
│ ├── app/
│ │ ├── api/ # API routes
│ │ │ ├── user/ # C-End endpoints
│ │ │ └── mer/ # B-End endpoints
│ │ ├── core/ # Core configuration
│ │ ├── models/ # SQLAlchemy ORM models
│ │ ├── schemas/ # Pydantic validation
│ │ ├── services/ # Business logic
│ │ ├── utils/ # Utility functions
│ │ └── middleware/ # Middleware
│ ├── alembic/ # Database migrations
│ ├── requirements.txt
│ └── .env.example
│
├── docs/ # Documentation
│ ├── 00-mrd.md # Market requirements
│ ├── 01-prd.md # Product requirements
│ ├── 03-技术方案.md # Technical solution
│ ├── 代码架构.md # Code architecture
│ ├── 数据库文档.md # Database design
│ ├── 接口文档.md # API documentation
│ ├── 部署文档.md # Deployment guide
│ └── 产品文档/
│ ├── logos/ # Brand assets
│ └── 产品截图/ # Feature screenshots
│
└── README.md # This document
| Document | Path | Description |
|---|---|---|
| MRD | docs/00-mrd.md | Market requirements document |
| PRD | docs/01-prd.md | Product requirements document |
| Technical Solution | docs/03-技术方案.md | Technical architecture design |
| Code Architecture | docs/代码架构.md | Complete code structure |
| API Documentation | docs/接口文档.md | RESTful API design |
| Database Documentation | docs/数据库文档.md | Database design |
| Deployment Documentation | docs/部署文档.md | Production deployment guide |
- AI Smart Chat: Natural language interaction based on LangChain + Qwen
- Intent Recognition: Automatically identifies customer needs (office, gaming, design, etc.)
- Configuration Recommendation: Intelligently matches best configurations based on needs
- Plan Comparison: Multi-plan comparison display for customer decisions
- Lead Submission: One-click contact submission for transactions
- Merchant Authentication: Email registration/login, JWT Token authentication
- Configuration Management: CRUD operations for PC configuration SKUs
- Lead Management: View customer lead list and details
- Data Statistics: Dashboard for visits, leads, conversion rate, etc.
- Share Management: Generate exclusive promotion QR codes, track sources
- Profile: Account management, contact platform for recharge, package renewal
- Python: Follow PEP 8, use black + isort for formatting
- TypeScript: Follow ESLint + Prettier standards
- Naming Conventions:
- Python:
snake_case(functions/variables),PascalCase(classes) - TypeScript:
camelCase(variables/functions),PascalCase(classes/components)
- Python:
<type>(<scope>): <subject>
# Type Types
feat: New feature
fix: Bug fix
docs: Documentation update
style: Code formatting
refactor: Refactoring
test: Testing related
chore: Build/tools changes
For detailed standards, see CLAUDE.md
Contributions, issues, and feature requests are welcome!
- Fork this repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'feat: Add some feature') - Push to the branch (
git push origin feature/AmazingFeature) - Create a Pull Request
A: Currently uses Alibaba Cloud Qwen (qwen-plus), with plans to expand to other models.
A: Uses MySQL 8.0 for structured data, Alibaba Cloud OSS for file storage.
A: Modify LangChain prompt templates in app/services/ai_service.py.
A: Yes. The frontend uses responsive design and works on mobile browsers.
A: Contact the platform for recharge. Login to B-End profile to view membership expiration and renew. The system sends reminder notifications before expiration.
A: Login automatically checks membership status. If expired, prompts to contact for renewal. All features restore after renewal.
This project is licensed under the MIT License
- Project Homepage: GitHub
- Issue Tracker: Issues
- Personal Website: https://www.dtsola.com
- WeChat: dtsola (Connect with me, note: github)
Xiaoyaopeipei: AI Conversational PC Buying Assistant - Helps You Take Orders 24/7
Made with ❤️ by Xiaoyao Team



















