Response generation is one of the core uses of generative AI. In the GENTask system, the GENResponseTask class is used to generate text (for example, completing a prompt or answering a question). This task sends a prompt to a Large Language Model (LLM) and returns a response.
Input Modalities
Output
Text
Image
Audio
Video
Text
Text (Streaming)
Tool Calls
Speech
Image (Rarely)
File (Rarely)
Basic Usage
string prompt = "Explain quantum computing in simple terms.";
string result = await prompt
.GENText()
.SetModel(OpenAIIModel.GPT4o)
.ExecuteAsync();
Debug.Log(result);
// Vision Request
Texture2D myTexture = myImage.sprite.texture;
string prompt = "Tell me about this image.";
string result = await prompt
.GENText()
.Attach(myTexture)
.SetModel(OpenAIModel.GPT4o)
.ExecuteAsync();
Debug.Log(result);
GENObject<T>
returns StructuredOutput<T>
GENObject<T> lets you turn natural language prompts into strongly-typed Unity C# objects by guiding the AI to return JSON that matches your class definition.
It's perfect for generating game data like:
📦 Items
🎮 Quests
🗨️ NPC Dialogue Trees
📋 Skill Definitions
🧠 AI Configuration Profiles
Input Modalities
Output
Text
Image
Audio
Video
Structured Outputs (JSON Mode)
Required Annotations:
These attributes are mandatory. Without them, the task will fail to register the schema.
Provider
Required Attributes
OpenAI, Ollama, OpenRouter
[StrictJsonSchema(...)](on the class)
[JsonSchema(...)](on each property)
Gemini
[JsonSchema(...)](on the class)
[JsonSchema(...)](on each property)
Generating an RPG Item
using Glitch9.AIDevKit.OpenAI;
using Glitch9.IO.Json.Schema;
using System.Collections.Generic;
[StrictJsonSchema("item_response", Description = "RPG-style inventory item", Strict = true)]
public class GameItem
{
[JsonSchema("id", Description = "Unique item ID", Required = true)]
public string Id { get; set; }
[JsonSchema("name", Description = "Name of the item", Required = true)]
public string Name { get; set; }
[JsonSchema("rarity", Description = "Item rarity", Enum = new[] { "Common", "Uncommon", "Rare", "Epic", "Legendary" })]
public string Rarity { get; set; }
[JsonSchema("effects", Description = "List of effects applied when used")]
public List<string> Effects { get; set; }
}
GameItem item = await "Generate a legendary sword with magical effects"
.GENObject<GameItem>()
.SetModel(OpenAIModel.GPT4o)
.SetTemperature(0.4f)
.ExecuteAsync();
Debug.Log(item.Name + " - " + item.Rarity); // "Blade of Eternity - Legendary"
Generating a Simple Quest
[StrictJsonSchema("quest_response", Description = "Basic RPG quest", Strict = true)]
public class Quest
{
[JsonSchema("title", Description = "Quest name", Required = true)]
public string Title { get; set; }
[JsonSchema("description", Description = "What the player must do", Required = true)]
public string Description { get; set; }
[JsonSchema("objective", Description = "Main goal of the quest")]
public string Objective { get; set; }
[JsonSchema("rewardXP", Description = "XP rewarded upon completion")]
public int RewardXP { get; set; }
}
Quest quest = await "Create a side quest for a fantasy game where a farmer asks you to find his lost chicken"
.GENObject<Quest>()
.SetModel(OpenAIModel.GPT4o)
.ExecuteAsync();