Table of Contents

Class PromptAnalyzerBase

Namespace
AiDotNet.PromptEngineering.Analysis
Assembly
AiDotNet.dll

Provides a base implementation for prompt analyzers with common functionality.

public abstract class PromptAnalyzerBase : IPromptAnalyzer
Inheritance
PromptAnalyzerBase
Implements
Derived
Inherited Members

Remarks

This abstract class implements the IPromptAnalyzer interface and provides common functionality for prompt analysis. It handles validation, token counting, and delegates to derived classes for specific analysis logic.

For Beginners: This is the foundation that all prompt analyzers build upon.

Think of it like a template for examining prompts:

  • It handles common tasks (counting words, finding variables)
  • Specific analyzers fill in details like token counting and pattern detection
  • This ensures all analyzers work consistently

Constructors

PromptAnalyzerBase(string, string, decimal, Func<string, int>?)

Initializes a new instance of the PromptAnalyzerBase class.

protected PromptAnalyzerBase(string name, string modelName = "gpt-4", decimal costPerThousandTokens = 0.03, Func<string, int>? tokenCounter = null)

Parameters

name string

The name of this analyzer.

modelName string

The model this analyzer targets.

costPerThousandTokens decimal

Cost per 1000 tokens for cost estimation.

tokenCounter Func<string, int>

Optional custom token counter function.

Properties

Name

Gets the name of this analyzer implementation.

public string Name { get; }

Property Value

string

Methods

Analyze(string)

Analyzes a prompt and returns detailed metrics.

public PromptMetrics Analyze(string prompt)

Parameters

prompt string

The prompt string to analyze.

Returns

PromptMetrics

A PromptMetrics object containing analysis results.

AnalyzeAsync(string, CancellationToken)

Analyzes a prompt asynchronously.

public virtual Task<PromptMetrics> AnalyzeAsync(string prompt, CancellationToken cancellationToken = default)

Parameters

prompt string
cancellationToken CancellationToken

Returns

Task<PromptMetrics>

CalculateComplexity(string, int, int, int)

Calculates complexity score (0.0 to 1.0).

protected virtual double CalculateComplexity(string prompt, int tokenCount, int variableCount, int exampleCount)

Parameters

prompt string
tokenCount int
variableCount int
exampleCount int

Returns

double

CalculateCost(int)

Calculates estimated cost based on token count.

protected decimal CalculateCost(int tokenCount)

Parameters

tokenCount int

Returns

decimal

CheckForInjection(string)

Checks for potential prompt injection patterns.

protected virtual IEnumerable<PromptIssue> CheckForInjection(string prompt)

Parameters

prompt string

Returns

IEnumerable<PromptIssue>

CountExamples(string)

Counts few-shot examples in the prompt.

protected virtual int CountExamples(string prompt)

Parameters

prompt string

Returns

int

CountTokens(string)

Counts tokens in the given text.

protected int CountTokens(string text)

Parameters

text string

Returns

int

CountVariables(string)

Counts template variables in the prompt.

protected static int CountVariables(string prompt)

Parameters

prompt string

Returns

int

CountWords(string)

Counts words in the text.

protected static int CountWords(string text)

Parameters

text string

Returns

int

CustomValidation(string, ValidationOptions)

Allows derived classes to add custom validation.

protected virtual IEnumerable<PromptIssue> CustomValidation(string prompt, ValidationOptions options)

Parameters

prompt string
options ValidationOptions

Returns

IEnumerable<PromptIssue>

DetectPatterns(string)

Detects prompt patterns/types.

protected virtual IReadOnlyList<string> DetectPatterns(string prompt)

Parameters

prompt string

Returns

IReadOnlyList<string>

EnhanceMetrics(string, PromptMetrics)

Allows derived classes to add custom metrics.

protected virtual void EnhanceMetrics(string prompt, PromptMetrics metrics)

Parameters

prompt string
metrics PromptMetrics

ValidatePrompt(string, ValidationOptions?)

Validates a prompt for potential issues.

public IEnumerable<PromptIssue> ValidatePrompt(string prompt, ValidationOptions? options = null)

Parameters

prompt string
options ValidationOptions

Returns

IEnumerable<PromptIssue>

ValidateVariables(string)

Validates template variables in the prompt.

protected virtual IEnumerable<PromptIssue> ValidateVariables(string prompt)

Parameters

prompt string

Returns

IEnumerable<PromptIssue>