feat: 新增飞书长连接模式,无需公网域名

## 🚀 重大更新

### 飞书集成升级
-  迁移到飞书官方 SDK 的事件订阅 2.0(长连接模式)
-  无需公网域名和 webhook 配置
-  支持内网部署
-  自动重连机制

### 核心功能优化
-  优化群聊隔离机制(每个用户在每个群独立会话)
-  增强日志输出(emoji 标记便于快速识别)
-  完善错误处理和异常恢复
-  添加 SSL 证书问题解决方案

### 新增文件
- `src/integrations/feishu_longconn_service.py` - 飞书长连接服务
- `start_feishu_bot.py` - 启动脚本
- `test_feishu_connection.py` - 连接诊断工具
- `docs/FEISHU_LONGCONN.md` - 详细使用文档
- `README.md` - 项目说明文档

### 技术改进
- 添加 lark-oapi==1.3.5 官方 SDK
- 升级 certifi 包以支持 SSL 验证
- 优化配置加载逻辑
- 改进会话管理机制

### 文档更新
- 新增飞书长连接模式完整文档
- 更新快速开始指南
- 添加常见问题解答(SSL、权限、部署等)
- 完善架构说明和技术栈介绍

## 📝 使用方式

启动飞书长连接服务(无需公网域名):
```bash
python3 start_feishu_bot.py
```

详见:docs/FEISHU_LONGCONN.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
zhaojie
2026-02-11 14:10:18 +08:00
parent f5acb05e61
commit e3a0396567
18 changed files with 1501 additions and 112 deletions

View File

@@ -9,14 +9,14 @@
SERVER_HOST=0.0.0.0
# The port for the main Flask web server.
SERVER_PORT=5000
SERVER_PORT=5001
# The port for the WebSocket server for real-time chat.
WEBSOCKET_PORT=8765
# Set to "True" for development to enable debug mode and auto-reloading.
# Set to "False" for production.
DEBUG_MODE=True
DEBUG_MODE=False
# Logging level for the application. Options: DEBUG, INFO, WARNING, ERROR, CRITICAL
LOG_LEVEL=INFO
@@ -28,7 +28,12 @@ LOG_LEVEL=INFO
# The connection string for the primary database.
# Format for MySQL: mysql+pymysql://<user>:<password>@<host>:<port>/<dbname>?charset=utf8mb4
# Format for SQLite: sqlite:///./local_test.db
DATABASE_URL=mysql+pymysql://tsp_assistant:123456@jeason.online/tsp_assistant?charset=utf8mb4
# 使用本地 SQLite推荐用于开发和测试
DATABASE_URL=sqlite:///./data/tsp_assistant.db
# 远程 MySQL生产环境使用需要时取消注释
# DATABASE_URL=mysql+pymysql://tsp_assistant:123456@jeason.online/tsp_assistant?charset=utf8mb4
# ============================================================================
# LARGE LANGUAGE MODEL (LLM) CONFIGURATION
@@ -70,6 +75,9 @@ FEISHU_VERIFICATION_TOKEN=
# The Encrypt Key for decrypting event data (if configured).
FEISHU_ENCRYPT_KEY=
# The App Token of the Feishu multi-dimensional table document.
FEISHU_APP_TOKEN=XXnEbiCmEaMblSs6FDJcFCqsnIg
# The ID of the Feishu multi-dimensional table for data synchronization.
FEISHU_TABLE_ID=tblnl3vJPpgMTSiP
@@ -91,3 +99,28 @@ AI_SUGGESTION_CONFIDENCE=0.95
# The confidence score assigned when a human resolution is used.
AI_HUMAN_RESOLUTION_CONFIDENCE=0.90
# ============================================================================
# REDIS CACHE CONFIGURATION
# ============================================================================
# Redis server host (use localhost for local development)
REDIS_HOST=localhost
# Redis server port
REDIS_PORT=6379
# Redis database number (0-15)
REDIS_DB=0
# Redis password (leave empty if no password)
REDIS_PASSWORD=
# Redis connection pool size
REDIS_POOL_SIZE=10
# Redis cache default TTL in seconds (3600 = 1 hour)
REDIS_DEFAULT_TTL=3600
# Enable Redis cache (set to False to disable caching)
REDIS_ENABLED=True