Console
Total API Calls
0
+12% from last weekActive API Keys
0
Local Storage
0 KB
Quick Actions
System Status
API Key Management
Manage and generate API keys to access the Genesis AI models.
Generate New Key
Create a new key. You will only see the full key once.
Your new API Key (Copy Now!)
Active Keys
The keys below are currently active and ready for use. Click the copy button to copy the full key.
No active keys found. Generate one to get started!
Playground
Type a message below to start testing the model.
Enter sequences that stop generation.
Prompt Library
Saved prompts and configurations.
No saved prompts yet.
Available Models
Explore the different AI models available on the Genesis platform.
Genesis 5.5-Flash
JSONA faster variant of the 5.5 series optimized for speed while maintaining strong reasoning performance.
Format: Standard JSON
URL: https://base44.app/api/apps/69ff62869abc2f6968205265/files/mp/public/69ff62869abc2f6968205265/8897d4c1d_Genesis-55.json
Genesis SPT-5.0-Flash
JSONA capable JSON model with 45,000 parameters. Optimized for complex reasoning and general knowledge tasks.
Format: Standard JSON
Parameters: 45000
URL: https://base44.app/api/apps/69ff62869abc2f6968205265/files/mp/public/69ff62869abc2f6968205265/9d01496ae_Genesis-SPT-50.json
Genesis SPT-4.6-Flash
JSONA capable JSON model with 5,079 parameters. Optimized for complex reasoning and general knowledge tasks.
Format: Standard JSON
Parameters: 5079
URL: https://base44.app/api/apps/69ff62869abc2f6968205265/files/mp/public/69ff62869abc2f6968205265/46ab2cf3c_Genesis-SPT-46.json
Genesis SPT-1.0
Legacy JSONThe original JSON-based model. Human-readable and easy to edit. Best for understanding the underlying structure of Genesis AI responses.
Format: Standard JSON
Size: ~450 KB
URL: https://xpdevs.github.io/Genesis-AI/modals/Genesis-SPT-1.0.json
Tuned Models
Fine-tune Genesis models with your own datasets.
No tuned models found.
Batch Testing
Run prompts against multiple inputs to validate consistency.
| Input Variable | Model Output | Status |
|---|
Settings
Appearance
Data Management
Clear all locally stored data including API keys, saved prompts, and tuned model metadata.
API Key Usage Guide
Your secret API key (gs_sk_...) is used to authenticate your requests to the Genesis AI platform. Follow these best practices when integrating the key into your applications.
Authentication Method (Bearer Token)
All requests to the Genesis AI API must include your secret key in the Authorization HTTP header, formatted as a Bearer Token.
JavaScript Fetch Example:
async function generateContent(apiKey, prompt) {
// Validate API Key Structure
const keyRegex = /^gs_sk_[0-9a-f]{8}_[0-9a-f]{8}_[0-9a-f]{8}TO(\d+|UNL1M)$/i;
const match = apiKey.match(keyRegex);
if (!match) {
throw new Error("Invalid API Key: Must match format gs_sk_...TO");
}
const tokenLimit = match[1] === 'UNL1M' ? Infinity : parseInt(match[1]);
// Call this endpoint for full AI generation
const response = await fetch('https://xpdevs.github.io/Genesis-AI/developers/api/generate', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + apiKey + ''
},
body: JSON.stringify({
model: "genesis-5.5-flash",
prompt: prompt,
max_tokens: 128
})
});
if (!response.ok) {
throw new Error(`API request failed with status: ${response.status}`);
}
const data = await response.json();
// Enforce Token Limit (Word Count)
if (tokenLimit !== Infinity && data.text) {
const words = data.text.split(/\s+/);
if (words.length > tokenLimit) data.text = words.slice(0, tokenLimit).join(" ");
}
return data;
}
// NOTE: In a production environment, 'apiKey' should be loaded
// from a secure server-side environment variable on a backend server.
const mySecretKey = "[YOUR_FULL_API_KEY]";
generateContent(mySecretKey, "Write a headline for a new productivity app.")
.then(result => console.log(result.text))
.catch(error => console.error(error));
Security Best Practices
- Never Hardcode: Do not embed your secret key directly in front-end code (HTML, client-side JavaScript).
- Use Environment Variables: Store the key in environment variables on your server or CI/CD system.
- Do Not Share: Treat your key like a password. If compromised, revoke it immediately on the "API Keys" page.
Selective Logic Loading
Important: Do Not Link Directly
The main.js file contains automatic initialization logic (redirects and UI rendering) that will conflict with your application.
Do not use <script src="...">. Instead, manually extract the functions you need.
Recommended Extraction Pattern
To use specific features like the Safety System or Response Engine, copy these functions directly:
1. Safety System (Banned Words)
let bannedWords = [];
async function loadBannedWords() {
try {
const res = await fetch("https://xpdevs.github.io/Genesis-AI/js/banned/words.json?v=" + Date.now());
if (res.ok) bannedWords = await res.json();
} catch (err) { console.error("Error loading banned words:", err); }
}
loadBannedWords();
function violatesRules(text) {
if (!bannedWords.length) return false;
const lowerText = text.toLowerCase();
return bannedWords.some(word => new RegExp(\`\\\\b\${word}\\\\b\`, 'i').test(lowerText));
}
2. Response Engine (Fuzzy Matcher)
function findResponses(input) {
const lowerInput = input.toLowerCase();
const foundMatches = [];
// Ensure 'responses' object is loaded from the model
const sortedKeys = Object.keys(responses).sort((a, b) => b.length - a.length);
let tempInput = lowerInput;
sortedKeys.forEach(key => {
const lowerKey = key.toLowerCase();
let index = tempInput.indexOf(lowerKey);
while (index !== -1) {
foundMatches.push({ text: responses[key], index: index });
tempInput = tempInput.substring(0, index) + ' '.repeat(lowerKey.length) + tempInput.substring(index + lowerKey.length);
index = tempInput.indexOf(lowerKey);
}
});
if (foundMatches.length === 0) return { role: "ai", text: "I’m not quite sure I follow." };
const orderedMessages = foundMatches.sort((a, b) => a.index - b.index).map(m => m.text);
if (orderedMessages.length === 1) return { role: "ai", text: orderedMessages[0] };
const last = orderedMessages.pop();
return { role: "ai", text: orderedMessages.join(", ") + " and " + last };
}
Tokenizer Module
All current Genesis models encode text using hex escape sequences (\xHH, \uXXXX) to ensure safe transport. The tokenizer.decode() function is required to decode model output correctly. Include this script before loading any model:
/**
* Genesis-AI: Tokenizer Module
*
* Decodes standard hex escape sequences in a string:
* - \xHH → UTF‑8 byte (multiple consecutive bytes form a character)
* - \uXXXX → Unicode code point (supports BMP)
* - \u{H...} → Any Unicode code point (supports astral planes)
*
* All other text is preserved as‑is.
*/
(function() {
'use strict';
const textDecoder = new TextDecoder('utf-8', { fatal: false });
function decode(input) {
if (typeof input !== 'string') return '';
let result = '';
let i = 0;
const len = input.length;
while (i < len) {
if (input[i] === '\\' && i + 1 < len) {
const next = input[i + 1];
if (next === 'x' && i + 3 < len && /[0-9a-fA-F]{2}/.test(input.substr(i + 2, 2))) {
const bytes = [];
while (i + 3 < len && input[i] === '\\' && input[i + 1] === 'x' &&
/[0-9a-fA-F]{2}/.test(input.substr(i + 2, 2))) {
const hex = input.substr(i + 2, 2);
bytes.push(parseInt(hex, 16));
i += 4;
}
result += textDecoder.decode(new Uint8Array(bytes));
continue;
}
if (next === 'u' && i + 5 < len && /[0-9a-fA-F]{4}/.test(input.substr(i + 2, 4))) {
const hex = input.substr(i + 2, 4);
result += String.fromCodePoint(parseInt(hex, 16));
i += 6;
continue;
}
if (next === 'u' && i + 3 < len && input[i + 2] === '{') {
let end = i + 3;
while (end < len && input[end] !== '}') end++;
if (end < len) {
const hex = input.substring(i + 3, end);
if (/^[0-9a-fA-F]+$/.test(hex)) {
result += String.fromCodePoint(parseInt(hex, 16));
i = end + 1;
continue;
}
}
}
result += input[i];
i++;
} else {
result += input[i];
i++;
}
}
return result;
}
window.tokenizer = { decode };
console.log("Tokenizer Module Loaded (decodes \\xHH, \\uXXXX, \\u{H...})");
})();
Required for all models
All current Genesis models encode their output with hex escapes and require tokenizer.decode() to produce readable text. Load this module before fetching the model and call tokenizer.decode(output) on every response string.
Thinking Blocks
Some models may include internal reasoning steps wrapped in <|think|> tags. You can display these as collapsible sections or strip them for clean output. This is optional and depends on whether the model supports thinking.
/**
* Parse <|think|> blocks from model output
* Returns { parts, hasThinking } where parts is an array of
* { type: 'text'|'think', content: string }
*/
function parseThinkBlocks(text) {
const parts = [];
let lastIdx = 0;
const regex = /<\|think\|>([\s\S]*?)<\/\|think\|>/g;
let match;
let hasThinking = false;
while ((match = regex.exec(text)) !== null) {
hasThinking = true;
if (match.index > lastIdx) {
parts.push({ type: 'text', content: text.slice(lastIdx, match.index) });
}
parts.push({ type: 'think', content: match[1].trim() });
lastIdx = match.index + match[0].length;
}
if (lastIdx < text.length) {
parts.push({ type: 'text', content: text.slice(lastIdx) });
}
if (!hasThinking) {
return { parts: [{ type: 'text', content: text }], hasThinking: false };
}
return { parts, hasThinking };
}
// Usage: strip thinking blocks for clean display
function stripThinkBlocks(text) {
return text.replace(/<\|think\|>[\s\S]*?<\/\|think\|>/g, '').trim();
}
Optional, model-dependent
Not all models emit thinking tags. Use stripThinkBlocks() on decoded output to remove them for a clean display, or parseThinkBlocks() to render reasoning separately. Future models may add support for thinking blocks.