项目简介
IntelliVNG MCP 服务是 IntelliVNG Studio 的核心后端,旨在通过先进的AI多智能体系统,帮助用户从一个简单的想法快速创作出完整的视觉小说游戏。它不只是简单的AI模型API封装,而是集成了Tree-of-Thoughts、ReAct、Few-Shot CoT等前沿AI研究成果,实现端到端的故事生成、可视化编辑和导出功能。该服务以标准化的方式向客户端提供上下文信息和AI功能,并通过流式事件实时通知客户端生成进度。
主要功能点
- AI多智能体协作创作: 包含故事规划师(Story Planner)、节点写手(Node Writer)和故事审阅者(Story Reviewer)三大核心智能体,协同完成故事创作。
- 上下文与工具管理: 托管和管理AI创作所需的角色、世界观、场景等“资源”,并提供丰富的“工具”供智能体调用,例如结构校验、路径分析、图片生成等。
- Prompt模板管理: 集中管理和渲染用于与大型语言模型交互的Prompt模板,支持多语言本地化。
- 实时进度通知: 通过Server-Sent Events (SSE) 协议,向客户端推送AI创作的实时进度、日志和阶段信息。
- 内容生成与优化: 能够根据用户输入自动生成完整的世界观、角色、场景和多结局剧本,并支持智能审阅与重写。
- 素材自动生成: 集成文生图、图生图能力,可自动生成角色立绘、场景背景等视觉素材。
- 通用表单AI自动补全: 为角色、世界观、场景、主题等各类表单提供智能补全辅助。
- 多语言支持: AI生成内容和系统提示支持简体中文、繁体中文和英文。
安装步骤
- 克隆仓库: 打开终端,运行以下命令克隆项目仓库:
git clone https://github.com/FE-square/IntelliVNG.git cd IntelliVNG - 安装依赖: 使用pnpm安装所有项目依赖:
pnpm install - 配置环境变量: 在 'apps/intelli-services/' 目录下创建一个 '.env' 文件,并填入以下内容。请确保替换 'sk-xxxx' 为您自己的OpenAI兼容API Key,以及 'TONGYI_API_KEY'。
OPENAI_API_KEY=sk-xxxx # 您的OpenAI或兼容API服务的密钥 OPENAI_BASE_URL=https://api.openai.com/v1 # OpenAI API服务的基础URL,默认为OpenAI官方地址 OPENAI_MODEL_NAME=gpt-4.1 # 使用的AI模型名称,例如gpt-4.1, gpt-4o-mini, qwen-plus等 TONGYI_API_KEY=sk-yyyy # 您的通义万相API密钥,用于图像生成 PORT=4000 # 服务启动端口,默认为4000 CORS_ORIGIN=http://localhost:3000,http://127.0.0.1:3000 # 允许跨域访问的前端地址- 注意: 推荐使用GPT系列模型以获得最佳结构化输出支持。如果使用Qwen模型,部分ReAct工具调用可能会自动回退到单次审阅流程。
- 通义万相: 图像生成需要 'TONGYI_API_KEY'。
服务器配置 (MCP客户端使用)
IntelliVNG MCP 服务器通过 HTTP/SSE 协议提供服务。MCP 客户端可以通过配置以下信息连接并调用其能力:
{ "server_name": "IntelliVNG MCP 服务", "description": "基于AI多智能体的视觉小说游戏创作后端服务", "command": "pnpm", "args": [ "dev:serv" ], "env": { "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY", "OPENAI_BASE_URL": "https://api.openai.com/v1", "OPENAI_MODEL_NAME": "gpt-4.1", "TONGYI_API_KEY": "YOUR_TONGYI_API_KEY", "PORT": "4000", "CORS_ORIGIN": "http://localhost:3000,http://127.0.0.1:3000" }, "protocol": "http", "endpoints": { "generate_story": { "method": "POST", "url": "http://localhost:4000/api/game/generate-by-agents", "description": "使用多智能体AI系统生成视觉小说剧本,支持SSE实时进度。请求体包含完整的项目设定:characters(角色列表), worldSetting(世界观), scenes(场景列表), themeSetting(主题风格),可选locale(用户语言)和idea(故事创意,用于缓存)。", "parameters": [ { "name": "characters", "type": "array", "description": "角色列表,包含名称、描述、ID等" }, { "name": "worldSetting", "type": "object", "description": "世界观设定,包含名称、时代、地点、规则等" }, { "name": "scenes", "type": "array", "description": "场景列表,包含名称、类型、氛围、细节等" }, { "name": "themeSetting", "type": "object", "description": "主题风格设定,包含主题、风格、基调等" }, { "name": "locale", "type": "string", "enum": ["zh-CN", "zh-HK", "en-US"], "description": "用户语言" }, { "name": "idea", "type": "string", "description": "简短的故事创意(可选,用于缓存)" } ], "response_stream": "Server-Sent Events", "events": [ {"event": "session", "description": "会话开始/结束状态"}, {"event": "progress", "description": "AI生成各阶段的实时进度和详细信息"}, {"event": "result", "description": "最终生成的GameProject数据"}, {"event": "error", "description": "生成过程中的错误信息"} ] }, "generate_image": { "method": "POST", "url": "http://localhost:4000/api/game/generate-image-stream", "description": "AI生成图片,支持流式状态返回,可用于角色立绘、头像、场景背景。请求体包含prompt(图像生成提示词), type(图片类型,'sprite', 'avatar', 'background'), 可选size(尺寸), refImageUrl(参考图URL), refStrength(参考图强度)。", "parameters": [ { "name": "prompt", "type": "string", "description": "图像生成提示词" }, { "name": "type", "type": "string", "enum": ["sprite", "avatar", "background"], "description": "图片类型" }, { "name": "size", "type": "string", "description": "图片尺寸,如'1024*768'" }, { "name": "refImageUrl", "type": "string", "description": "参考图URL(可选,用于保持风格一致性)" }, { "name": "refStrength", "type": "number", "description": "参考图强度 (0-1,默认0.7)" } ], "response_stream": "Server-Sent Events", "events": [ {"event": "data", "description": "图片生成状态(PENDING/RUNNING/SUCCEEDED/FAILED)及最终图片URL"} ] }, "autocomplete_form": { "method": "POST", "url": "http://localhost:4000/api/game/autocomplete-form", "description": "AI自动补全表单字段,支持角色、世界观、场景、主题等多种表单类型。请求体包含formType(表单类型), partialData(已部分填写的表单数据), 可选context(上下文信息)和locale(用户语言)。", "parameters": [ { "name": "formType", "type": "string", "enum": ["character", "world", "scene", "theme", "background"], "description": "表单类型" }, { "name": "partialData", "type": "object", "description": "已部分填写的表单数据" }, { "name": "context", "type": "object", "description": "上下文信息,如项目标题、故事类型、已有条目等" }, { "name": "locale", "type": "string", "enum": ["zh-CN", "zh-HK", "en-US"], "description": "用户语言" } ], "response": "JSON", "success_field": "success", "data_field": "data", "error_field": "error" }, "quick_setup": { "method": "POST", "url": "http://localhost:4000/api/game/quick-setup", "description": "根据一句话描述快速生成项目的完整设定(标题、角色、世界观、场景、主题)。请求体包含prompt(故事描述)和可选locale(用户语言)。", "parameters": [ { "name": "prompt", "type": "string", "description": "故事的简要描述" }, { "name": "locale", "type": "string", "enum": ["zh-CN", "zh-HK", "en-US"], "description": "用户语言" } ], "response": "JSON", "success_field": "success", "data_field": "data", "error_field": "error" }, "get_project": { "method": "GET", "url": "http://localhost:4000/api/game/projects/:id", "description": "根据项目ID获取项目详细数据。", "parameters": [ { "name": "id", "type": "string", "location": "path", "description": "项目唯一ID" } ], "response": "JSON", "success_field": "success", "data_field": "data", "error_field": "error" }, "list_projects": { "method": "GET", "url": "http://localhost:4000/api/game/projects", "description": "获取所有已保存的项目列表。", "response": "JSON", "success_field": "success", "data_field": "data", "error_field": "error" }, "update_project": { "method": "PUT", "url": "http://localhost:4000/api/game/projects/:id", "description": "更新或创建项目。URL路径包含项目ID,请求体为要更新的项目数据。", "parameters": [ { "name": "id", "type": "string", "location": "path", "description": "项目唯一ID" }, { "name": "project_data", "type": "object", "location": "body", "description": "要更新的项目数据" } ], "response": "JSON", "success_field": "success", "data_field": "data", "error_field": "error" } } }
基本使用方法
- 启动服务: 在项目根目录运行以下命令启动后端服务:
服务将默认运行在 'http://localhost:4000'。pnpm dev:serv - 通过API调用功能:
- 生成剧本: 向 'http://localhost:4000/api/game/generate-by-agents' 发送POST请求,并在请求体中包含角色、世界观、场景和主题风格等JSON数据。此接口会通过SSE流式返回AI生成进度和最终结果。
- 生成图片: 向 'http://localhost:4000/api/game/generate-image-stream' 发送POST请求,提供图片描述、类型和尺寸,将通过SSE流式返回生成状态和图片URL。
- 自动补全表单: 向 'http://localhost:4000/api/game/autocomplete-form' 发送POST请求,提供表单类型和部分数据,AI将补全剩余字段并返回。
- 快速设定: 向 'http://localhost:4000/api/game/quick-setup' 发送POST请求,提供一句话故事描述,AI将返回完整的项目设定。
- 连接前端: 默认情况下,前端应用('pnpm dev:web' 启动,运行在 'http://localhost:3000')将自动连接此后端服务,您可以通过前端界面进行可视化操作。
信息
分类
开发者工具