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
namestringThe name of this analyzer.
modelNamestringThe model this analyzer targets.
costPerThousandTokensdecimalCost per 1000 tokens for cost estimation.
tokenCounterFunc<string, int>Optional custom token counter function.
Properties
Name
Gets the name of this analyzer implementation.
public string Name { get; }
Property Value
Methods
Analyze(string)
Analyzes a prompt and returns detailed metrics.
public PromptMetrics Analyze(string prompt)
Parameters
promptstringThe 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
promptstringcancellationTokenCancellationToken
Returns
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
Returns
CalculateCost(int)
Calculates estimated cost based on token count.
protected decimal CalculateCost(int tokenCount)
Parameters
tokenCountint
Returns
CheckForInjection(string)
Checks for potential prompt injection patterns.
protected virtual IEnumerable<PromptIssue> CheckForInjection(string prompt)
Parameters
promptstring
Returns
CountExamples(string)
Counts few-shot examples in the prompt.
protected virtual int CountExamples(string prompt)
Parameters
promptstring
Returns
CountTokens(string)
Counts tokens in the given text.
protected int CountTokens(string text)
Parameters
textstring
Returns
CountVariables(string)
Counts template variables in the prompt.
protected static int CountVariables(string prompt)
Parameters
promptstring
Returns
CountWords(string)
Counts words in the text.
protected static int CountWords(string text)
Parameters
textstring
Returns
CustomValidation(string, ValidationOptions)
Allows derived classes to add custom validation.
protected virtual IEnumerable<PromptIssue> CustomValidation(string prompt, ValidationOptions options)
Parameters
promptstringoptionsValidationOptions
Returns
DetectPatterns(string)
Detects prompt patterns/types.
protected virtual IReadOnlyList<string> DetectPatterns(string prompt)
Parameters
promptstring
Returns
EnhanceMetrics(string, PromptMetrics)
Allows derived classes to add custom metrics.
protected virtual void EnhanceMetrics(string prompt, PromptMetrics metrics)
Parameters
promptstringmetricsPromptMetrics
ValidatePrompt(string, ValidationOptions?)
Validates a prompt for potential issues.
public IEnumerable<PromptIssue> ValidatePrompt(string prompt, ValidationOptions? options = null)
Parameters
promptstringoptionsValidationOptions
Returns
ValidateVariables(string)
Validates template variables in the prompt.
protected virtual IEnumerable<PromptIssue> ValidateVariables(string prompt)
Parameters
promptstring