name: file-output-server
description: 生成目标格式文件(文档、Excel、图片等)并通过static-file-server.service提供完整下载链接。支持wolai文档同步、图片表格提取、Markdown文档生成等,自动保存到服务器目录并返回可访问的URL。
文件输出服务器
生成目标格式文件并通过static-file-server.service提供完整下载链接。
功能特点
- 📝 多格式支持:Markdown、Excel、CSV、PDF、图片等
- 🔗 自动链接生成:保存文件后自动拼接完整访问URL
- 🌐 HTTP服务:通过static-file-server.service(端口8081)提供文件访问
- 📂 统一管理:所有文件保存在/data/ai-output目录
- ⚡ 即时访问:文件生成后立即可通过链接访问
服务器配置
Static File Server信息:
- 服务名称:static-file-server.service
- 监听端口:8081
- 工作目录:/data/ai-output
- 访问格式:http://服务器IP:8081/文件名
核心功能
1. 文档生成 + 链接返回
自动生成Markdown/文档并返回下载链接:
# 生成文档
python3 scripts/save_document.py \
--title "文档标题" \
--content "文档内容..." \
--format markdown \
--filename "custom_name.md"
# 输出示例:
# ✅ 文档已保存: /data/ai-output/custom_name.md
# 🔗 访问链接: http://服务器IP:8081/custom_name.md
2. Excel表格生成 + 链接返回
从图片提取表格或生成Excel文件:
# 从图片提取表格
python3 scripts/save_excel.py \
--image "/path/to/image.jpg" \
--output "table_data.xlsx"
# 输出示例:
# ✅ Excel已保存: /data/ai-output/table_data.xlsx
# 🔗 访问链接: http://服务器IP:8081/table_data.xlsx
3. Wolai同步 + 本地备份 + 链接返回
同步到Wolai同时保存本地备份并提供链接:
python3 scripts/save_to_wolai.py \
--token "YOUR_WOLAI_TOKEN" \
--page-id "PAGE_ID" \
--conversation-file "conversation.json" \
--backup-local
# 输出示例:
# ✅ 已同步到Wolai: https://www.wolai.com/abc123
# ✅ 本地备份: /data/ai-output/wolai_backup_20260304.md
# 🔗 本地链接: http://服务器IP:8081/wolai_backup_20260304.md
使用场景
场景1:生成Markdown文档
# AI生成文档后保存并返回链接
from file_output_server import DocumentGenerator
doc = DocumentGenerator()
result = doc.save_markdown(
title="山西135平米顶层装修清单",
content="# 装修清单\n\n## 客厅\n- 沙发\n- 茶几\n...",
filename="renovation_checklist.md"
)
print(result['link']) # http://服务器IP:8081/renovation_checklist.md
场景2:从图片提取表格
from file_output_server import ExcelGenerator
excel = ExcelGenerator()
result = excel.extract_from_image(
image_path="/path/to/table.jpg",
output_name="financial_report.xlsx"
)
print(result['link']) # http://服务器IP:8081/financial_report.xlsx
场景3:Wolai同步 + 双重输出
from file_output_server import WolaiSync
sync = WolaiSync()
result = sync.sync_and_backup(
token="YOUR_TOKEN",
page_id="PAGE_ID",
conversation_data=conversation_json,
backup_format="markdown"
)
print(result['wolai_link']) # https://www.wolai.com/abc123
print(result['local_link']) # http://服务器IP:8081/backup_20260304.md
命令行工具
save_document.py - 保存文档
python3 scripts/save_document.py \
--title "文档标题" \
--content "文档内容" \
--format markdown \
--filename "document.md" \
--category "docs" # 可选,创建子目录
save_excel.py - 保存Excel
python3 scripts/save_excel.py \
--image "/path/to/image.jpg" \
--output "table.xlsx" \
--preview # 可选,预览识别结果
save_to_wolai.py - Wolai同步
python3 scripts/save_to_wolai.py \
--token "YOUR_TOKEN" \
--page-id "PAGE_ID" \
--conversation-file "conversation.json" \
--backup-local \
--format markdown
list_files.py - 列出文件
python3 scripts/list_files.py \
--category "docs" # 可选,列出特定类别
get_link.py - 获取链接
python3 scripts/get_link.py --filename "document.md"
# 输出: http://服务器IP:8081/document.md
文件组织
建议的目录结构:
/data/ai-output/
├── docs/ # 文档类
│ ├── renovation_20260304.md
│ └── meeting_notes_20260304.md
├── excel/ # Excel表格
│ ├── financial_report.xlsx
│ └── data_table.xlsx
├── wolai_backup/ # Wolai备份
│ ├── backup_20260304_001.md
│ └── backup_20260304_002.md
└── images/ # 图片
├── screenshot_001.png
└── chart_001.png
API返回格式
所有保存操作返回统一格式:
{
"success": true,
"filename": "document.md",
"path": "/data/ai-output/document.md",
"link": "http://服务器IP:8081/document.md",
"size": 2048,
"created_at": "2026-03-04T18:00:00Z",
"wolai_link": "https://www.wolai.com/abc123" // 可选
}
与AI助手集成
在对话中使用
当用户需要保存对话产物时:
- AI生成内容
- 调用保存函数
- 返回链接给用户
示例对话:
用户:帮我整理一份装修清单
AI:好的,我已经整理完成...
📄 文档已生成:装修清单.md
🔗 下载链接:http://服务器IP:8081/renovation_20260304.md
自动触发规则
可以配置规则,当检测到特定内容时自动保存:
- 长篇文档(>1000字)
- 表格数据
- 代码片段
- 会议记录
配置选项
编辑 config.json:
{
"server": {
"host": "0.0.0.0",
"port": 8081,
"root_dir": "/data/ai-output"
},
"file_naming": {
"timestamp": true,
"date_prefix": true,
"sanitize": true
},
"wolai": {
"auto_backup": true,
"backup_format": "markdown"
}
}
安全考虑
访问控制:static-file-server默认无认证,建议:
- 仅内网访问
- 或添加Nginx反向代理+认证
文件清理:建议定期清理旧文件:
# 删除7天前的文件 find /data/ai-output -mtime +7 -delete敏感信息:不要保存包含敏感信息的文件
故障排查
文件无法访问
检查static-file-server状态:
systemctl status static-file-server.service
链接无法访问
- 检查防火墙:
firewall-cmd --list-ports - 检查文件权限:
ls -la /data/ai-output/ - 检查文件是否存在:
ls /data/ai-output/filename
Wolai同步失败
- 检查API Token是否有效
- 检查页面ID是否正确
- 查看错误日志
依赖要求
- Python 3.7+
- Wolai API Token(如需Wolai同步)
- Tesseract OCR(如需图片表格提取)
示例:完整工作流
# 1. 生成装修清单文档
python3 scripts/save_document.py \
--title "山西135平米顶层装修清单" \
--content "$(cat renovation.md)" \
--format markdown \
--filename "renovation_20260304.md" \
--category "docs"
# 输出:
# ✅ 文档已保存: /data/ai-output/docs/renovation_20260304.md
# 🔗 访问链接: http://服务器IP:8081/docs/renovation_20260304.md
# 2. 同步到Wolai(可选)
python3 scripts/save_to_wolai.py \
--token "$WOLAI_TOKEN" \
--page-id "$PAGE_ID" \
--conversation-file conversation.json \
--backup-local
# 输出:
# ✅ 已同步到Wolai: https://www.wolai.com/abc123
# ✅ 本地备份: /data/ai-output/wolai_backup/backup_20260304.md
# 🔗 本地链接: http://服务器IP:8081/wolai_backup/backup_20260304.md
获取服务器IP
如果不确定服务器IP,运行:
# 获取内网IP
hostname -I | awk '{print $1}'
# 或获取公网IP
curl -s ifconfig.me
快速开始:
- 确认static-file-server.service正在运行
- 使用相应脚本生成文件
- 获取返回的访问链接
- 通过浏览器或工具访问文件
文件命名规则:
- 自动添加时间戳(可配置)
- 特殊字符自动替换
- 支持中文文件名(URL编码)