✓ Verified
💻 Development
✓ Enhanced Data
Gpt Analyzer
GPT-specific pattern detection with model fingerprinting and version identification.
- Rating
- 4.3 (74 reviews)
- Downloads
- 13,916 downloads
- Version
- 1.0.0
Overview
GPT-specific pattern detection with model fingerprinting and version identification.
Complete Documentation
View Source →
GPT Analyzer
Specialized detection for GPT-generated content with model-specific pattern recognition.
Implementation
javascript
/**
* Analyze text for GPT-specific patterns and fingerprints
* @param {string} text - Text to analyze
* @param {object} options - Configuration options
* @returns {object} Analysis result with model identification
*/
async function analyzeGPTContent(text, options = {}) {
const {
detectVersion = true,
checkWatermarks = true,
minConfidence = 0.7
} = options;
const normalizedText = text.toLowerCase();
const wordCount = text.split(/\s+/).length;
// GPT-specific phrases (stronger indicators)
const gptPhrases = {
'gpt-4': [
'delve into', 'landscape of', 'realm of', 'it\'s important to note',
'multifaceted', 'nuanced', 'comprehensive', 'holistic approach'
],
'gpt-3.5': [
'as an ai language model', 'i don\'t have personal', 'i apologize for',
'certainly', 'absolutely', 'furthermore', 'moreover'
],
'common': [
'it\'s worth noting', 'keep in mind', 'in conclusion',
'to summarize', 'in summary', 'navigate the', 'tapestry of'
]
};
// Model fingerprinting
let gpt4Score = 0;
let gpt35Score = 0;
let commonScore = 0;
const foundPhrases = [];
// Check GPT-4 specific patterns
for (const phrase of gptPhrases['gpt-4']) {
if (normalizedText.includes(phrase)) {
gpt4Score += 0.2;
foundPhrases.push({ phrase, model: 'gpt-4' });
}
}
// Check GPT-3.5 specific patterns
for (const phrase of gptPhrases['gpt-3.5']) {
if (normalizedText.includes(phrase)) {
gpt35Score += 0.2;
foundPhrases.push({ phrase, model: 'gpt-3.5' });
}
}
// Check common GPT patterns
for (const phrase of gptPhrases['common']) {
if (normalizedText.includes(phrase)) {
commonScore += 0.1;
foundPhrases.push({ phrase, model: 'common' });
}
}
// Structure analysis
const hasNumberedLists = (text.match(/\n\d+\./g) || []).length >= 3;
const hasBulletPoints = (text.match(/\n[•\-\*]/g) || []).length >= 3;
const structureScore = (hasNumberedLists || hasBulletPoints) ? 0.15 : 0;
// Sentence uniformity
const sentences = text.split(/[.!?]+/).filter(s => s.trim());
const avgLength = sentences.reduce((sum, s) => sum + s.length, 0) / sentences.length;
const variance = sentences.reduce((sum, s) => sum + Math.pow(s.length - avgLength, 2), 0) / sentences.length;
const uniformityScore = variance < 500 ? 0.1 : 0;
// Calculate confidence
const totalScore = gpt4Score + gpt35Score + commonScore + structureScore + uniformityScore;
const confidence = Math.min(totalScore, 1.0);
// Determine model
let detectedModel = 'unknown';
if (gpt4Score > gpt35Score && gpt4Score > 0) {
detectedModel = 'gpt-4';
} else if (gpt35Score > gpt4Score && gpt35Score > 0) {
detectedModel = 'gpt-3.5';
} else if (commonScore > 0) {
detectedModel = 'gpt-family';
}
const isGPT = confidence >= minConfidence;
return {
isGPT,
confidence: Math.round(confidence * 100),
detectedModel: isGPT ? detectedModel : 'not-gpt',
scores: {
gpt4: Math.round(gpt4Score * 100) / 100,
gpt35: Math.round(gpt35Score * 100) / 100,
common: Math.round(commonScore * 100) / 100,
structure: Math.round(structureScore * 100) / 100,
uniformity: Math.round(uniformityScore * 100) / 100
},
indicators: {
foundPhrases: foundPhrases.length,
hasStructure: hasNumberedLists || hasBulletPoints,
avgSentenceLength: Math.round(avgLength),
sentenceVariance: Math.round(variance)
},
recommendation: confidence >= 0.85 ? 'Very likely GPT' :
confidence >= 0.70 ? 'Likely GPT' :
confidence >= 0.50 ? 'Possibly GPT' :
'Unlikely GPT or human-written'
};
}
// Export for OpenClaw
module.exports = {
analyzeGPTContent
};
Usage
javascript
const result = await skills.gptAnalyzer.analyzeGPTContent(text);
if (result.isGPT) {
console.log(`GPT detected: ${result.detectedModel} (${result.confidence}% confidence)`);
}
Configuration
json
{
"detectVersion": true,
"minConfidence": 0.7
}
Installation
Terminal bash
openclaw install gpt-analyzer
Copied!
💻Code Examples
example.js
/**
* Analyze text for GPT-specific patterns and fingerprints
* @param {string} text - Text to analyze
* @param {object} options - Configuration options
* @returns {object} Analysis result with model identification
*/
async function analyzeGPTContent(text, options = {}) {
const {
detectVersion = true,
checkWatermarks = true,
minConfidence = 0.7
} = options;
const normalizedText = text.toLowerCase();
const wordCount = text.split(/\s+/).length;
// GPT-specific phrases (stronger indicators)
const gptPhrases = {
'gpt-4': [
'delve into', 'landscape of', 'realm of', 'it\'s important to note',
'multifaceted', 'nuanced', 'comprehensive', 'holistic approach'
],
'gpt-3.5': [
'as an ai language model', 'i don\'t have personal', 'i apologize for',
'certainly', 'absolutely', 'furthermore', 'moreover'
],
'common': [
'it\'s worth noting', 'keep in mind', 'in conclusion',
'to summarize', 'in summary', 'navigate the', 'tapestry of'
]
};
// Model fingerprinting
let gpt4Score = 0;
let gpt35Score = 0;
let commonScore = 0;
const foundPhrases = [];
// Check GPT-4 specific patterns
for (const phrase of gptPhrases['gpt-4']) {
if (normalizedText.includes(phrase)) {
gpt4Score += 0.2;
foundPhrases.push({ phrase, model: 'gpt-4' });
}
}
// Check GPT-3.5 specific patterns
for (const phrase of gptPhrases['gpt-3.5']) {
if (normalizedText.includes(phrase)) {
gpt35Score += 0.2;
foundPhrases.push({ phrase, model: 'gpt-3.5' });
}
}
// Check common GPT patterns
for (const phrase of gptPhrases['common']) {
if (normalizedText.includes(phrase)) {
commonScore += 0.1;
foundPhrases.push({ phrase, model: 'common' });
}
}
// Structure analysis
const hasNumberedLists = (text.match(/\n\d+\./g) || []).length >= 3;
const hasBulletPoints = (text.match(/\n[•\-\*]/g) || []).length >= 3;
const structureScore = (hasNumberedLists || hasBulletPoints) ? 0.15 : 0;
// Sentence uniformity
const sentences = text.split(/[.!?]+/).filter(s => s.trim());
const avgLength = sentences.reduce((sum, s) => sum + s.length, 0) / sentences.length;
const variance = sentences.reduce((sum, s) => sum + Math.pow(s.length - avgLength, 2), 0) / sentences.length;
const uniformityScore = variance < 500 ? 0.1 : 0;
// Calculate confidence
const totalScore = gpt4Score + gpt35Score + commonScore + structureScore + uniformityScore;
const confidence = Math.min(totalScore, 1.0);
// Determine model
let detectedModel = 'unknown';
if (gpt4Score > gpt35Score && gpt4Score > 0) {
detectedModel = 'gpt-4';
} else if (gpt35Score > gpt4Score && gpt35Score > 0) {
detectedModel = 'gpt-3.5';
} else if (commonScore > 0) {
detectedModel = 'gpt-family';
}
const isGPT = confidence >= minConfidence;
return {
isGPT,
confidence: Math.round(confidence * 100),
detectedModel: isGPT ? detectedModel : 'not-gpt',
scores: {
gpt4: Math.round(gpt4Score * 100) / 100,
gpt35: Math.round(gpt35Score * 100) / 100,
common: Math.round(commonScore * 100) / 100,
structure: Math.round(structureScore * 100) / 100,
uniformity: Math.round(uniformityScore * 100) / 100
},
indicators: {
foundPhrases: foundPhrases.length,
hasStructure: hasNumberedLists || hasBulletPoints,
avgSentenceLength: Math.round(avgLength),
sentenceVariance: Math.round(variance)
},
recommendation: confidence >= 0.85 ? 'Very likely GPT' :
confidence >= 0.70 ? 'Likely GPT' :
confidence >= 0.50 ? 'Possibly GPT' :
'Unlikely GPT or human-written'
};
}
// Export for OpenClaw
module.exports = {
analyzeGPTContent
};example.js
const result = await skills.gptAnalyzer.analyzeGPTContent(text);
if (result.isGPT) {
console.log(`GPT detected: ${result.detectedModel} (${result.confidence}% confidence)`);
}example.json
{
"detectVersion": true,
"minConfidence": 0.7
}Tags
#coding_agents-and-ides
Quick Info
Category Development
Model GPT-4
Complexity One-Click
Author raghulpasupathi
Last Updated 3/10/2026
🚀
Optimized for
GPT-4
Ready to Install?
Get started with this skill in seconds
openclaw install gpt-analyzer
Related Skills
✓ Verified
💻 Development
4claw
4claw — a moderated imageboard for AI agents.
🧠 Claude-Ready
)}
★ 4.4 (118)
↓ 4,990
v1.0.0
✓ Verified
💻 Development
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
🧠 Claude-Ready
)}
★ 4.3 (89)
↓ 4,621
v1.0.0
✓ Verified
💻 Development
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
⚡ GPT-Optimized
)}
★ 3.8 (274)
↓ 17,648
v1.0.0
✓ Verified
💻 Development
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.
🧠 Claude-Ready
)}
★ 4.7 (88)
↓ 1,625
v1.0.0