diff --git a/STATUS.md b/STATUS.md new file mode 100644 index 0000000..637eb7a --- /dev/null +++ b/STATUS.md @@ -0,0 +1,40 @@ +# Landing Page 工作状态 + +## 项目信息 +- 文件路径:/opt/ai-landing/index.html +- 访问地址:http://8.153.107.96/ai/ +- Nginx 配置:/etc/nginx/sites-available/gitea (location /ai/ alias /opt/ai-landing/) + +## 当前进度 (2026-04-20 更新) + +### 已完成 +- Hero 首屏:视频背景 + 主标题"为现有系统装上大脑" +- 场景洞察板块(原"痛点"):6 个痛点卡片 + 破局之道 + - 数据沉睡、孤岛效应、人力瓶颈、决策滞后、改造成本高、经验依赖 + - 桌面端:六宫格 + hover 光线效果 + - 移动端:全屏逐屏浮现 + 居中图标 + 大字标题 + 背景网格 +- 解决路径板块(原"思路"):五步落地 + - 无缝接入、数据唤醒、流程自动化、统一智能中枢、渐进式落地 +- 核心服务板块:AI+物业、AI+资管、AI+CRM(带图片) +- GEO 板块:生成式引擎优化 +- 合作咨询板块:表单提交 → /ai/api/consult +- 导航栏文字:场景洞察 | 解决路径 | 核心服务 | GEO | 合作咨询 + +### 待处理 +1. 移动端 icon 和背景显示问题(用户反馈:移动端缺少 icon 和背景) +2. 同步到 Gitea 仓库(尚未创建对应 repo) +3. 用户强调:每次新会话必须先读此文件,了解当前工作状态 + +### 用户偏好(重要) +- 回复格式:纯文本,字号统一且小,禁止使用标题(#)、加粗(**)、代码块(```) +- 用户希望被称为"老板" +- Landing Page 素材:禁止外国人面孔,优先抽象矢量图/SVG +- 设计风格:黑白单色、高对比、电影级动效(缓慢平滑有呼吸感) +- 用户会发手机截图反馈问题,需根据截图调整 + +## Gitea 信息 +- 地址:http://localhost:3000 / http://8.153.107.96:3000 +- SSH 端口:2222 +- 管理员:root, omega_admin, ether +- 已有仓库:ether/ether-admin, ether/ether-docs, ether/ether-pms +- Landing Page 仓库:尚未创建(计划创建 ether/ether-landing 或 ether/fischer-site) diff --git a/assets/crm.jpg b/assets/crm.jpg new file mode 100644 index 0000000..c60539e Binary files /dev/null and b/assets/crm.jpg differ diff --git a/assets/geo.jpg b/assets/geo.jpg new file mode 100644 index 0000000..760bbad Binary files /dev/null and b/assets/geo.jpg differ diff --git a/assets/hero-bg.jpg b/assets/hero-bg.jpg new file mode 100644 index 0000000..8d80f84 Binary files /dev/null and b/assets/hero-bg.jpg differ diff --git a/assets/hero-brain.svg b/assets/hero-brain.svg new file mode 100644 index 0000000..6d850c5 --- /dev/null +++ b/assets/hero-brain.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/hero-poster.jpg b/assets/hero-poster.jpg new file mode 100644 index 0000000..89bee85 Binary files /dev/null and b/assets/hero-poster.jpg differ diff --git a/assets/hero.jpg b/assets/hero.jpg new file mode 100644 index 0000000..6415b47 Binary files /dev/null and b/assets/hero.jpg differ diff --git a/assets/prop.jpg b/assets/prop.jpg new file mode 100644 index 0000000..559ce76 Binary files /dev/null and b/assets/prop.jpg differ diff --git a/assets/server.jpg b/assets/server.jpg new file mode 100644 index 0000000..3bbaa0e Binary files /dev/null and b/assets/server.jpg differ diff --git a/assets/video/hero-bg-1.mp4 b/assets/video/hero-bg-1.mp4 new file mode 100644 index 0000000..5d90926 Binary files /dev/null and b/assets/video/hero-bg-1.mp4 differ diff --git a/assets/video/hero-bg-2-compressed.mp4 b/assets/video/hero-bg-2-compressed.mp4 new file mode 100644 index 0000000..b8d1bbc Binary files /dev/null and b/assets/video/hero-bg-2-compressed.mp4 differ diff --git a/assets/video/hero-bg-2.mp4 b/assets/video/hero-bg-2.mp4 new file mode 100644 index 0000000..6014e61 Binary files /dev/null and b/assets/video/hero-bg-2.mp4 differ diff --git a/assets/video/hero-bg-3.mp4 b/assets/video/hero-bg-3.mp4 new file mode 100644 index 0000000..5d62e1b --- /dev/null +++ b/assets/video/hero-bg-3.mp4 @@ -0,0 +1,2 @@ + +AccessDeniedAccess Denied \ No newline at end of file diff --git a/assets/video/hero-bg-compressed.mp4 b/assets/video/hero-bg-compressed.mp4 new file mode 100644 index 0000000..926b260 Binary files /dev/null and b/assets/video/hero-bg-compressed.mp4 differ diff --git a/consult-api.py b/consult-api.py new file mode 100644 index 0000000..b511e76 --- /dev/null +++ b/consult-api.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python3 +"""轻量表单接收服务 - 收到咨询后推送飞书通知""" +import json, os, re +from http.server import HTTPServer, BaseHTTPRequestHandler +from datetime import datetime + +# 飞书机器人 Webhook URL(请老板替换为实际地址) +FEISHU_WEBHOOK = os.getenv("FEISHU_WEBHOOK_URL", "") + +# 本地存储路径 +DATA_DIR = "/opt/ai-landing/data" +os.makedirs(DATA_DIR, exist_ok=True) + +class Handler(BaseHTTPRequestHandler): + def do_POST(self): + if self.path != "/api/consult": + self._send(404, {"error": "not found"}) + return + + length = int(self.headers.get("Content-Length", 0)) + if length > 50000: + self._send(400, {"error": "payload too large"}) + return + + body = self.rfile.read(length) + try: + data = json.loads(body) + except Exception: + self._send(400, {"error": "invalid json"}) + return + + # 验证必填字段 + name = data.get("name", "").strip() + phone = data.get("phone", "").strip() + email = data.get("email", "").strip() + message = data.get("message", "").strip() + + if not name or not phone: + self._send(400, {"error": "姓名和电话为必填项"}) + return + + # 手机号简单校验 + if not re.match(r"^1\d{10}$", phone): + self._send(400, {"error": "手机号格式不正确"}) + return + + # 保存到本地 + record = { + "time": datetime.now().strftime("%Y-%m-%d %H:%M:%S"), + "name": name, "phone": phone, "email": email, "message": message + } + self._save(record) + + # 推送飞书 + if FEISHU_WEBHOOK: + self._push_feishu(record) + + self._send(200, {"success": True}) + + def do_GET(self): + if self.path == "/api/consult/health": + self._send(200, {"ok": True}) + return + self._send(405, {"error": "method not allowed"}) + + def _save(self, record): + path = os.path.join(DATA_DIR, f"{datetime.now().strftime('%Y-%m')}.json") + records = [] + if os.path.exists(path): + with open(path) as f: + try: records = json.load(f) + except: records = [] + records.append(record) + with open(path, "w") as f: + json.dump(records, f, ensure_ascii=False, indent=2) + + def _push_feishu(self, record): + try: + import urllib.request + msg = f"**新咨询收到**\n" + msg += f"姓名:{record['name']}\n" + msg += f"电话:{record['phone']}\n" + if record['email']: msg += f"邮箱:{record['email']}\n" + if record['message']: msg += f"留言:{record['message']}\n" + msg += f"时间:{record['time']}" + payload = json.dumps({"msg_type": "interactive", "card": { + "header": {"title": {"tag": "plain_text", "content": "🔔 官网新咨询"}, "template": "turquoise"}, + "elements": [{"tag": "markdown", "content": msg}] + }}).encode() + req = urllib.request.Request(FEISHU_WEBHOOK, data=payload, + headers={"Content-Type": "application/json"}) + urllib.request.urlopen(req, timeout=5) + except Exception as e: + print(f"飞书推送失败: {e}") + + def _send(self, code, data): + 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, OPTIONS") + self.send_header("Access-Control-Allow-Headers", "Content-Type") + self.end_headers() + self.wfile.write(json.dumps(data).encode()) + + def log_message(self, fmt, *args): + pass # 静默日志 + +if __name__ == "__main__": + server = HTTPServer(("127.0.0.1", 4001), Handler) + print("咨询接收服务启动在 :4001") + server.serve_forever() diff --git a/index.html b/index.html new file mode 100644 index 0000000..bf5c328 --- /dev/null +++ b/index.html @@ -0,0 +1,974 @@ + + + + + + 菲西尔智能 · AI+物业|AI+资管|AI+CRM 企业级智能叠加 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+

为现有系统
装上"大脑"

+
+ 我们专注于在已经运转良好的业务系统之上叠加 AI 能力。以非侵入式的方式,让原有系统瞬间拥有感知与决策能力。不推倒重来,只做智能叠加。 +
+ 探索解决方案 +
+
+
+ +
+
+
+
+ +

为什么现有系统
需要智能叠加

+
+
+
+ + + + + + + + + + +
+

数据沉睡

+

物业、资管、CRM 系统积累了大量业务数据,但缺乏智能分析能力。数据停留在记录层面,无法转化为决策依据。

+
01
+
+
+
+ + + + + + + + +
+

孤岛效应

+

各业务系统独立运行,信息不互通。物业报修、资产台账、客户跟进分属不同平台,管理者需要反复切换系统拼凑全局视图。

+
02
+
+
+
+ + + + + + +
+

人力瓶颈

+

客服、招商、维保等高频重复工作消耗大量人力。员工陷入事务性操作,无法聚焦高价值任务。

+
03
+
+
+
+ + + + + + + +
+

决策滞后

+

空置率分析、租金定价、客户流失预警等依赖人工统计和月度报表,发现问题时往往已经错失最佳干预窗口。

+
04
+
+
+
+ + + + + +
+

改造成本高

+

传统 AI 方案要求推翻现有系统重建,实施周期长、迁移风险大、员工学习成本极高,导致多数企业望而却步。

+
05
+
+
+
+ + + + + + + +
+

经验依赖

+

核心业务决策高度依赖个人经验与直觉,缺乏可复制的标准化模型。人才流动导致能力断层,企业难以规模化扩张。

+
06
+
+
+
+
+

破局之道

+

不推倒重来,不替换系统。在已经运转良好的基础设施之上,叠加一层 AI 能力——让旧系统拥有新大脑。

+
+
+
+
+
+ +
+
+ +

智能叠加
五步落地

+
+
+
Step 1
+
+

无缝接入

+

通过 API 对接现有物业系统、资管平台、CRM,无需替换原有软件。AI 层作为智能中间件,读取数据、输出建议、执行自动化任务,对现有业务零干扰。

+
+
+
+
Step 2
+
+

数据唤醒

+

将沉睡的业务数据转化为实时洞察。自动识别空置周期异常的物业单元,预测客户续约概率,生成招商定价建议——把事后统计变为事前预警。

+
+
+
+
Step 3
+
+

流程自动化

+

将高频重复工作交给 AI Agent。智能客服自动响应业主报修,AI 招商助手自动匹配租户需求,维保系统自动规划巡检路线,释放人力聚焦关键决策。

+
+
+
+
Step 4
+
+

统一智能中枢

+

跨系统数据在 AI 层融合,形成全局业务视图。管理者通过自然语言即可查询"本月哪些楼宇空置率超标",无需手动汇总多份报表。

+
+
+
+
Step 5
+
+

渐进式落地

+

按业务优先级分阶段叠加 AI 能力。从单一场景试点验证效果,逐步扩展到全流程智能化。每一步都可衡量 ROI,降低试错成本,确保投入产出可控。

+
+
+
+
+
+ +
+
+ + + +
+
+

智慧物业
智能中枢

+

在现有物业 ERP 之上叠加 AI 调度中枢。通过 API 外挂智能决策层,实现工单自动分发、客诉情感分析。在不改变原有操作流程的前提下,降低 30% 运营成本。

+
+
+ Smart Building +
+
+ + +
+
+

智能资管
风控大脑

+

无缝接入现有资管平台,外挂智能投研与风控大脑。让历史数据自动转化为预测模型,实现资产自动预警与动态配置。辅助现有流程做出更精准的决策,提升投资回报率。

+
+
+ Server Data +
+
+ + +
+
+

CRM 助理
效率跃升

+

为企业现有 CRM 配备 AI 私人助理。自动捕捉线索、生成对话摘要、推荐跟进策略。销售团队无需学习新软件,在熟悉的界面中即可享受智能化的效率跃升。

+
+
+ Team +
+
+
+
+ +
+
+ +
+
+

GEO
生成式引擎优化

+

AI 时代的新型营销与流量基础设施。

+

通过优化企业在主流大模型和 AI 搜索引擎中的内容结构与权重,确保品牌在用户提问时精准、优先呈现。从传统的“搜索排名”进化为 AI 时代的“答案占位”。

+
+ +
+ Network +
+
+
+
+ +
+
+ +
+

开启智能叠加

+

+ 留下联系方式,我们的产品顾问将在24小时内与您取得联系,为您定制专属的 AI 叠加方案。 +

+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+
+
+ + + + + + \ No newline at end of file