
Questas
Questas 是一个面向大众创作者的互动故事平台。它结合生成式 AI 与可视化工具,让用户无需编程或美术基础,也能在几分钟内构建“选择你的冒险”式的故事。
PenShot (剧本分镜智能体) 是一个基于 LangChain + LangGraph 构建的高级自动化系统,旨在解决 AI 视频生成中的核心痛点:长剧本理解与叙事连续性。它能够将任意格式的剧本(电影、短剧、小说等)自动转化为镜头级描述,并生成适配 Sora、Veo、Runway、可灵等主流 AI 视频模型的 Ready-to-Use Prompt。
| 痛点 | PenShot 解决方案 |
|---|---|
| 上下文丢失 | 三级记忆池 + Chroma 向量检索:自动维持角色状态、场景细节和剧情逻辑跨片段的一致性。 |
| Prompt 编写难 | 自动生成双语描述:输出包含画面细节、负面提示词及音频提示词的完整 Prompt,支持中英双语。 |
| 模型适配复杂 | 多模型兼容:一套代码支持 OpenAI, Qwen, DeepSeek, Ollama 等主流 LLM,可插拔切换。 |
| 集成门槛高 | 全协议支持:提供 Python SDK, REST API, LangGraph Node, MCP 服务及 A2A 协作协议。 |
PenShot 不仅仅是一个文本转换器,它是一个具备“记忆”和“规划”能力的智能体系统:
pip install penshot
cp .env.example .env
# 编辑 .env 配置 LLM (如 Qwen/DeepSeek) 和 Embedding 模型 API Key
from penshot.api import create_penshot_agent
# 创建智能体实例
agent = create_penshot_agent(max_concurrent=5)
script = "早晨,阳光透过咖啡馆窗户洒在女孩的脸上,她轻轻翻过一页书..."
# 异步提交任务
task_id = agent.breakdown_script_async(
script,
callback=lambda r: print(f"任务 {r.task_id} 已完成")
)
# 等待结果
result = await agent.wait_for_result_async(task_id)
print(result.prompts) # 获取生成的镜头级 Prompt
如果你希望快速启动一个独立服务:
docker run -d \
--name penshot \
-p 8000:8000 \
-e PENSHOT_LLM__DEFAULT__BASE_URL="https://api.deepseek.com" \
-e PENSHOT_LLM__DEFAULT__API_KEY="sk-xxxxxxxx" \
-e PENSHOT_LLM__DEFAULT__MODEL_NAME="deepseek-v4-flash" \
-e PENSHOT_EMBED__DEFAULT__BASE_URL="https://dashscope-intl.aliyuncs.com/api/v1" \
-e PENSHOT_EMBED__DEFAULT__API_KEY="sk-xxxxxxxx" \
-e PENSHOT_EMBED__DEFAULT__MODEL_NAME="text-embedding-v4" \
-e PENSHOT_REDIS_URL="redis://:@host.docker.internal:6379/0?protocol=2" \
neotems/penshot:latest
PenShot 设计为模块化组件,可无缝嵌入现有工作流:
python -m penshot.mcp_server 后,Claude Code、Antigravity 等支持 MCP 的 IDE 可直接调用 breakdown_script 工具,在对话框中完成分镜生成。






