Response
Generate a response using a Large Language Model (LLM)
returnsChatCompletione
Response generation is one of the core uses of generative AI. In the GENTask system, the GENResponse
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.
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
.GENResponse()
.SetModel(OpenAIIModel.GPT4o)
.ExecuteAsync();
Debug.Log(result);
Streaming
// Streaming
string prompt = "Explain quantum computing in simple terms.";
await prompt
.GENResponse()
.SetModel(OpenAIModel.GPT4o)
.OnStreamText(chunk => Debug.Log(chunk))
.OnStreamDone(() => Debug.Log("Finished."))
.StreamAsync();
Vision Request (Image Recognition)
// Vision Request
Texture2D myTexture = myImage.sprite.texture;
string prompt = "Tell me about this image.";
string result = await prompt
.GENResponse()
.Attach(myTexture)
.SetModel(OpenAIModel.GPT4o)
.ExecuteAsync();
Debug.Log(result);
Structured Outputs
returns StructuredOutput<T>
GENStruct<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
Text Image Audio Video
Structured Outputs (JSON Mode)
Required Annotations:
These attributes are mandatory. Without them, the task will fail to register the schema.
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();
Last updated