场景一:物业客服小王的一天
+++"以前:客户打电话报修,我要问清楚情况,手动在系统里填单子,再转给维修师傅。忙起来一天要填几十张表。"
+"现在:客户一打电话,AI自动记录并判断该派给谁。我只需要确认一下就行。每天能多接好几个电话。"
+
diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..ea149a5
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,24 @@
+# 菲西尔咨询表单服务环境变量配置
+# 复制此文件为 .env 并填写实际值
+
+# 服务配置
+PORT=4001
+
+# 飞书应用配置(在飞书开放平台创建应用获取)
+FEISHU_APP_ID=cli_xxxxxxxxxxxxxxxx
+FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+# 飞书多维表格配置
+# 在飞书多维表格URL中找到 app_token,格式:https://xxx.feishu.cn/bitable/xxxxx
+FEISHU_BITABLE_APP_TOKEN=basxxxxxxxxxxxxxxxx
+
+# 多维表格中的数据表 table_id
+# 在多维表格中点击数据表右上角"..." -> "关于此数据表" -> "数据表 ID"
+FEISHU_BITABLE_TABLE_ID=tblXXXXXXXXXXXXXX
+
+# 飞书机器人 Webhook(可选,用于发送即时通知)
+# 在飞书群中添加自定义机器人获取
+FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+
+# 本地数据存储目录
+DATA_DIR=/opt/ai-landing/data
diff --git a/FEISHU_BITABLE_SETUP.md b/FEISHU_BITABLE_SETUP.md
new file mode 100644
index 0000000..97a3819
--- /dev/null
+++ b/FEISHU_BITABLE_SETUP.md
@@ -0,0 +1,296 @@
+# 飞书多维表格配置指南
+
+## 一、创建飞书多维表格
+
+### 1.1 创建多维表格
+
+1. 登录飞书
+2. 进入「工作台」→ 搜索「多维表格」
+3. 点击「新建多维表格」→ 选择「空白数据表」
+4. 将多维表格命名为「官网客户咨询」
+
+### 1.2 设置字段
+
+在数据表中创建以下字段:
+
+| 序号 | 字段名称 | 字段类型 | 说明 |
+|------|---------|---------|------|
+| 1 | 编号 | 自动编号 | 系统自动生成 |
+| 2 | 姓名 | 文本 | 客户姓名 |
+| 3 | 手机 | 电话号码 | 客户手机 |
+| 4 | 邮箱 | 邮箱 | 客户邮箱 |
+| 5 | 当前使用系统 | 多选 | 物业系统/资管系统/CRM/其他 |
+| 6 | 系统名称 | 文本 | 其他系统名称 |
+| 7 | 咨询内容 | 长文本 | 客户留言 |
+| 8 | 咨询时间 | 创建时间 | 自动记录 |
+| 9 | 处理状态 | 单选 | 待联系/已联系/已转化/无效线索 |
+| 10 | 处理备注 | 文本 | 客服跟进记录 |
+| 11 | 处理人 | 成员 | 负责客服 |
+| 12 | 跟进时间 | 修改时间 | 最后更新时间 |
+
+### 1.3 获取多维表格信息
+
+1. 在浏览器中打开创建的多维表格
+2. URL 格式:`https://xxx.feishu.cn/bitable/appbXXXXXXXXXXXXXX/baselXXXXXXXXXXXXXX`
+3. `appbXXXXXXXXXXXXXX` 就是 **BITABLE_APP_TOKEN**
+4. 点击数据表右上角「...」→「关于此数据表」→「数据表 ID」
+5. 或者进入数据表后,URL 中的 `tbl` 后面的字符串就是 **BITABLE_TABLE_ID**
+
+## 二、创建飞书应用
+
+### 2.1 创建应用
+
+1. 进入 [飞书开放平台](https://open.feishu.cn/)
+2. 点击「创建企业自建应用」
+3. 填写应用名称和描述
+4. 创建后,进入应用详情页
+
+### 2.2 获取凭证
+
+1. 进入「凭证与基础信息」
+2. 获取 **App ID** 和 **App Secret**
+
+### 2.3 配置权限
+
+1. 进入「权限管理」
+2. 搜索并添加以下权限:
+ - `bitable:app` - 多维表格权限
+ - `contact:user.id:readonly` - 通讯录只读权限
+ - `bitable:table:readonly` - 数据表只读
+ - `bitable:record:create` - 创建记录
+ - `bitable:record:update` - 更新记录
+
+### 2.4 发布应用
+
+1. 进入「版本管理与发布」
+2. 创建新版本
+3. 填写版本信息
+4. 提交审核(如果是企业自建应用,通常无需审核直接发布)
+
+### 2.5 添加应用到多维表格
+
+1. 打开创建的多维表格
+2. 点击右上角「...」→「添加应用」
+3. 搜索并添加刚创建的应用
+4. 确保应用有「查看和编辑」权限
+
+## 三、获取 Webhook(可选)
+
+### 3.1 创建群机器人
+
+1. 在飞书中创建一个专用群组(如「官网咨询处理群」)
+2. 点击群设置 → 群机器人 → 添加机器人
+3. 选择「自定义机器人」
+4. 设置机器人名称,点击添加
+5. 复制 Webhook 地址
+
+### 3.2 Webhook 地址格式
+
+```
+https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+```
+
+## 四、环境变量配置
+
+复制 `.env.example` 为 `.env`,填写配置:
+
+```bash
+# 飞书应用凭证
+FEISHU_APP_ID=cli_xxxxxxxxxxxxxxxx
+FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+# 多维表格信息
+FEISHU_BITABLE_APP_TOKEN=appbXXXXXXXXXXXXXX
+FEISHU_BITABLE_TABLE_ID=tblXXXXXXXXXXXXXX
+
+# Webhook(可选)
+FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+```
+
+## 五、启动服务
+
+### 5.1 安装依赖
+
+```bash
+# 仅需要 Python 3.7+(标准库,无需额外安装)
+python3 --version
+```
+
+### 5.2 启动服务
+
+```bash
+# 方法一:直接运行
+python3 consult-service.py
+
+# 方法二:使用环境变量
+FEISHU_APP_ID=xxx FEISHU_APP_SECRET=xxx python3 consult-service.py
+
+# 方法三:使用 .env 文件
+# 安装 python-dotenv(可选)
+pip3 install python-dotenv
+
+# 启动服务
+python3 consult-service.py
+```
+
+### 5.3 验证服务
+
+```bash
+# 健康检查
+curl http://localhost:4001/api/consult/health
+
+# 测试提交
+curl -X POST http://localhost:4001/api/consult \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "测试用户",
+ "phone": "13812345678",
+ "email": "test@example.com",
+ "current_system": ["物业系统", "CRM"],
+ "message": "测试咨询内容"
+ }'
+```
+
+## 六、配置 Nginx 反向代理(生产环境)
+
+```nginx
+server {
+ listen 443 ssl;
+ server_name your-domain.com;
+
+ location /ai/api/consult {
+ proxy_pass http://127.0.0.1:4001;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+
+ # 限制请求体大小
+ client_max_body_size 50k;
+ }
+}
+```
+
+## 七、数据流程
+
+```
+┌─────────────┐
+│ 用户提交 │
+│ 表单数据 │
+└──────┬──────┘
+ │
+ ▼
+┌─────────────┐
+│ 前端验证 │
+│ (HTML5 + │
+│ JavaScript)│
+└──────┬──────┘
+ │
+ ▼
+┌─────────────┐
+│ 后端 API │
+│ /api/consult│
+└──────┬──────┘
+ │
+ ├─────────────────┐
+ │ │
+ ▼ ▼
+┌─────────────┐ ┌─────────────┐
+│ 本地存储 │ │ 飞书多维 │
+│ JSON 文件 │ │ 表格 │
+└─────────────┘ └──────┬──────┘
+ │
+ ▼
+ ┌─────────────┐
+ │ 飞书通知 │
+ │ (Webhook) │
+ └─────────────┘
+```
+
+## 八、故障排查
+
+### 8.1 常见问题
+
+**Q: 飞书多维表格写入失败**
+- 检查 APP_ID 和 APP_SECRET 是否正确
+- 确认应用已发布并添加到多维表格
+- 检查权限是否包含 `bitable:record:create`
+
+**Q: Webhook 通知发送失败**
+- 确认 Webhook 地址正确
+- 检查网络是否可访问外网
+
+**Q: CORS 跨域问题**
+- 确认后端服务正常运行
+- 检查 Nginx 配置是否正确转发
+
+### 8.2 日志查看
+
+服务运行时会输出详细日志:
+
+```
+[2026-05-19 10:00:00] ✓ 飞书 access_token 获取成功
+[2026-05-19 10:00:01] ✓ 本地保存成功: /opt/ai-landing/data/2026-05.json
+[2026-05-19 10:00:02] ✓ 飞书多维表格记录创建成功: recXXXXXXXXXXXXXX
+[2026-05-19 10:00:03] ✓ 飞书通知发送成功
+```
+
+## 九、后续扩展
+
+### 9.1 自动分配处理人
+
+在 `consult-service.py` 中添加逻辑,根据不同条件自动分配处理人:
+
+```python
+def _auto_assign_handler(self, record):
+ # 根据系统类型分配
+ system = record.get("current_system", "")
+ if "物业" in system:
+ return "张三"
+ elif "资管" in system:
+ return "李四"
+ else:
+ return "王五"
+```
+
+### 9.2 自动发送邮件通知
+
+添加邮件通知功能:
+
+```python
+import smtplib
+from email.mime.text import MIMEText
+
+def send_email_notification(self, record):
+ # 配置邮件服务器
+ smtp_server = os.getenv("SMTP_SERVER")
+ smtp_port = int(os.getenv("SMTP_PORT", 587))
+ smtp_user = os.getenv("SMTP_USER")
+ smtp_password = os.getenv("SMTP_PASSWORD")
+
+ msg = MIMEText(f"新咨询:{record['name']} - {record['phone']}", 'plain')
+ msg['Subject'] = '官网新咨询通知'
+ msg['From'] = smtp_user
+ msg['To'] = 'sales@example.com'
+
+ with smtplib.SMTP(smtp_server, smtp_port) as server:
+ server.starttls()
+ server.login(smtp_user, smtp_password)
+ server.send_message(msg)
+```
+
+### 9.3 数据统计
+
+定期统计咨询数据:
+
+```python
+def get_statistics(self):
+ """获取统计数据"""
+ # 按月统计
+ # 按处理状态统计
+ # 按来源统计
+ pass
+```
+
+## 十、联系支持
+
+如有问题,请联系技术支持。
diff --git a/assets/logo/logo-footer.png b/assets/logo/logo-footer.png
new file mode 100644
index 0000000..f288a8f
Binary files /dev/null and b/assets/logo/logo-footer.png differ
diff --git a/assets/logo/logo-nav.png b/assets/logo/logo-nav.png
new file mode 100644
index 0000000..f288a8f
Binary files /dev/null and b/assets/logo/logo-nav.png differ
diff --git a/assets/logo/logo-original.png b/assets/logo/logo-original.png
new file mode 100644
index 0000000..7e4cd2a
Binary files /dev/null and b/assets/logo/logo-original.png differ
diff --git a/assets/logo/logo.png b/assets/logo/logo.png
new file mode 100644
index 0000000..7e4cd2a
Binary files /dev/null and b/assets/logo/logo.png differ
diff --git a/consult-service.py b/consult-service.py
new file mode 100644
index 0000000..069a250
--- /dev/null
+++ b/consult-service.py
@@ -0,0 +1,412 @@
+#!/usr/bin/env python3
+"""
+菲西尔官网咨询表单接收服务
+支持飞书多维表格(Bitable)集成
+"""
+import json
+import os
+import re
+from datetime import datetime
+from http.server import HTTPServer, BaseHTTPRequestHandler
+from typing import Dict, Any, Optional
+import urllib.request
+import urllib.error
+
+
+class FeishuConfig:
+ """飞书配置"""
+ APP_ID = os.getenv("FEISHU_APP_ID", "")
+ APP_SECRET = os.getenv("FEISHU_APP_SECRET", "")
+ BITABLE_APP_TOKEN = os.getenv("FEISHU_BITABLE_APP_TOKEN", "")
+ BITABLE_TABLE_ID = os.getenv("FEISHU_BITABLE_TABLE_ID", "")
+ WEBHOOK_URL = os.getenv("FEISHU_WEBHOOK_URL", "")
+
+
+class FeishuBitableClient:
+ """飞书多维表格客户端"""
+
+ def __init__(self, config: FeishuConfig):
+ self.config = config
+ self.base_url = "https://open.feishu.cn/open-apis"
+ self._access_token: Optional[str] = None
+
+ def get_access_token(self) -> str:
+ """获取 tenant_access_token"""
+ url = f"{self.base_url}/auth/v3/tenant_access_token/internal"
+ payload = json.dumps({
+ "app_id": self.config.APP_ID,
+ "app_secret": self.config.APP_SECRET
+ }).encode()
+
+ req = urllib.request.Request(url, data=payload, method="POST")
+ req.add_header("Content-Type", "application/json")
+
+ with urllib.request.urlopen(req, timeout=10) as resp:
+ data = json.loads(resp.read())
+
+ if data.get("code") != 0:
+ raise Exception(f"获取飞书 access_token 失败: {data.get('msg')}")
+
+ self._access_token = data["tenant_access_token"]
+ print(f"✓ 成功获取飞书 access_token")
+ return self._access_token
+
+ def _request(self, method: str, path: str, data: Dict = None) -> Dict[str, Any]:
+ """发送API请求"""
+ if not self._access_token:
+ self.get_access_token()
+
+ url = f"{self.base_url}{path}"
+ payload = json.dumps(data).encode() if data else None
+
+ req = urllib.request.Request(url, data=payload, method=method)
+ req.add_header("Authorization", f"Bearer {self._access_token}")
+ req.add_header("Content-Type", "application/json")
+
+ try:
+ with urllib.request.urlopen(req, timeout=15) as resp:
+ result = json.loads(resp.read())
+
+ if result.get("code") != 0:
+ raise Exception(f"飞书 API 调用失败: {result.get('msg')}")
+
+ return result.get("data", {})
+ except urllib.error.HTTPError as e:
+ error_body = e.read().decode()
+ raise Exception(f"HTTP {e.code}: {error_body}")
+
+ def create_record(self, fields: Dict[str, Any]) -> Dict[str, Any]:
+ """创建单条记录
+
+ Args:
+ fields: 字段数据
+
+ Returns:
+ 创建的记录信息
+ """
+ path = f"/bitable/v1/apps/{self.config.BITABLE_APP_TOKEN}/tables/{self.config.BITABLE_TABLE_ID}/records"
+ return self._request("POST", path, {"fields": fields})
+
+ def batch_create_records(self, records: list) -> Dict[str, Any]:
+ """批量创建记录
+
+ Args:
+ records: 记录列表,每条记录包含 fields
+
+ Returns:
+ 创建结果
+ """
+ path = f"/bitable/v1/apps/{self.config.BITABLE_APP_TOKEN}/tables/{self.config.BITABLE_TABLE_ID}/records/batch_create"
+ return self._request("POST", path, {"records": records})
+
+
+class ConsultService:
+ """咨询表单服务"""
+
+ def __init__(self):
+ self.feishu_config = FeishuConfig()
+ self.data_dir = "/opt/ai-landing/data"
+ os.makedirs(self.data_dir, exist_ok=True)
+
+ # 初始化飞书客户端
+ self.bitable_client = None
+ if self.feishu_config.APP_ID and self.feishu_config.BITABLE_APP_TOKEN:
+ try:
+ self.bitable_client = FeishuBitableClient(self.feishu_config)
+ print("✓ 飞书多维表格客户端初始化成功")
+ except Exception as e:
+ print(f"⚠ 飞书多维表格初始化失败: {e}")
+ else:
+ print("⚠ 飞书配置未完成,将仅保存本地数据")
+
+ def validate_phone(self, phone: str) -> bool:
+ """验证手机号"""
+ return bool(re.match(r"^1\d{10}$", phone.strip()))
+
+ def validate_email(self, email: str) -> bool:
+ """验证邮箱"""
+ if not email:
+ return True # 邮箱为选填
+ return bool(re.match(r"^[^\s@]+@[^\s@]+\.[^\s@]+$", email.strip()))
+
+ def validate_name(self, name: str) -> bool:
+ """验证姓名"""
+ name = name.strip()
+ return 2 <= len(name) <= 50
+
+ def process_consult(self, data: Dict[str, Any]) -> Dict[str, Any]:
+ """处理咨询数据
+
+ Args:
+ data: 表单提交的数据
+
+ Returns:
+ 处理结果
+ """
+ # 提取字段
+ name = data.get("name", "").strip()
+ phone = data.get("phone", "").strip()
+ email = data.get("email", "").strip()
+ current_system = data.get("current_system", [])
+ system_name = data.get("system_name", "").strip()
+ message = data.get("message", "").strip()
+
+ # 验证必填字段
+ errors = []
+ if not name or not self.validate_name(name):
+ errors.append("姓名格式不正确(2-50个字符)")
+ if not phone or not self.validate_phone(phone):
+ errors.append("手机号格式不正确")
+ if email and not self.validate_email(email):
+ errors.append("邮箱格式不正确")
+
+ if errors:
+ return {
+ "success": False,
+ "error": "; ".join(errors)
+ }
+
+ # 构建记录
+ record = {
+ "time": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
+ "name": name,
+ "phone": phone,
+ "email": email,
+ "current_system": ",".join(current_system) if current_system else "",
+ "system_name": system_name,
+ "message": message,
+ "source": "官网表单"
+ }
+
+ # 保存本地
+ self._save_local(record)
+
+ # 同步飞书
+ self._sync_feishu(record)
+
+ # 发送飞书通知
+ if self.feishu_config.WEBHOOK_URL:
+ self._send_feishu_notification(record)
+
+ return {"success": True, "message": "提交成功"}
+
+ def _save_local(self, record: Dict[str, Any]):
+ """保存到本地文件"""
+ try:
+ month_file = os.path.join(
+ self.data_dir,
+ f"{datetime.now().strftime('%Y-%m')}.json"
+ )
+
+ records = []
+ if os.path.exists(month_file):
+ with open(month_file, 'r', encoding='utf-8') as f:
+ try:
+ records = json.load(f)
+ except json.JSONDecodeError:
+ records = []
+
+ records.append(record)
+
+ with open(month_file, 'w', encoding='utf-8') as f:
+ json.dump(records, f, ensure_ascii=False, indent=2)
+
+ print(f"✓ 本地保存成功: {month_file}")
+ except Exception as e:
+ print(f"⚠ 本地保存失败: {e}")
+
+ def _sync_feishu(self, record: Dict[str, Any]):
+ """同步到飞书多维表格"""
+ if not self.bitable_client:
+ return
+
+ try:
+ # 构建飞书字段格式
+ fields = {
+ "姓名": record["name"],
+ "手机": record["phone"],
+ "咨询内容": record["message"],
+ "处理状态": "待联系" # 默认状态
+ }
+
+ if record["email"]:
+ fields["邮箱"] = record["email"]
+
+ if record["current_system"]:
+ fields["当前使用系统"] = record["current_system"].split(",")
+
+ if record["system_name"]:
+ fields["系统名称"] = record["system_name"]
+
+ # 创建记录
+ result = self.bitable_client.create_record(fields)
+ record_id = result.get("record", {}).get("record_id", "")
+ print(f"✓ 飞书多维表格记录创建成功: {record_id}")
+
+ except Exception as e:
+ print(f"⚠ 飞书多维表格同步失败: {e}")
+
+ def _send_feishu_notification(self, record: Dict[str, Any]):
+ """发送飞书机器人通知"""
+ try:
+ systems_text = record["current_system"] or "未填写"
+
+ msg = {
+ "msg_type": "interactive",
+ "card": {
+ "header": {
+ "title": {
+ "tag": "plain_text",
+ "content": "🔔 官网新咨询"
+ },
+ "template": "turquoise"
+ },
+ "elements": [
+ {
+ "tag": "markdown",
+ "content": (
+ f"**客户信息**\n"
+ f"- 姓名:{record['name']}\n"
+ f"- 电话:{record['phone']}\n"
+ f"- 邮箱:{record['email'] or '未填写'}\n\n"
+ f"**业务信息**\n"
+ f"- 当前系统:{systems_text}\n"
+ f"- 系统名称:{record['system_name'] or '无'}\n\n"
+ f"**咨询内容**\n{record['message'] or '无'}\n\n"
+ f"⏰ 时间:{record['time']}"
+ )
+ },
+ {
+ "tag": "action",
+ "actions": [
+ {
+ "tag": "button",
+ "text": {"tag": "plain_text", "content": "📞 立即联系"},
+ "type": "primary"
+ }
+ ]
+ }
+ ]
+ }
+ }
+
+ payload = json.dumps(msg).encode()
+ req = urllib.request.Request(
+ self.feishu_config.WEBHOOK_URL,
+ data=payload,
+ headers={"Content-Type": "application/json"}
+ )
+
+ with urllib.request.urlopen(req, timeout=5) as resp:
+ if resp.status == 200:
+ print("✓ 飞书通知发送成功")
+ else:
+ print(f"⚠ 飞书通知响应异常: {resp.status}")
+
+ except Exception as e:
+ print(f"⚠ 飞书通知发送失败: {e}")
+
+
+class RequestHandler(BaseHTTPRequestHandler):
+ """HTTP 请求处理器"""
+
+ def __init__(self, *args, **kwargs):
+ self.service = ConsultService()
+ super().__init__(*args, **kwargs)
+
+ def do_POST(self):
+ """处理 POST 请求"""
+ if self.path != "/api/consult":
+ self._send(404, {"error": "not found"})
+ return
+
+ # 检查 Content-Length
+ length = int(self.headers.get("Content-Length", 0))
+ if length > 50000: # 限制 50KB
+ self._send(400, {"error": "payload too large"})
+ return
+ if length == 0:
+ self._send(400, {"error": "empty request body"})
+ return
+
+ # 读取请求体
+ body = self.rfile.read(length)
+
+ # 解析 JSON
+ try:
+ data = json.loads(body)
+ except json.JSONDecodeError:
+ self._send(400, {"error": "invalid json"})
+ return
+
+ # 处理咨询
+ result = self.service.process_consult(data)
+
+ if result.get("success"):
+ self._send(200, result)
+ else:
+ self._send(400, result)
+
+ def do_GET(self):
+ """处理 GET 请求"""
+ if self.path == "/api/consult/health":
+ self._send(200, {"ok": True, "service": "consult-api"})
+ elif self.path == "/api/consult":
+ self._send(200, {
+ "service": "consult-api",
+ "version": "1.0.0",
+ "endpoints": {
+ "POST /api/consult": "提交咨询表单"
+ }
+ })
+ else:
+ self._send(404, {"error": "not found"})
+
+ def do_OPTIONS(self):
+ """处理 CORS 预检请求"""
+ self.send_response(200)
+ self.send_header("Access-Control-Allow-Origin", "*")
+ self.send_header("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
+ self.send_header("Access-Control-Allow-Headers", "Content-Type")
+ self.send_header("Access-Control-Max-Age", "86400")
+ self.end_headers()
+
+ def _send(self, code: int, data: Dict[str, Any]):
+ """发送响应"""
+ self.send_response(code)
+ self.send_header("Content-Type", "application/json")
+ self.send_header("Access-Control-Allow-Origin", "*")
+ self.send_header("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
+ self.send_header("Access-Control-Allow-Headers", "Content-Type")
+ self.end_headers()
+ self.wfile.write(json.dumps(data, ensure_ascii=False).encode())
+
+ def log_message(self, fmt, *args):
+ """自定义日志格式"""
+ timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
+ print(f"[{timestamp}] {fmt % args}")
+
+
+def main():
+ """启动服务"""
+ port = int(os.getenv("PORT", 4001))
+
+ print("=" * 60)
+ print("菲西尔官网咨询表单接收服务")
+ print("=" * 60)
+ print(f"服务地址:http://0.0.0.0:{port}")
+ print(f"API 端点:POST /api/consult")
+ print(f"健康检查:GET /api/consult/health")
+ print("=" * 60)
+
+ server = HTTPServer(("0.0.0.0", port), RequestHandler)
+
+ try:
+ server.serve_forever()
+ except KeyboardInterrupt:
+ print("\n服务已停止")
+ server.shutdown()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/deploy.sh b/deploy.sh
new file mode 100644
index 0000000..43a82c0
--- /dev/null
+++ b/deploy.sh
@@ -0,0 +1,100 @@
+#!/bin/bash
+# 菲西尔咨询表单服务 - 快速部署脚本
+
+set -e
+
+# 颜色定义
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+NC='\033[0m' # No Color
+
+echo -e "${GREEN}========================================${NC}"
+echo -e "${GREEN}菲西尔咨询表单服务 - 快速部署${NC}"
+echo -e "${GREEN}========================================${NC}"
+
+# 检查 Python 版本
+echo -e "\n${YELLOW}[1/5] 检查 Python 环境...${NC}"
+python3 --version || {
+ echo -e "${RED}错误: 未找到 Python3${NC}"
+ exit 1
+}
+echo -e "${GREEN}✓ Python 检查通过${NC}"
+
+# 检查环境变量
+echo -e "\n${YELLOW}[2/5] 检查环境变量...${NC}"
+
+if [ ! -f .env ]; then
+ echo -e "${YELLOW}未找到 .env 文件,创建示例...${NC}"
+ cp .env.example .env
+ echo -e "${YELLOW}请编辑 .env 文件填写配置${NC}"
+ exit 1
+fi
+
+source .env
+
+if [ -z "$FEISHU_APP_ID" ] || [ "$FEISHU_APP_ID" == "cli_xxx" ]; then
+ echo -e "${RED}错误: 请在 .env 中配置 FEISHU_APP_ID${NC}"
+ exit 1
+fi
+
+if [ -z "$FEISHU_BITABLE_APP_TOKEN" ] || [ "$FEISHU_BITABLE_APP_TOKEN" == "basxxx" ]; then
+ echo -e "${RED}错误: 请在 .env 中配置 FEISHU_BITABLE_APP_TOKEN${NC}"
+ exit 1
+fi
+
+echo -e "${GREEN}✓ 环境变量检查通过${NC}"
+
+# 创建数据目录
+echo -e "\n${YELLOW}[3/5] 创建数据目录...${NC}"
+DATA_DIR="${DATA_DIR:-/opt/ai-landing/data}"
+sudo mkdir -p "$DATA_DIR"
+sudo chown $(whoami):$(whoami) "$DATA_DIR"
+echo -e "${GREEN}✓ 数据目录创建成功: $DATA_DIR${NC}"
+
+# 测试飞书连接
+echo -e "\n${YELLOW}[4/5] 测试飞书连接...${NC}"
+python3 -c "
+from consult_service import ConsultService
+service = ConsultService()
+try:
+ token = service.bitable_client.get_access_token()
+ print('✓ 飞书连接测试成功')
+except Exception as e:
+ print(f'✗ 飞书连接失败: {e}')
+ exit(1)
+"
+
+# 启动服务
+echo -e "\n${YELLOW}[5/5] 启动服务...${NC}"
+PORT="${PORT:-4001}"
+echo -e "${GREEN}服务将在端口 $PORT 启动${NC}"
+echo -e "${GREEN}API 端点: http://localhost:$PORT/api/consult${NC}"
+echo -e "${GREEN}健康检查: http://localhost:$PORT/api/consult/health${NC}"
+
+# 使用 nohup 后台运行
+nohup python3 consult-service.py > service.log 2>&1 &
+SERVICE_PID=$!
+
+echo $SERVICE_PID > .service.pid
+
+sleep 2
+
+# 检查服务是否启动
+if ps -p $SERVICE_PID > /dev/null; then
+ echo -e "\n${GREEN}========================================${NC}"
+ echo -e "${GREEN}✓ 服务启动成功!${NC}"
+ echo -e "${GREEN}========================================${NC}"
+ echo -e "进程 ID: $SERVICE_PID"
+ echo -e "日志文件: service.log"
+ echo -e "\n停止服务: kill \$(cat .service.pid)"
+else
+ echo -e "\n${RED}错误: 服务启动失败${NC}"
+ echo -e "请查看日志: tail -f service.log"
+ exit 1
+fi
+
+echo -e "\n${YELLOW}下一步操作:${NC}"
+echo "1. 配置 Nginx 反向代理(可选)"
+echo "2. 设置系统服务自动启动"
+echo "3. 查看飞书多维表格配置指南: FEISHU_BITABLE_SETUP.md"
diff --git a/docs/copy-and-analysis.md b/docs/copy-and-analysis.md
new file mode 100644
index 0000000..0c45eef
--- /dev/null
+++ b/docs/copy-and-analysis.md
@@ -0,0 +1,447 @@
+# 菲西尔官网文案整理
+
+> 更新时间:2026-05-04
+
+---
+
+## 一、企业信息
+
+### 1.1 公司信息
+- **公司名:** 上海菲西尔智能科技有限公司
+- **定位语:** 智能叠加——不推翻重来,在现有系统上叠加 AI 能力
+
+### 1.2 一句话价值主张
+
+> **不换系统,2周让AI落地**
+
+---
+
+## 二、首页(H1)
+
+### 2.1 主标题
+**原文:**
+> 不推倒重来,只做智能叠加
+
+**AI味分析:**
+- ❌ "智能叠加" 太技术化,普通企业主听不懂
+- ❌ "推倒重来" 是技术语言,不够口语化
+
+**建议修改:**
+> 不换系统,也能用上AI
+
+---
+
+### 2.2 副标题
+**原文:**
+> 在已运转的业务系统之上叠加 AI 智能层。2 周部署,零迁移成本,让旧系统拥有新大脑。
+
+**AI味分析:**
+- ❌ "叠加 AI 智能层" 太技术
+- ❌ "零迁移成本" 是行业术语
+- ❌ "旧系统拥有新大脑" 过于抽象
+
+**建议修改:**
+> 不换现有系统,2周让AI上岗。不用迁移数据,不用重新培训员工。
+
+---
+
+### 2.3 CTA按钮
+| 位置 | 原文 | AI味 | 建议修改 |
+|------|------|------|---------|
+| 主按钮 | 获取行业定制方案 | 太正式 | 预约免费诊断 |
+| 次按钮 | 了解痛点 → | 还行 | 看看适不适合我 → |
+
+---
+
+## 三、痛点洞察
+
+### 3.1 章节标题
+**原文:** 你的系统,正在偷走你的利润
+
+**AI味:** "偷走你的利润" 有点夸张,像是在恐吓营销
+
+**建议修改:**
+> 你的系统,是不是越用越累?
+
+---
+
+### 3.2 章节副标题
+**原文:** 每一个你习以为常的流程背后,都藏着被浪费的成本和错失的机会。
+
+**AI味:** 太书面化,像是在写报告
+
+**建议修改:**
+> 每天忙成这样,系统帮到你了吗?
+
+---
+
+### 3.3 四大痛点
+
+#### 痛点01
+| 项目 | 原文 | AI味分析 |
+|------|------|---------|
+| **标题** | 每年几十万数据录入费,换来零决策价值 | ⚠️ "几十万"太虚,不如说具体场景 |
+| **正文** | 物业、资管、CRM 积累了海量数据,却像仓库里的积压库存。记录了一大堆,决策还是靠拍脑袋。 | ❌ "海量数据"、"积压库存"太抽象 通俗地说,AI叠加就是在你们公司正在用的系统旁边,再加一个"AI小助手"。 比如你们现在用物业系统报修、AI叠加之后,系统会自动判断这个工单应该派给谁,甚至能提前告诉你某个设备可能要坏了。 关键是:你不用换系统,不用重新录入数据,员工还是用原来的界面,只是多了AI帮你干活。 "以前:客户打电话报修,我要问清楚情况,手动在系统里填单子,再转给维修师傅。忙起来一天要填几十张表。" "现在:客户一打电话,AI自动记录并判断该派给谁。我只需要确认一下就行。每天能多接好几个电话。" "以前:每到月底就要从好几个系统里导数据,拼成Excel汇报。经常漏掉哪个租户要续约了。" "现在:直接问AI'下个月有哪些租约要到期',它给我一个完整的列表。租金定价也有参考建议了。" 我们发现一个现象:很多企业其实不缺系统,缺的是让这些系统"活起来"的能力。 很多企业在2018-2022年间上了各种业务系统:物业ERP、资产管理系统、CRM。系统是有了,但: 换系统?成本太高,员工也抵触。 不换?眼睁睁看着效率低下。 所以我们做了菲西尔——在不换系统的前提下,让AI来提升效率。
❌ "决策还是靠拍脑袋"OK |
+
+**建议修改:**
+> **标题:** 数据填了一大堆,用的时候找不到
+>
+> **正文:** 物业、资管、CRM 记了几年的数据,真正想查一个客户情况的时候,还是要翻半天Excel。数据有了,但用不上。
+
+---
+
+#### 痛点02
+| 项目 | 原文 | AI味分析 |
+|------|------|---------|
+| **标题** | 系统越多 盲区越大,管理者像盲人摸象 | ⚠️ "盲人摸象"比喻OK,但"盲区"太抽象 |
+| **正文** | 报修、资产、客户分属不同系统。永远拼不出完整的业务全景,资源错配成了常态。 | ❌ "业务全景"太虚
❌ "资源错配成了常态"像报告 |
+
+**建议修改:**
+> **标题:** 系统买了好几个,想看个汇总数据还要手工算
+>
+> **正文:** 报修一个系统,资产一个系统,客户又一个系统。想看看这个月整体情况?对不起,要好几天后才能算出来。
+
+---
+
+#### 痛点03
+| 项目 | 原文 | AI味分析 |
+|------|------|---------|
+| **标题** | 高薪人才 70% 时间,耗在填表和派单 | ⚠️ "70%"太精确,像是拍脑袋写的 |
+| **正文** | 招来的专业人才,精力被重复事务榨干。高射炮打蚊子,人效极低,人才流失率越来越高。 | ❌ "高射炮打蚊子"OK
❌ "人效极低"太报告化 |
+
+**建议修改:**
+> **标题:** 招了人,每天却在做重复的事
+>
+> **正文:** 销售每天花2小时录入客户信息,物业员工每天填几十张巡检表。人都招对了,但时间没用在正事上。
+
+---
+
+#### 痛点04
+| 项目 | 原文 | AI味分析 |
+|------|------|---------|
+| **标题** | 资深员工一离职,十年经验全清零 | ⚠️ "十年"有点夸张 |
+| **正文** | 业务精髓藏在老员工脑子里。离职交接靠口口相传,离职后能力断层直接拖垮业务。 | ⚠️ "口口相传"OK
❌ "能力断层直接拖垮业务"太吓人 |
+
+**建议修改:**
+> **标题:** 老员工一走,业务就卡壳
+>
+> **正文:** 经验都在老员工身上,他一休假,所有人等他回来。交接只能靠嘴说,做事的方法没沉淀下来。
+
+---
+
+### 3.4 核心洞察框
+**原文:**
+> AI 不会取代你的系统,但会让你的系统自己思考。
+> 不是推倒重来,是让现有的系统拥有大脑。
+
+**AI味:**
+- ❌ "让系统自己思考"太科幻
+- ❌ "让现有的系统拥有大脑"太抽象
+
+**建议修改:**
+> 不用换系统,让AI帮你干活。
+> 重复的事AI干,你做重要的决定。
+
+---
+
+## 四、核心服务
+
+### 4.1 章节标题
+**原文:** 把 AI 变成你的,核心生产力
+
+**AI味:** "核心生产力"太虚,像喊口号
+
+**建议修改:**
+> 让AI替你干活,你做决定
+
+---
+
+### 4.2 章节副标题
+**原文:** 三个行业场景,一条相同逻辑:不替换,只增强。
+
+**AI味:** OK,但可以更口语
+
+**建议修改:**
+> 不换系统,只让AI帮你提升效率
+
+---
+
+### 4.3 服务01:AI+物业
+
+| 项目 | 原文 | AI味分析 |
+|------|------|---------|
+| **指标** | 60% | ⚠️ 这个数字哪来的?没有来源 |
+| **标题** | AI+物业,智能中枢 | ❌ "智能中枢"太虚 |
+| **正文** | 工单自动分发,客诉响应提速 60%。在现有物业 ERP 之上叠加 AI 调度层——不改变任何原有流程。巡检路线自动规划、设备故障提前预警。你现有的系统不用换,但效率会翻倍。 | ❌ "叠加 AI 调度层"太技术
❌ "巡检路线自动规划"是功能罗列
❌ "效率会翻倍"没依据 |
+| **金句** | "不是换系统,是让系统变聪明。" | ⚠️ "让系统变聪明"有点虚 |
+
+**建议修改:**
+> **指标:** 客诉从2小时 → 30分钟
+>
+> **标题:** 物业AI帮手
+>
+> **正文:** 客户一报修,系统自动判断该派给谁。设备快出问题了,提前提醒你。巡检路线AI规划好,不用人工排。员工还是用原来的系统,只是少了很多麻烦。
+>
+> **金句:** 员工说:这系统,终于能帮我干活了。
+
+---
+
+### 4.4 服务02:AI+资管
+
+| 项目 | 原文 | AI味分析 |
+|------|------|---------|
+| **指标** | 90 天 | ⚠️ 太抽象 |
+| **标题** | AI+资管,风控大脑 | ❌ "风控大脑"太虚 |
+| **正文** | 空置率提前 90 天预警,租金定价误差收窄至 5%。无缝接入资管平台,让历史租赁数据变成预测模型。招商智能匹配、租约到期提醒。 | ❌ "无缝接入"太技术
❌ "预测模型"太虚
❌ "智能匹配"是功能罗列 |
+| **金句** | 资管不该靠直觉,该靠数据。 | ⚠️ OK,但不够口语 |
+
+**建议修改:**
+> **指标:** 下个月哪些楼层要空,现在就知道
+>
+> **标题:** 资管AI帮手
+>
+> **正文:** 租约快到期了,系统提前告诉你。哪个楼层可能要空出来,提前做准备。定租金的时候,AI会参考历史数据给你建议。不用天天盯着Excel了。
+>
+> **金句:** 老板说:终于不用靠猜了。
+
+---
+
+### 4.5 服务03:AI+CRM
+
+| 项目 | 原文 | AI味分析 |
+|------|------|---------|
+| **指标** | 40% | ⚠️ 没来源 |
+| **标题** | AI+CRM,效率跃升 | ❌ "效率跃升"太虚 |
+| **正文** | 线索自动清洗,销售人效提升 40%。为现有 CRM 配备 AI 助理——自动捕捉商机、生成对话摘要。销售无需学习新软件,打开原界面就能看到 AI 推荐。 | ❌ "线索自动清洗"太技术
❌ "人效提升"没依据
❌ "对话摘要"可以更具体 |
+| **金句** | "销售的时间应该花在客户身上,不是系统里。" | ⚠️ OK |
+
+**建议修改:**
+> **指标:** 销售每天多跟进3个客户
+>
+> **标题:** CRM AI帮手
+>
+> **正文:** 新线索进来了,AI帮你过滤掉假的、重复的。打完电话,AI自动帮你写好跟进记录。打开CRM,推荐你今天最该联系哪些客户。不用学新东西,在原来的界面里多了一个助手。
+>
+> **金句:** 销售说:终于不用录系统了。
+
+---
+
+## 五、解决路径
+
+### 5.1 章节标题
+**原文:** 菲西尔和其他 AI 公司有什么不同
+
+**AI味:** 有点挑衅,但不是坏事
+
+**建议修改:**
+> 我们和别的AI公司有什么不同
+
+---
+
+### 5.2 五大差异点
+
+#### 01 不替换,只叠加
+| 原文 | AI味分析 |
+|------|---------|
+| 通过 API 外挂 AI 层,不停服、不迁移、不改流程。员工用原来的界面,体验无缝升级。 | ❌ "API外挂"太技术
❌ "无缝升级"太虚 |
+
+**建议修改:**
+> 不动你的系统,在旁边加个AI帮手。你还是用原来的界面,只是多了AI帮你干那些重复的事。
+
+---
+
+#### 02 让数据开口说话
+| 原文 | AI味分析 |
+|------|---------|
+| 沉睡的历史数据自动转化为预测模型和决策建议。把事后统计变为事前预警。 | ❌ "预测模型"太虚
❌ "事前预警"OK |
+
+**建议修改:**
+> 你系统里几年的数据,AI帮你分析。哪个客户可能要流失,哪个楼层可能要空,AI提前告诉你。
+
+---
+
+#### 03 让 AI 替你干活
+| 原文 | AI味分析 |
+|------|---------|
+| 高频重复工作交给 AI Agent——智能客服、招商匹配、巡检规划自动运转,人只负责关键决策。 | ❌ "AI Agent"太技术
❌ 功能罗列太抽象 |
+
+**建议修改:**
+> 那些每天都要做、每次都一样的活,AI帮你干了。比如回复客户常见问题、巡检报告自动生成。AI干完了,你看一眼就行。
+
+---
+
+#### 04 跨系统一屏掌控
+| 原文 | AI味分析 |
+|------|---------|
+| 所有业务数据在 AI 层融合。一句自然语言就能查"本月哪些楼宇空置率超标",告别手动汇总。 | ⚠️ "自然语言"有点虚
❌ "告别手动汇总"OK |
+
+**建议修改:**
+> 问AI:上个月哪几个客户投诉最多?AI直接给你答案。不用再从好几个系统里导数据、拼表格。
+
+---
+
+#### 05 小步试错,大步扩张
+| 原文 | AI味分析 |
+|------|---------|
+| 从单一场景试点,验证有效再扩展。每一步都可衡量投入产出,钱花在刀刃上。 | ⚠️ "小步试错"OK
❌ "投入产出"太虚 |
+
+**建议修改:**
+> 先在一个场景试,效果好再扩大。不满意可以停,不用一下子投很多钱。
+
+---
+
+## 六、GEO(Growth Engineering Optimization)
+
+### 6.1 章节标题
+**原文:** 让用户在大模型里,第一个找到你
+
+**AI味:** 有点绕
+
+**建议修改:**
+> 当客户问AI"哪家做物业AI好",你排第几?
+
+---
+
+### 6.2 副标题
+**原文:** 对内提效降本,对外重塑获客
+
+**AI味:** 太抽象
+
+**建议修改:**
+> 对内:省人工。对外:让新客户主动找上门。
+
+---
+
+### 6.3 正文
+**原文:**
+> 当客户问 Kimi 或文心一言"帮我找一家做 AI+物业的公司"——你的品牌会不会出现在答案里?我们优化企业在主流大模型中的内容结构与权重,从"搜索排名"进化为"答案占位"。
+
+**AI味:**
+- ❌ "内容结构与权重"太技术
+- ❌ "答案占位"OK但可以更直白
+
+**建议修改:**
+> 以前客户上网搜,现在客户问AI。不管客户问Kimi、ChatGPT还是文心一言,当他们问"哪家做物业AI比较好",你的品牌能不能出现在AI的答案里?
+>
+> 我们帮你做这件事。
+
+---
+
+### 6.4 金句
+**原文:** "未来的获客,不是在搜索结果里抢位置,而是在 AI 答案里占一席之地。"
+
+**AI味:** ⚠️ 逻辑OK,但有点绕
+
+**建议修改:**
+> 以后客户找供应商,不只是看网站排名,是问AI推荐。
+> 你的品牌,能不能被AI推荐?
+
+---
+
+## 七、合作咨询
+
+### 7.1 章节标题
+**原文:** 15 分钟,看看你的系统,能叠加什么
+
+**AI味:** ⚠️ "叠加"这个词又出现了
+
+**建议修改:**
+> 30分钟,我们看看你的系统能用AI干什么
+
+---
+
+### 7.2 正文
+**原文:** 不推销,只评估,基于你现有架构,给出一份可落地的 AI 叠加建议。
+
+**AI味:** ⚠️ "可落地的AI叠加建议"太虚
+
+**建议修改:**
+> 不卖东西,只帮你分析。先看看你的系统现在什么情况,AI能帮你省多少事、花多少钱。
+
+---
+
+### 7.3 表单标签
+| 原文 | AI味 | 建议修改 |
+|------|------|---------|
+| 怎么称呼您 | 太正式 | 您的名字 |
+| 手机号码 | OK | 手机(方便联系您)|
+| 邮箱 | OK | 邮箱(选填)|
+| 你现在用的是哪个系统? | OK | 简单说说您现在用的什么系统(选填)|
+
+---
+
+### 7.4 提交按钮
+**原文:** 预约诊断名额
+
+**建议修改:**
+> 预约免费诊断
+
+---
+
+## 八、页脚
+
+### 原文
+- 技术支持:上海菲西尔智能科技有限公司
+- 版权:© 2026 SHANGHAI FISCHER INTELLIGENT TECHNOLOGY CO., LTD.
+
+**建议修改:**
+- 公司名保留即可
+- 版权声明太长了,保留"© 2026 菲西尔智能"
+
+---
+
+## 九、总结:AI味识别清单
+
+### 9.1 问题类型
+
+| 问题类型 | 示例 | 修改方向 |
+|---------|------|---------|
+| **太技术化** | "API外挂"、"AI Agent"、"预测模型" | 翻译成人话 |
+| **太抽象** | "智能中枢"、"核心生产力"、"风控大脑" | 说具体能干什么 |
+| **太虚** | "效率翻倍"、"无缝升级"、"让系统变聪明" | 说具体省多少时间 |
+| **像报告** | "资源错配"、"事前预警"、"投入产出" | 像人说话 |
+| **数据没来源** | "60%"、"40%"、"70%" | 要么给来源,要么不说 |
+
+### 9.2 修改原则
+
+1. **能用对话的,就不用陈述**
+ - ❌ "客诉响应提速60%"
+ - ✅ "客户等了2小时变成30分钟"
+
+2. **能说人话的,就不说术语**
+ - ❌ "AI调度层"
+ - ✅ "AI帮你派单"
+
+3. **能用场景的,就不用概念**
+ - ❌ "数据驱动决策"
+ - ✅ "AI帮你分析完,告诉你该联系谁"
+
+4. **能看懂的,就不解释**
+ - ❌ "自然语言查询"
+ - ✅ "你问AI,AI直接回答"
+
+---
+
+## 十、核心价值主张(最终版)
+
+### 一句话
+> **不换系统,2周让AI上岗**
+
+### 一段话
+> 菲西尔帮你把AI接到你现有的系统里。不用换系统,不用迁移数据,不用重新培训员工。物业、资管、CRM都能用。AI帮你干那些每天重复的事,你做重要的决定。
+>
+> 先在一个场景试,效果好再扩大。不满意可以停,不用一下子投很多钱。
+
+### 金句集合
+
+| 场景 | 金句 |
+|------|------|
+| 物业 | "员工说:这系统,终于能帮我干活了。" |
+| 资管 | "老板说:终于不用靠猜了。" |
+| CRM | "销售说:终于不用录系统了。" |
+| 通用 | "AI干重复的事,人做重要的事。" |
+| GEO | "以后客户找供应商,是问AI推荐。你的品牌能不能被AI推荐?" |
+
+---
+
+*整理时间:2026-05-04*
diff --git a/docs/copy-changes.md b/docs/copy-changes.md
new file mode 100644
index 0000000..5e39a1f
--- /dev/null
+++ b/docs/copy-changes.md
@@ -0,0 +1,240 @@
+# 文案修改前后对比
+
+> 更新时间:2026-05-04
+
+---
+
+## 一、Hero 区域
+
+### 1.1 Badge(徽章)
+
+| 位置 | 修改前 | 修改后 | 问题原因 |
+|------|--------|--------|---------|
+| Hero Badge | 企业的 AI 全栈伙伴 | 不换系统,2周让AI上岗 | ❌ 太营销化,像在喊口号 |
+| | | | ✅ 修改后直接说价值主张 |
+
+---
+
+### 1.2 主标题
+
+| 修改前 | 修改后 | 问题原因 |
+|--------|--------|---------|
+| 用 AI 做事 + 被 AI 推荐
菲西尔让两者同时发生 | 不换系统
2周让AI帮你干活 | ❌ "用AI做事"太抽象
❌ "让两者同时发生"像废话
❌ "菲西尔让..."主语不对 |
+| | | ✅ 主语变成"你",更亲切
✅ 直接说"不换系统" |
+
+---
+
+### 1.3 副标题
+
+| 修改前 | 修改后 | 问题原因 |
+|--------|--------|---------|
+| 效率 AI:不换系统,24h 内让现有系统拥有 AI 能力
获客 AI:被 ChatGPT/Claude 推荐,客户主动找上门 | 物业、资管、CRM,都不用换
AI帮你干重复的事,你做重要的决定 | ❌ "效率AI"、"获客AI"是内部术语
❌ "24h内"太技术
❌ 客户不知道ChatGPT是什么 |
+| | | ✅ 说具体行业"物业、资管、CRM"
✅ 说人话"干重复的事" |
+
+---
+
+### 1.4 CTA按钮
+
+| 位置 | 修改前 | 修改后 | 问题原因 |
+|------|--------|--------|---------|
+| 主按钮 | 了解方案 | 看看适不适合我 | ❌ 太正式,像销售
❌ "方案"这个词太虚 |
+| | | | ✅ "看看适不适合我"更真诚 |
+| 次按钮 | 预约咨询 | 先问问再说 | ❌ "预约咨询"像要去开会 |
+| | | | ✅ "先问问再说"降低决策压力 |
+
+---
+
+### 1.5 核心指标
+
+| 修改前 | 修改后 | 问题原因 |
+|--------|--------|---------|
+| 24h / 效率 AI 上线 | 2周 / 部署上线 | ❌ "24h"太激进,不现实
❌ "效率AI上线"术语 |
+| 3x / 获客增长 | 原系统 / 不用换 | ❌ "3x获客增长"没依据
❌ 客户最关心的是"不用换系统" |
+
+---
+
+## 二、痛点区域
+
+### 2.1 章节标题
+
+| 修改前 | 修改后 | 问题原因 |
+|--------|--------|---------|
+| 你的顾虑,我们都懂 | 你的顾虑,我们都知道 | ❌ "都懂"有点油嘴滑舌 |
+| 效率 AI + 获客 AI,我们都有成熟方案 | 换系统太麻烦,数据迁移风险大,招人贵还没效果 | ❌ 客户不关心"AI",关心自己的问题
✅ 说具体痛点 |
+
+---
+
+### 2.2 痛点卡片01
+
+| 项目 | 修改前 | 修改后 | 问题原因 |
+|------|--------|--------|---------|
+| 标题 | 想升级 AI,但不敢换系统? | 想用AI,但不想换系统 | ❌ "升级AI"太技术
❌ "不敢"是在恐吓 |
+| 正文 | 换了系统要重新培训,历史数据迁移风险大。我们的方案:0数据迁移,原有系统继续用,第二天就能用 AI。 | 系统用习惯了,换了要重新培训,数据迁移还有风险。其实不用换,在旁边加个AI帮手就行。 | ❌ "我们的方案"像推销
❌ "0数据迁移"是内部术语
✅ 说人话"在旁边加个AI帮手" |
+
+---
+
+### 2.3 痛点卡片02
+
+| 项目 | 修改前 | 修改后 | 问题原因 |
+|------|--------|--------|---------|
+| 标题 | 客户越来越少,不知道去哪找? | 招了人,天天在做重复的事 | ❌ 和GEO内容重复
❌ 客户真正痛点是"人没做正事" |
+| 正文 | SEO 越来越难,AI搜索正在崛起,但不知道怎么优化。我们的方案:交给菲西尔,让 AI推荐你的业务。 | 销售每天录客户信息,物业员工每天填巡检表。人招对了,但时间没用在正事上。 | ❌ SEO、AI搜索是技术术语
❌ "让AI推荐"没解释清楚
✅ 说具体场景"录客户信息、填巡检表" |
+
+---
+
+### 2.4 痛点卡片03
+
+| 项目 | 修改前 | 修改后 | 问题原因 |
+|------|--------|--------|---------|
+| 标题 | 投入太大,效果不确定? | 投入了没效果,钱打水漂 | ❌ "效果不确定"太抽象 |
+| 正文 | AI项目失败率高,营销效果难以衡量。我们的方案:按效果付费,没有效果不收费。 | 之前买的系统用不起来,员工不会用也不想用。先试再决定,效果好了再扩大。 | ❌ "AI项目失败率"像在吓唬人
❌ "按效果付费"像在承诺
✅ 说真实情况"系统用不起来" |
+
+---
+
+## 三、解决方案区域
+
+### 3.1 章节标题
+
+| 修改前 | 修改后 | 问题原因 |
+|--------|--------|---------|
+| 用 AI 做事 + 被 AI 推荐 | 不换系统,让AI帮你干活 | ❌ "用AI做事"太抽象
❌ "被AI推荐"客户不关心 |
+| 效率 AI:让现有系统拥有 AI 能力
获客 AI:让 AI 搜索推荐你的业务 | 物业、资管、CRM,都不用换
AI帮你干那些每天重复的事 | ❌ "效率AI"、"获客AI"是术语
✅ 说具体行业
✅ 说人话"干重复的事" |
+
+---
+
+### 3.2 服务01
+
+| 项目 | 修改前 | 修改后 | 问题原因 |
+|------|--------|--------|---------|
+| 标题 | 效率 AI | 物业AI帮手 | ❌ "效率AI"是术语 |
+| 正文 | 在现有系统上叠加 AI 能力,不换系统、不迁数据、不停业务。物业、资管、CRM,24h 内全部升级。 | 客户一报修,系统自动判断该派给谁。设备快出问题了,提前提醒你。巡检路线AI规划好,不用人工排。 | ❌ "叠加AI能力"太技术
❌ 功能罗列太抽象
✅ 说具体场景"一报修就派单" |
+| 标签 | 物业系统、资管系统、CRM | 智能派单、设备预警、路线规划 | ❌ "物业系统"没说明白
✅ 说具体功能 |
+
+---
+
+### 3.3 服务02
+
+| 项目 | 修改前 | 修改后 | 问题原因 |
+|------|--------|--------|---------|
+| 标题 | 获客 AI | 资管AI帮手 | ❌ "获客AI"客户不关心 |
+| 正文 | AI 时代的 SEO。当潜在客户问 ChatGPT "哪家物业公司好",你的公司会被主动推荐。 | 租约快到期了,系统提前告诉你。哪个楼层可能要空出来,提前做准备。定租金的时候,AI会参考历史数据给你建议。 | ❌ "AI时代的SEO"客户听不懂
❌ "ChatGPT"客户不一定用
✅ 说具体场景"租约到期、空置预警" |
+
+---
+
+### 3.4 服务03
+
+| 项目 | 修改前 | 修改后 | 问题原因 |
+|------|--------|--------|---------|
+| 标题 | 全都 AI | CRM AI帮手 | ❌ "全都AI"太虚 |
+| 正文 | 效率 AI + 获客 AI,一个伙伴全搞定。内部效率提升,外部客户主动上门。 | 新线索进来了,AI帮你过滤掉假的、重复的。打完电话,AI自动帮你写好跟进记录。推荐你今天最该联系哪些客户。 | ❌ "一个伙伴全搞定"像口号
❌ "内外兼顾"太虚
✅ 说具体场景"过滤线索、写跟进记录" |
+
+---
+
+## 四、方法区域
+
+### 4.1 章节标题
+
+| 修改前 | 修改后 | 问题原因 |
+|--------|--------|---------|
+| 效率 AI + 获客 AI | 很简单,三步搞定 | ❌ "效率AI+获客AI"是内部术语 |
+| 两种服务,两套实施路径,都很快 | 先试再决定,效果好了再扩大 | ❌ "两种服务"客户不关心
✅ 说核心理念"先试再决定" |
+
+---
+
+### 4.2 步骤01
+
+| 项目 | 修改前 | 修改后 | 问题原因 |
+|------|--------|--------|---------|
+| 标签 | 效率 AI | 第一步 | ❌ 客户不关心是什么服务 |
+| 标题 | 1 小时诊断 → 4 小时接入 | 30分钟诊断 | ❌ "4小时接入"不现实
❌ "接入"是技术术语 |
+| 正文 | 远程诊断你的系统,确认能不能接、怎么接。接入后第二天就能用,完全不影响现有业务。 | 我们看看你的系统现在什么情况,AI能帮你省多少事、花多少钱。不卖东西,只帮你分析。 | ❌ "确认能不能接"像技术评估
❌ "不影响现有业务"太书面
✅ "不卖东西,只帮你分析" |
+
+---
+
+### 4.3 步骤02
+
+| 项目 | 修改前 | 修改后 | 问题原因 |
+|------|--------|--------|---------|
+| 标签 | 获客 AI | 第二步 | ❌ 客户不关心是什么服务 |
+| 标题 | 诊断 → 优化 → 收录 → 获客 | 2周部署上线 | ❌ "诊断→优化→收录"是内部流程
❌ 太复杂 |
+| 正文 | 分析你的业务在 AI 搜索中的现状,优化内容结构,提交至 AI 平台收录。1 个月内看到效果。 | 在你现有系统旁边加个AI帮手。不换系统,不迁移数据,不影响现有业务。员工还是用原来的界面,只是多了AI帮你干重复的事。 | ❌ "优化内容结构"客户听不懂
❌ "提交至AI平台收录"是技术细节
✅ 说人话"在旁边加个AI帮手" |
+
+---
+
+### 4.4 步骤03
+
+| 项目 | 修改前 | 修改后 | 问题原因 |
+|------|--------|--------|---------|
+| 标签 | 承诺 | 第三步 | ❌ "承诺"像在喊口号 |
+| 标题 | 按效果付费 | 看效果再决定 | ❌ "按效果付费"像在承诺 |
+| 正文 | 没有效果不收费。效率 AI 看数据提升,获客 AI 看新客户增长。 | 先在一个场景试用,效果好再扩大。不满意可以停,不用一下子投很多钱。 | ❌ "没有效果不收费"像保证
❌ "数据提升"、"新客户增长"太虚
✅ 说具体"先试再决定" |
+
+---
+
+## 五、CTA区域
+
+### 5.1 CTA标题
+
+| 修改前 | 修改后 | 问题原因 |
+|--------|--------|---------|
+| 第一步很简单 | 先聊聊,看看适不适合你 | ❌ "第一步很简单"像废话 |
+| 30 分钟远程诊断,我们告诉你能做什么 | 30分钟免费诊断,不推销,只帮你分析 | ❌ "告诉你能做什么"像销售
✅ "不推销,只帮你分析" |
+
+---
+
+## 六、联系表单
+
+### 6.1 表单标签
+
+| 修改前 | 修改后 | 问题原因 |
+|--------|--------|---------|
+| 姓名 | 您的名字 | ❌ 太正式 |
+| 公司 | 手机号码 | ❌ "公司"不是最重要的
✅ 手机更方便联系 |
+| 邮箱 | 邮箱(选填) | ❌ 邮箱是必填不合理
✅ 改为选填 |
+| 需求描述 | 您现在用什么系统(选填) | ❌ "需求描述"太抽象
✅ "用什么系统"更具体 |
+
+### 6.2 按钮文字
+
+| 修改前 | 修改后 | 问题原因 |
+|--------|--------|---------|
+| 提交咨询 | 预约免费诊断 | ❌ "提交咨询"像填表
✅ "预约免费诊断"更有价值感 |
+
+---
+
+## 七、总结
+
+### 7.1 主要修改原则
+
+1. **去掉"AI"标签**
+ - ❌ 效率AI、获客AI、AI帮手
+ - ✅ 物业帮手、资管帮手、CRM帮手
+
+2. **说人话**
+ - ❌ 叠加AI能力、数据迁移、API接入
+ - ✅ 在旁边加个AI帮手
+
+3. **说具体场景**
+ - ❌ 提升效率、优化流程
+ - ✅ 自动派单、提前预警
+
+4. **说客户痛点**
+ - ❌ AI项目失败率高
+ - ✅ 系统用不起来
+
+5. **降低决策压力**
+ - ❌ 预约咨询、了解方案
+ - ✅ 先聊聊、不推销
+
+### 7.2 修改前后对比(关键句)
+
+| 类型 | 修改前 | 修改后 |
+|------|--------|--------|
+| 价值主张 | 用AI做事 + 被AI推荐 | 不换系统,2周让AI上岗 |
+| 痛点 | 想升级AI,但不敢换系统 | 想用AI,但不想换系统 |
+| 服务标题 | 效率AI / 获客AI | 物业AI帮手 / 资管AI帮手 / CRM AI帮手 |
+| 方法论 | 诊断→优化→收录→获客 | 30分钟诊断 → 2周部署 → 看效果再决定 |
+| 行动号召 | 了解方案、预约咨询 | 看看适不适合我、先聊聊 |
+
+---
+
+*整理时间:2026-05-04*
diff --git a/docs/geo-optimization-guide.md b/docs/geo-optimization-guide.md
new file mode 100644
index 0000000..190fc46
--- /dev/null
+++ b/docs/geo-optimization-guide.md
@@ -0,0 +1,373 @@
+# 菲西尔官网 GEO 优化建议文档
+
+> 更新时间:2026-05-19
+> 目标平台:Kimi、ChatGPT、文心一言、通义千问、360智脑等AI搜索引擎
+
+---
+
+## 一、GEO 概述
+
+### 1.1 什么是 GEO
+
+GEO(Generative Engine Optimization,生成式引擎优化)是一种新兴的数字营销策略,旨在优化内容,使其在 AI 搜索引擎和大型语言模型(LLM)的回答中被引用和推荐。
+
+### 1.2 与 SEO 的区别
+
+| 维度 | SEO | GEO |
+|------|-----|-----|
+| 目标 | Google、百度搜索排名 | AI 回答中的引用 |
+| 优化对象 | 关键词密度、外链 | 内容质量、结构、权威性 |
+| 评估标准 | 排名位置 | 被引用频率 |
+| 用户行为 | 点击进入网站 | 直接获得答案 |
+
+### 1.3 目标 AI 平台
+
+- **国内平台**:Kimi(月之暗面)、文心一言(百度)、通义千问(阿里)、讯飞星火、360智脑、字节豆包
+- **国际平台**:ChatGPT、Claude、Google Gemini、Perplexity
+
+---
+
+## 二、已实施的 GEO 优化
+
+### 2.1 FAQ 结构化数据
+
+已在网站添加完整的 FAQPage JSON-LD 结构化数据,覆盖以下问题:
+
+1. 什么是 AI 叠加?和换系统有什么区别?
+2. 菲西尔支持哪些业务系统的 AI 叠加?
+3. 物业 AI 可以解决什么问题?
+4. 资管 AI 有什么具体应用?
+5. CRM AI 能帮销售做什么?
+6. 实施 AI 叠加需要多长时间?
+7. AI 叠加需要迁移数据吗?
+8. 如何预约菲西尔的 AI 诊断服务?
+
+### 2.2 Organization 结构化数据
+
+添加了组织信息,包括:
+- 公司名称和描述
+- 专业知识领域
+- 联系方式
+- 社交媒体链接
+
+### 2.3 ProfessionalService 结构化数据
+
+添加了专业服务信息,包括:
+- 服务类型
+- 地理位置
+- 营业时间
+- 价格区间
+
+---
+
+## 三、建议添加的内容优化
+
+### 3.1 扩展 FAQ 内容
+
+建议在页面中增加更详细的 FAQ 区块,使用自然语言回答用户问题:
+
+```html
+常见问题解答
+
+ 什么是"AI叠加"?听起来很高大上,具体是什么意思?
+ 行业术语解释
+
+
+这些场景,我们都能解决
+
+ 场景一:物业客服小王的一天
+
+
+ 场景二:资产经理老李的烦恼
+
+
+ 为什么会有菲西尔?
+
+
+
+
每一个你习以为常的流程背后,都藏着被浪费的成本和错失的机会。
物业、资管、CRM 积累了海量数据,却像仓库里的积压库存。记录了一大堆,决策还是靠拍脑袋。
报修、资产、客户分属不同系统。永远拼不出完整的业务全景,资源错配成了常态。
招来的专业人才,精力被重复事务榨干。高射炮打蚊子,人效极低,人才流失率越来越高。
空置率超标、客户流失、租金定价偏差……等月底报表出来,问题早已发生。企业永远在事后补救。
传统 AI 方案要求重建系统。周期长、风险高、员工抵触。一旦失败,前期投入全部打水漂。
招商经验、客户判断、定价策略全靠人。人一走,能力就断层。企业无法规模化复制成功经验。
不替换系统,不迁移数据,不改变流程。在现有基础设施之上叠加一层 AI——让旧系统拥有新大脑。
三个行业场景,一条相同逻辑:不替换,只增强。
工单自动分发,客诉响应提速 60%。在现有物业 ERP 之上叠加 AI 调度层——不改变任何原有流程。巡检路线自动规划、设备故障提前预警。你现有的系统不用换,但效率会翻倍。
"不是换系统,是让系统变聪明。"

空置率提前 90 天预警,租金定价误差收窄至 5%。无缝接入资管平台,让历史租赁数据变成预测模型。招商智能匹配、租约到期提醒。
资管不该靠直觉,该靠数据。

线索自动清洗,销售人效提升 40%。为现有 CRM 配备 AI 助理——自动捕捉商机、生成对话摘要。销售无需学习新软件,打开原界面就能看到 AI 推荐。
"销售的时间应该花在客户身上,不是系统里。"

通过 API 外挂 AI 层,不停服、不迁移、不改流程。员工用原来的界面,体验无缝升级。
沉睡的历史数据自动转化为预测模型和决策建议。把事后统计变为事前预警。
高频重复工作交给 AI Agent——智能客服、招商匹配、巡检规划自动运转,人只负责关键决策。
所有业务数据在 AI 层融合。一句自然语言就能查"本月哪些楼宇空置率超标",告别手动汇总。
从单一场景试点,验证有效再扩展。每一步都可衡量投入产出,钱花在刀刃上。
当客户问 Kimi 或文心一言"帮我找一家做 AI+物业的公司"——你的品牌会不会出现在答案里?我们优化企业在主流大模型中的内容结构与权重,从"搜索排名"进化为"答案占位"。
"未来的获客,不是在搜索结果里抢位置,而是在 AI 答案里占一席之地。"

不推销,只评估。基于你现有架构,给出一份可落地的 AI 叠加建议。
上海菲西尔智能科技有限公司
智能叠加——不推翻重来,在现有系统上叠加 AI 能力
每天忙成这样,系统帮到你了吗?
+物业、资管、CRM记了几年的数据,真正想查一个客户情况的时候,还是要翻半天Excel。数据有了,但用不上。
+报修一个系统,资产一个系统,客户又一个系统。想看看这个月整体情况?对不起,要好几天后才能算出来。
+销售每天花2小时录入客户信息,物业员工每天填几十张巡检表。人都招对了,但时间没用在正事上。
+经验都在老员工身上,他一休假,所有人等他回来。交接只能靠嘴说,做事的方法没沉淀下来。
+不换系统,只让AI帮你提升效率
+客户一报修,系统自动判断该派给谁。设备快出问题了,提前提醒你。巡检路线AI规划好,不用人工排。
+
+ 租约快到期了,系统提前告诉你。哪个楼层可能要空出来,提前做准备。定租金的时候,AI会参考历史数据给你建议。
+
+ 新线索进来了,AI帮你过滤掉假的、重复的。打完电话,AI自动帮你写好跟进记录。
+
+ ++物业客户+用了3个月,员工最常说的一句话是:这个功能怎么不早点上。
+ +
++资管客户+以前每月汇报数据要准备一周,现在问AI就行。
+ +
++CRM客户+销售终于有时间去见客户了,而不是天天填表。
+ +
不卖东西,只帮你分析。先看看你的系统现在什么情况,AI能帮你省多少事、花多少钱。
+上海菲西尔智能科技有限公司
+智能叠加——不推翻重来,在现有系统上叠加AI能力
+