UNPKG

@josheverett/bullshit-detector

Version:

AI-powered fact-checking and bullshit detection for Node.js applications

115 lines 3.52 kB
/** * @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