149 lines
3.5 KiB
Python
149 lines
3.5 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
使用示例 - 展示如何在 OpenClaw Skill 中使用 feishu_smart_doc_writer
|
|
"""
|
|
|
|
# 示例 1: 在 Skill 中写入长文档
|
|
async def example_write_long_doc(ctx):
|
|
"""
|
|
在 OpenClaw Skill 中写入长文档
|
|
|
|
ctx 是 OpenClaw 提供的上下文对象
|
|
"""
|
|
from feishu_smart_doc_writer import FeishuDocWriter, ChunkConfig
|
|
|
|
# 创建写入器,传入 ctx
|
|
config = ChunkConfig(
|
|
chunk_size=2000, # 每块2000字符
|
|
show_progress=True, # 显示进度
|
|
max_retries=3 # 失败重试3次
|
|
)
|
|
writer = FeishuDocWriter(ctx, config)
|
|
|
|
# 准备长内容
|
|
long_content = """
|
|
# 项目策划文档
|
|
|
|
## 一、项目背景
|
|
|
|
这是项目的详细背景介绍...
|
|
|
|
## 二、技术方案
|
|
|
|
| 技术 | 说明 | 优势 |
|
|
|------|------|------|
|
|
| Python | 编程语言 | 生态丰富 |
|
|
| OpenClaw | 自动化框架 | 功能强大 |
|
|
|
|
## 三、实施计划
|
|
|
|
1. 第一阶段...
|
|
2. 第二阶段...
|
|
3. 第三阶段...
|
|
|
|
""" * 100 # 重复100次,生成约50000字符的长内容
|
|
|
|
# 写入文档
|
|
doc_url = await writer.write_document(
|
|
title="项目策划 - 完整版",
|
|
content=long_content,
|
|
folder_token=None # 可选:指定文件夹
|
|
)
|
|
|
|
print(f"✅ 文档创建成功: {doc_url}")
|
|
return doc_url
|
|
|
|
|
|
# 示例 2: 追加内容到现有文档
|
|
async def example_append_to_doc(ctx, doc_url):
|
|
"""
|
|
向已有文档追加内容
|
|
"""
|
|
from feishu_smart_doc_writer import FeishuDocWriter
|
|
|
|
writer = FeishuDocWriter(ctx)
|
|
|
|
# 追加内容
|
|
append_content = """
|
|
## 四、补充说明
|
|
|
|
这是后来补充的内容...
|
|
""" * 50
|
|
|
|
success = await writer.append_to_document(
|
|
doc_url=doc_url,
|
|
content=append_content
|
|
)
|
|
|
|
if success:
|
|
print("✅ 内容追加成功")
|
|
else:
|
|
print("❌ 内容追加失败")
|
|
|
|
return success
|
|
|
|
|
|
# 示例 3: 在 Skill 定义中使用
|
|
SKILL_DEFINITION = {
|
|
"name": "my_skill",
|
|
"tools": [
|
|
{
|
|
"name": "create_project_doc",
|
|
"description": "创建项目文档",
|
|
"handler": "create_project_doc_handler"
|
|
}
|
|
]
|
|
}
|
|
|
|
async def create_project_doc_handler(ctx, args):
|
|
"""
|
|
Skill 工具处理函数
|
|
"""
|
|
from feishu_smart_doc_writer import FeishuDocWriter
|
|
|
|
title = args.get("title", "未命名文档")
|
|
content = args.get("content", "")
|
|
|
|
writer = FeishuDocWriter(ctx)
|
|
doc_url = await writer.write_document(title, content)
|
|
|
|
return {
|
|
"doc_url": doc_url,
|
|
"message": "文档创建成功"
|
|
}
|
|
|
|
|
|
# 示例 4: 直接使用同步函数(简化版)
|
|
def example_sync_usage(ctx):
|
|
"""
|
|
同步方式使用(在不需要async的环境中)
|
|
"""
|
|
from feishu_smart_doc_writer import write_document_sync
|
|
|
|
doc_url = write_document_sync(
|
|
ctx=ctx,
|
|
title="同步创建的文档",
|
|
content="# 标题\n\n大量内容..." * 1000
|
|
)
|
|
|
|
return doc_url
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print("Feishu Smart Doc Writer 使用示例")
|
|
print("=" * 50)
|
|
print()
|
|
print("在 OpenClaw Skill 中使用:")
|
|
print()
|
|
print("1. 导入:")
|
|
print(" from feishu_smart_doc_writer import FeishuDocWriter")
|
|
print()
|
|
print("2. 创建写入器:")
|
|
print(" writer = FeishuDocWriter(ctx)")
|
|
print()
|
|
print("3. 写入长文档:")
|
|
print(" doc_url = await writer.write_document(title, content)")
|
|
print()
|
|
print("4. 追加内容:")
|
|
print(" await writer.append_to_document(doc_url, content)")
|