Skip to main content
Glama
dialogue-tree.ts1.43 kB
export interface DialogueNode { id: string; speaker: string; text: string; choices?: Array<{ text: string; nextNodeId: string; condition?: string; }>; actions?: Array<{ type: "setVariable" | "giveItem" | "startQuest"; params: any; }>; } export async function generateDialogueTree( character: string, context: string, depth: number, apiKey?: string ): Promise<{ success: boolean; tree?: DialogueNode[]; error?: string }> { const key = apiKey || process.env.GEMINI_API_KEY; if (!key) return { success: false, error: "API key missing" }; const prompt = `Generate dialogue tree for character "${character}" in context: "${context}". Create ${depth} levels of branching dialogue. Return JSON array of dialogue nodes with choices.`; try { const response = await fetch( `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContent?key=${key}`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ contents: [{ parts: [{ text: prompt }] }], generationConfig: { responseMimeType: "application/json" } }) } ); const data = await response.json(); const tree = JSON.parse(data.candidates?.[0]?.content?.parts?.[0]?.text); return { success: true, tree }; } catch (error) { return { success: false, error: String(error) }; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ShunsukeHayashi/rpgmaker-mz-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server