@josheverett/bullshit-detector
Version:
AI-powered fact-checking and bullshit detection for Node.js applications
115 lines • 3.52 kB
TypeScript
/**
* @josheverett/bullshit-detector
*
* Generic fact-checking and bullshit detection for any Node.js project requiring LLM-based analysis.
* Uses OpenAI for single-call fact extraction and evaluation.
*/
export interface BullshitDetectionResult {
transcript: string;
claim: string;
summary: string;
bullshitLevel: number;
confidence: number;
reasoning: string;
truth: string;
externalSources?: Array<{
source: string;
rating?: string;
url?: string;
confidence?: number;
summary?: string;
}>;
detectionMethod?: 'llm_only' | 'llm_with_api_enhancement' | 'api_first_with_llm_fallback';
}
export interface FactCheckAPI {
name: string;
enabled: boolean;
config?: any;
}
export interface GoogleFactCheckConfig {
apiKey: string;
maxResults?: number;
}
export interface ClaimBusterConfig {
apiKey?: string;
}
export interface WikipediaConfig {
maxResults?: number;
language?: string;
}
export interface BullshitDetectionConfig {
model?: string;
temperature?: number;
maxTokens?: number;
factCheckAPIs?: {
googleFactCheck?: FactCheckAPI & {
config?: GoogleFactCheckConfig;
};
claimBuster?: FactCheckAPI & {
config?: ClaimBusterConfig;
};
wikipedia?: FactCheckAPI & {
config?: WikipediaConfig;
};
};
hybridStrategy?: 'llm_only' | 'api_first' | 'api_enhanced';
}
export interface OpenAIMessage {
role: 'system' | 'user' | 'assistant';
content: string;
}
interface GoogleFactCheckResult {
text: string;
claimant?: string;
claimDate?: string;
claimReview?: Array<{
publisher: {
name: string;
site?: string;
};
url: string;
title: string;
reviewDate: string;
textualRating: string;
languageCode: string;
}>;
}
interface ClaimBusterResult {
score: number;
claim: string;
}
interface WikipediaSearchResult {
title: string;
snippet: string;
url: string;
confidence: number;
}
export declare function checkWithGoogleFactCheck(claim: string, config: GoogleFactCheckConfig): Promise<GoogleFactCheckResult[]>;
export declare function checkWithClaimBuster(claim: string, config: ClaimBusterConfig): Promise<ClaimBusterResult | null>;
export declare function searchWikipedia(claim: string, config: WikipediaConfig): Promise<WikipediaSearchResult[]>;
/**
* Detects bullshit in text using OpenAI for fact-checking analysis
* @param input Either a string to analyze or an array of OpenAI-formatted messages
* @param config Optional configuration for the detection process
* @returns Promise resolving to array of bullshit detection results (one per factual claim)
*/
export declare function detectBullshit(input: string | OpenAIMessage[], config?: BullshitDetectionConfig): Promise<BullshitDetectionResult[]>;
export interface StatementEvaluation {
claim: string;
bullshitLevel: number;
confidence: number;
reasoning: string;
truth: string;
}
export interface BullshitDetectorConfig {
maxStatements?: number;
confidenceThreshold?: number;
}
export declare class BullshitDetector {
private config;
constructor(config?: BullshitDetectorConfig);
analyzeTranscript(transcript: string): Promise<StatementEvaluation[]>;
evaluateClaim(claim: string): Promise<StatementEvaluation>;
}
export default detectBullshit;
//# sourceMappingURL=index.d.ts.map