1. LLM Bridge Core 扩展实现对于想要在自有 Mod 中深度调用 AI 逻辑的开发者,底层提供了一套异步通信与回调闭环。以下是一个最小扩展实例: 第一步:注册回调响应(接收模型结果)在你的 ModPlugin 启动阶段,注册一个全局处理器来接管指定上下文的 JSON 响应。 Java
public class MyModPlugin extends BaseModPlugin { public static final String MOD_ID = "my_llm_mod"; @Override public void onApplicationLoad() { // 注册回调处理器,精准捕获模型返回的动作(action)与文本(text) LLMBridgeModPlugin.registerResponseHandler(MOD_ID, new ResponseHandler() { @Override public void handle(JSONObject response) { String action = response.optString("action", ""); String text = response.optString("text", ""); // 在此解析并执行游戏内逻辑,例如:发放物品、生成舰队、触发UI等 } }); }}
第二步:发起异步请求(向模型发送数据)在需要的时机,组装数据并发送。 Java
// 构建包含游戏内当前状态的 JSON 负载JSONObject payload = new JSONObject();payload.put("player_message", "有什么工作可以给我吗?");payload.put("npc_name", "Marcus");payload.put("location", "Magec 空间站");// 发送请求:参数依次为你的 Mod ID、提示词模板名、JSON数据包、上下文标签LLMBridgeAPI.requestLLM("my_llm_mod", "npc_dialogue", payload.toString(), "npc_dialogue");
请求提交后全异步在后台线程池执行,不卡顿游戏主线程。结果通过上文注册的 ResponseHandler 无缝接管,形成标准闭环。 让你的 AI NPC 实装到游戏中对于想要自己创建ai对话角色的作者,或者给已有人物 第一步:编写角色卡 (Character Card)新建 你的mod/data/config/llm_contact/characters/cards/my_cards.json,在其中定义 AI 的核心设定: JSON
{ "id": "my_mod:story_boss_card", "target_type": "npc", "enabled": true, "identity": { "display_name": "阿尔法 (Alpha)", "description": "隐藏在辛达强权背后的神秘军火商" }, "persona": { "summary": "冷酷、精于算计的商人,视人命为筹码", "traits": ["极度理性", "利益至上", "说话喜欢用比喻"], "values": ["财富即权力", "混乱是最好的阶梯"] }, "voice": { "summary": "优雅但带着隐隐的威胁感", "patterns": ["喜欢把星区局势比作棋盘", "用低沉的语调嘲讽玩家"], "avoid": ["使用粗俗的脏话", "情绪失控"] }}
第二步:编写挂载规则 (Mount Rule)新建 你的mod/data/config/llm_contact/characters/mounts/挂载规则名.json。通过 match 字段,你可以决定这张卡挂载给谁: 方法 A:精准绑定(通过 person_id)这是最高优先级的匹配方式。如果你有一个拥有固定人物 ID (person_id) 的NPC,只需直接填入该 ID。系统会将其与目标进行唯一绑定: JSON
{ "id": "my_mod:story_boss_mount", "card_id": "my_mod:story_boss_card", "target_type": "npc", "enabled": true, "priority": 100, "match": { "person_id": "my_story_boss_npc_id" }}
场景 B:范围匹配(通过势力 faction_id 与职位 post_id)如果你想让这张卡应用于所有符合条件的 NPC(例如替换掉所有霸主势力的港口管理员),只需组合匹配条件: JSON
{ "id": "my_mod:hegemony_portmaster_mount", "card_id": "my_mod:hegemony_portmaster_card", "target_type": "npc", "enabled": true, "priority": 50, "match": { "faction_id": "hegemony", "post_id": "portmaster" }}
注:系统会自动处理冲突。如果一个 NPC 同时满足场景 A 和场景 B,person_id 匹配权重大于势力/职位组合,系统会优先加载专属卡。 第三步:注册清单 (Manifest) 最后,新建 你的mod/data/config/llm_contact/characters/manifest.json,将上述配置文件注册到数据库中: JSON
{ "schema_version": 1, "cards": [ "cards/角色卡名称.json" ], "mounts": [ "mounts/my_mounts.json" ]}
完成!启动游戏后,mod会自动将角色卡挂载上对应的npc,并同步挂载ai对话逻辑 |