@matthew.ngo/ai-toolkit
Version:
A comprehensive AI toolkit with multi-provider support
1 lines • 71.8 kB
Source Map (JSON)
{"version":3,"sources":["../src/providers/base-provider.ts","../src/providers/anthropic-provider.ts","../src/providers/google-provider.ts","../src/providers/mock-provider.ts","../src/providers/openai-provider.ts"],"names":["BaseProvider","config","additionalHeaders","url","options","timeout","controller","timeoutId","response","error","errorMessage","errorData","_prompt","_options","_text","_labels","_image","_audio","_code","_language","AnthropicProvider","Anthropic","prompt","model","block","stream","event","text","labels","jsonMatch","label","acc","l","systemPrompt","fullPrompt","code","language","GoogleProvider","GoogleGenerativeAI","modelName","generationConfig","result","chunk","image","base64Image","buffer","features","responseText","MockProvider","customDelay","delayTime","resolve","predefinedResponse","variation","words","word","hash","char","_","i","textLength","hasPositiveWords","hasNegativeWords","selectedIndex","scores","total","sum","score","key","selectedLabel","positiveWords","negativeWords","sentiment","size","style","includeComments","tests","lines","hasFunction","hasClass","value","OpenAIProvider","OpenAI","content","audio","file","transcription","w","arrayBuffer"],"mappings":"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","file":"chunk-6OKKVZHN.cjs","sourcesContent":["import {\n AIProvider,\n Classification,\n CodeGenerationOptions,\n CodeResult,\n GenerateOptions,\n ImageAnalysis,\n ImageAnalysisOptions,\n ImageGenerationOptions,\n ImageResult,\n SentimentAnalysis,\n SpeechOptions,\n SummarizeOptions,\n TranscriptionOptions,\n TranscriptionResult,\n} from \"../types\";\n\nexport interface ProviderConfig {\n name: string;\n apiKey?: string;\n baseUrl?: string;\n model?: string;\n headers?: Record<string, string>;\n maxRetries?: number;\n timeout?: number;\n}\n\nexport abstract class BaseProvider implements AIProvider {\n public name: string;\n protected config: ProviderConfig;\n protected defaultModel: string;\n\n constructor(config: ProviderConfig) {\n this.name = config.name;\n this.config = config;\n this.defaultModel = config.model || this.getDefaultModel();\n }\n\n /**\n * Get default model for provider\n */\n protected abstract getDefaultModel(): string;\n\n /**\n * Validate API key format\n */\n protected validateApiKey(): void {\n if (!this.config.apiKey) {\n throw new Error(`API key required for ${this.name} provider`);\n }\n }\n\n /**\n * Get headers for API requests\n */\n protected getHeaders(\n additionalHeaders?: Record<string, string>\n ): Record<string, string> {\n return {\n \"Content-Type\": \"application/json\",\n ...this.config.headers,\n ...additionalHeaders,\n };\n }\n\n /**\n * Make API request with error handling\n */\n protected async makeRequest<T>(\n url: string,\n options: RequestInit\n ): Promise<T> {\n const timeout = this.config.timeout || 30000;\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n try {\n const response = await fetch(url, {\n ...options,\n signal: controller.signal,\n });\n\n if (!response.ok) {\n const error = await this.parseError(response);\n throw error;\n }\n\n return await response.json();\n } catch (error: any) {\n if (error.name === \"AbortError\") {\n throw new Error(`Request timeout after ${timeout}ms`);\n }\n throw error;\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n /**\n * Parse API error response\n */\n protected async parseError(response: Response): Promise<Error> {\n let errorMessage = `${this.name} API error: ${response.status} ${response.statusText}`;\n\n try {\n const errorData = await response.json();\n if (errorData.error?.message) {\n errorMessage = errorData.error.message;\n } else if (errorData.message) {\n errorMessage = errorData.message;\n }\n } catch {\n // Use default error message if parsing fails\n }\n\n const error = new Error(errorMessage) as any;\n error.status = response.status;\n error.provider = this.name;\n\n return error;\n }\n\n /**\n * Get model to use for request\n */\n protected getModel(options?: { model?: string }): string {\n return options?.model || this.config.model || this.defaultModel;\n }\n\n // Default implementations that throw not implemented errors\n async generateText(\n _prompt: string,\n _options?: GenerateOptions\n ): Promise<string> {\n throw new Error(\n `Text generation not implemented for ${this.name} provider`\n );\n }\n\n async *generateStream(\n _prompt: string,\n _options?: GenerateOptions\n ): AsyncGenerator<string> {\n throw new Error(\n `Stream generation not implemented for ${this.name} provider`\n );\n }\n\n async generateEmbedding(_text: string): Promise<number[]> {\n throw new Error(\n `Embedding generation not implemented for ${this.name} provider`\n );\n }\n\n async classifyText(\n _text: string,\n _labels: string[]\n ): Promise<Classification> {\n throw new Error(\n `Text classification not implemented for ${this.name} provider`\n );\n }\n\n async summarize(_text: string, _options?: SummarizeOptions): Promise<string> {\n throw new Error(\n `Text summarization not implemented for ${this.name} provider`\n );\n }\n\n async analyzeSentiment(_text: string): Promise<SentimentAnalysis> {\n throw new Error(\n `Sentiment analysis not implemented for ${this.name} provider`\n );\n }\n\n async generateImage(\n _prompt: string,\n _options?: ImageGenerationOptions\n ): Promise<ImageResult> {\n throw new Error(\n `Image generation not implemented for ${this.name} provider`\n );\n }\n\n async analyzeImage(\n _image: string | Blob,\n _options?: ImageAnalysisOptions\n ): Promise<ImageAnalysis> {\n throw new Error(`Image analysis not implemented for ${this.name} provider`);\n }\n\n async transcribeAudio(\n _audio: Blob,\n _options?: TranscriptionOptions\n ): Promise<TranscriptionResult> {\n throw new Error(\n `Audio transcription not implemented for ${this.name} provider`\n );\n }\n\n async generateSpeech(_text: string, _options?: SpeechOptions): Promise<Blob> {\n throw new Error(\n `Speech generation not implemented for ${this.name} provider`\n );\n }\n\n async generateCode(\n _prompt: string,\n _options?: CodeGenerationOptions\n ): Promise<CodeResult> {\n throw new Error(\n `Code generation not implemented for ${this.name} provider`\n );\n }\n\n async explainCode(_code: string, _language?: string): Promise<string> {\n throw new Error(\n `Code explanation not implemented for ${this.name} provider`\n );\n }\n}\n","import Anthropic from \"@anthropic-ai/sdk\";\nimport { Classification, GenerateOptions, SummarizeOptions } from \"../types\";\nimport { BaseProvider, ProviderConfig } from \"./base-provider\";\n\nexport class AnthropicProvider extends BaseProvider {\n private client: Anthropic;\n\n constructor(config: ProviderConfig) {\n super(config);\n this.validateApiKey();\n\n this.client = new Anthropic({\n apiKey: this.config.apiKey!,\n baseURL: this.config.baseUrl,\n timeout: this.config.timeout,\n maxRetries: this.config.maxRetries || 2,\n });\n }\n\n protected getDefaultModel(): string {\n return \"claude-3-sonnet-20240229\";\n }\n\n /**\n * Generate text completion\n */\n override async generateText(\n prompt: string,\n options?: GenerateOptions\n ): Promise<string> {\n const model = this.getModel(options as { model?: string });\n\n const response = await this.client.messages.create({\n model,\n messages: [\n {\n role: \"user\",\n content: prompt,\n },\n ],\n system: options?.systemPrompt,\n max_tokens: options?.maxTokens || 1000,\n temperature: options?.temperature,\n top_p: options?.topP,\n top_k: options?.topK,\n stop_sequences: options?.stopSequences,\n stream: false,\n });\n\n // Extract text from content blocks\n const content = response.content\n .filter((block) => block.type === \"text\")\n .map((block) => (block as any).text)\n .join(\"\\n\");\n\n return content;\n }\n\n /**\n * Generate streaming text completion\n */\n override async *generateStream(\n prompt: string,\n options?: GenerateOptions\n ): AsyncGenerator<string> {\n const model = this.getModel(options as { model?: string });\n\n const stream = await this.client.messages.create({\n model,\n messages: [\n {\n role: \"user\",\n content: prompt,\n },\n ],\n system: options?.systemPrompt,\n max_tokens: options?.maxTokens || 1000,\n temperature: options?.temperature,\n top_p: options?.topP,\n top_k: options?.topK,\n stop_sequences: options?.stopSequences,\n stream: true,\n });\n\n for await (const event of stream) {\n if (\n event.type === \"content_block_delta\" &&\n event.delta.type === \"text_delta\"\n ) {\n yield event.delta.text;\n }\n }\n }\n\n /**\n * Classify text\n */\n override async classifyText(\n text: string,\n labels: string[]\n ): Promise<Classification> {\n const prompt = `Classify this text into exactly one category from: ${labels.join(\", \")}.\n\nText: \"${text}\"\n\nRespond with a JSON object:\n{\n \"label\": \"chosen category\",\n \"confidence\": 0.0-1.0,\n \"scores\": { \"category1\": 0.0-1.0, ... }\n}`;\n\n const response = await this.generateText(prompt, {\n temperature: 0,\n maxTokens: 200,\n });\n\n try {\n // Extract JSON from response\n const jsonMatch = response.match(/\\{[\\s\\S]*\\}/);\n if (jsonMatch) {\n return JSON.parse(jsonMatch[0]);\n }\n } catch {\n // Fallback parsing\n }\n\n // Fallback response\n const label = labels[0] ?? \"\";\n return {\n label,\n confidence: 0.5,\n scores: labels.reduce(\n (acc, l) => ({\n ...acc,\n [l]: l === label ? 0.5 : 0.5 / (labels.length - 1),\n }),\n {}\n ),\n };\n }\n\n /**\n * Summarize text\n */\n override async summarize(\n text: string,\n options?: SummarizeOptions\n ): Promise<string> {\n const instructions = {\n bullet: \"Create a bullet-point summary with key points\",\n paragraph: \"Write a concise paragraph summary\",\n tldr: \"Write a one-sentence TL;DR\",\n \"key-points\": \"Extract the most important key points\",\n executive: \"Write an executive summary for business leaders\",\n };\n\n const prompt = `${instructions[options?.style || \"paragraph\"]} of the following text.\n${options?.maxLength ? `Keep it under ${options.maxLength} characters.` : \"\"}\n\nText:\n\"${text}\"\n\nSummary:`;\n\n return this.generateText(prompt, {\n maxTokens: options?.maxLength ? Math.ceil(options.maxLength / 4) : 200,\n temperature: 0.3,\n });\n }\n\n /**\n * Analyze sentiment\n */\n override async analyzeSentiment(text: string): Promise<any> {\n const prompt = `Analyze the sentiment of the following text. Respond with JSON:\n{\n \"sentiment\": \"positive\" | \"negative\" | \"neutral\" | \"mixed\",\n \"score\": 0.0-1.0,\n \"aspects\": [\n { \"aspect\": \"...\", \"sentiment\": \"...\", \"score\": 0.0-1.0 }\n ]\n}\n\nText: \"${text}\"`;\n\n const response = await this.generateText(prompt, {\n temperature: 0,\n maxTokens: 300,\n });\n\n try {\n const jsonMatch = response.match(/\\{[\\s\\S]*\\}/);\n if (jsonMatch) {\n return JSON.parse(jsonMatch[0]);\n }\n } catch {\n // Fallback\n }\n\n return {\n sentiment: \"neutral\",\n score: 0.5,\n aspects: [],\n };\n }\n\n /**\n * Generate embeddings (not supported by Anthropic)\n */\n override async generateEmbedding(_text: string): Promise<number[]> {\n throw new Error(\n \"Embeddings not supported by Anthropic. Use a different provider.\"\n );\n }\n\n /**\n * Generate code\n */\n override async generateCode(prompt: string, options?: any): Promise<any> {\n const systemPrompt = `You are Claude, an expert programmer. Generate clean, efficient code.\n${options?.includeComments ? \"Include helpful comments.\" : \"\"}\n${options?.includeTests ? \"Include unit tests.\" : \"\"}\nAlways respond with valid JSON containing: code, language, explanation, and dependencies array.`;\n\n const fullPrompt = `Language: ${options?.language || \"auto-detect\"}\nFramework: ${options?.framework || \"none\"}\n\nTask: ${prompt}\n\nRespond with JSON:\n{\n \"code\": \"the generated code\",\n \"language\": \"detected or specified language\",\n \"explanation\": \"brief explanation\",\n ${options?.includeTests ? '\"tests\": \"unit test code\",' : \"\"}\n \"dependencies\": [\"required\", \"packages\"]\n}`;\n\n const response = await this.generateText(fullPrompt, {\n systemPrompt,\n temperature: 0.2,\n maxTokens: 2000,\n });\n\n try {\n const jsonMatch = response.match(/\\{[\\s\\S]*\\}/);\n if (jsonMatch) {\n return JSON.parse(jsonMatch[0]);\n }\n } catch {\n // Fallback\n }\n\n return {\n code: response,\n language: options?.language || \"unknown\",\n explanation: \"Generated code\",\n dependencies: [],\n };\n }\n\n /**\n * Explain code\n */\n override async explainCode(code: string, language?: string): Promise<string> {\n const prompt = `Explain this ${language || \"code\"} in detail:\n\n\\`\\`\\`${language || \"\"}\n${code}\n\\`\\`\\`\n\nExplain:\n1. What it does\n2. How it works\n3. Key concepts/patterns\n4. Potential improvements`;\n\n return this.generateText(prompt, {\n temperature: 0.3,\n maxTokens: 1000,\n });\n }\n\n /**\n // * Extract token usage from response\n // */\n // private _extractTokenUsage(usage: any): TokenUsage {\n // return {\n // promptTokens: usage?.input_tokens || 0,\n // completionTokens: usage?.output_tokens || 0,\n // totalTokens: (usage?.input_tokens || 0) + (usage?.output_tokens || 0),\n // };\n // }\n}\n","import { GoogleGenerativeAI } from \"@google/generative-ai\";\nimport {\n Classification,\n GenerateOptions,\n ImageAnalysis,\n ImageAnalysisOptions,\n SummarizeOptions,\n} from \"../types\";\nimport { BaseProvider, ProviderConfig } from \"./base-provider\";\n\nexport class GoogleProvider extends BaseProvider {\n private client: GoogleGenerativeAI;\n\n constructor(config: ProviderConfig) {\n super(config);\n this.validateApiKey();\n\n this.client = new GoogleGenerativeAI(this.config.apiKey!);\n }\n\n protected getDefaultModel(): string {\n return \"gemini-pro\";\n }\n\n /**\n * Generate text completion\n */\n override async generateText(\n prompt: string,\n options?: GenerateOptions\n ): Promise<string> {\n const modelName = this.getModel(options as { model?: string });\n const model = this.client.getGenerativeModel({ model: modelName });\n\n // Configure generation settings\n const generationConfig = {\n maxOutputTokens: options?.maxTokens || 1000,\n temperature: options?.temperature || 0.7,\n topP: options?.topP || 0.95,\n topK: options?.topK || 40,\n stopSequences: options?.stopSequences,\n };\n\n // Build prompt with system message if provided\n const fullPrompt = options?.systemPrompt\n ? `${options.systemPrompt}\\n\\n${prompt}`\n : prompt;\n\n const result = await model.generateContent({\n contents: [{ role: \"user\", parts: [{ text: fullPrompt }] }],\n generationConfig,\n });\n\n const response = await result.response;\n return response.text();\n }\n\n /**\n * Generate streaming text completion\n */\n override async *generateStream(\n prompt: string,\n options?: GenerateOptions\n ): AsyncGenerator<string> {\n const modelName = this.getModel(options as { model?: string });\n const model = this.client.getGenerativeModel({ model: modelName });\n\n const generationConfig = {\n maxOutputTokens: options?.maxTokens || 1000,\n temperature: options?.temperature || 0.7,\n topP: options?.topP || 0.95,\n topK: options?.topK || 40,\n stopSequences: options?.stopSequences,\n };\n\n const fullPrompt = options?.systemPrompt\n ? `${options.systemPrompt}\\n\\n${prompt}`\n : prompt;\n\n const result = await model.generateContentStream({\n contents: [{ role: \"user\", parts: [{ text: fullPrompt }] }],\n generationConfig,\n });\n\n for await (const chunk of result.stream) {\n const text = chunk.text();\n if (text) {\n yield text;\n }\n }\n }\n\n /**\n * Generate embeddings\n */\n override async generateEmbedding(text: string): Promise<number[]> {\n const model = this.client.getGenerativeModel({ model: \"embedding-001\" });\n\n const result = await model.embedContent(text);\n return result.embedding.values;\n }\n\n /**\n * Classify text\n */\n override async classifyText(\n text: string,\n labels: string[]\n ): Promise<Classification> {\n const prompt = `Classify the following text into exactly one of these categories: ${labels.join(\", \")}.\n\nText: \"${text}\"\n\nRespond with only JSON in this format:\n{\n \"label\": \"chosen category\",\n \"confidence\": 0.95,\n \"scores\": {\n \"category1\": 0.95,\n \"category2\": 0.03,\n \"category3\": 0.02\n }\n}`;\n\n const response = await this.generateText(prompt, {\n temperature: 0,\n maxTokens: 200,\n });\n\n try {\n // Extract JSON from response\n const jsonMatch = response.match(/\\{[\\s\\S]*\\}/);\n if (jsonMatch) {\n return JSON.parse(jsonMatch[0]);\n }\n } catch {\n // Fallback\n }\n\n // Default response\n const label = labels[0] || \"unknown\";\n return {\n label,\n confidence: 0.5,\n scores: labels.reduce(\n (acc, l) => ({\n ...acc,\n [l]: l === label ? 0.5 : 0.5 / (labels.length - 1),\n }),\n {}\n ),\n };\n }\n\n /**\n * Summarize text\n */\n override async summarize(\n text: string,\n options?: SummarizeOptions\n ): Promise<string> {\n const styleInstructions = {\n bullet: \"Create a concise bullet-point summary\",\n paragraph: \"Write a well-structured paragraph summary\",\n tldr: \"Provide a single sentence TL;DR\",\n \"key-points\": \"List only the most critical key points\",\n executive: \"Write a professional executive summary\",\n };\n\n const prompt = `${styleInstructions[options?.style || \"paragraph\"]} of this text:\n\n\"${text}\"\n\n${options?.maxLength ? `Limit to ${options.maxLength} characters.` : \"\"}`;\n\n return this.generateText(prompt, {\n maxTokens: options?.maxLength ? Math.ceil(options.maxLength / 4) : 200,\n temperature: 0.3,\n });\n }\n\n /**\n * Analyze image (Gemini Pro Vision)\n */\n override async analyzeImage(\n image: string | Blob,\n options?: ImageAnalysisOptions\n ): Promise<ImageAnalysis> {\n const model = this.client.getGenerativeModel({\n model: \"gemini-pro-vision\",\n });\n\n // Convert image to base64 if needed\n let base64Image: string;\n if (image instanceof Blob) {\n const buffer = await image.arrayBuffer();\n base64Image = btoa(String.fromCharCode(...new Uint8Array(buffer)));\n } else {\n base64Image = image.replace(/^data:image\\/\\w+;base64,/, \"\");\n }\n\n const features = options?.features || [\"description\", \"objects\", \"text\"];\n const prompt = `Analyze this image and provide a detailed response in JSON format with these features: ${features.join(\", \")}.\n\nExpected format:\n{\n ${features.includes(\"description\") ? '\"description\": \"detailed description\",' : \"\"}\n ${features.includes(\"objects\") ? '\"objects\": [{\"label\": \"object\", \"confidence\": 0.9}],' : \"\"}\n ${features.includes(\"text\") ? '\"text\": [{\"text\": \"extracted text\", \"confidence\": 0.9}],' : \"\"}\n ${features.includes(\"colors\") ? '\"colors\": [{\"hex\": \"#000000\", \"name\": \"black\", \"percentage\": 30}],' : \"\"}\n ${features.includes(\"tags\") ? '\"tags\": [\"tag1\", \"tag2\"]' : \"\"}\n}`;\n\n const result = await model.generateContent({\n contents: [\n {\n role: \"user\",\n parts: [\n { text: prompt },\n {\n inlineData: {\n mimeType: \"image/jpeg\",\n data: base64Image,\n },\n },\n ],\n },\n ],\n });\n\n const response = await result.response;\n const responseText = response.text();\n\n try {\n const jsonMatch = responseText.match(/\\{[\\s\\S]*\\}/);\n if (jsonMatch) {\n return JSON.parse(jsonMatch[0]);\n }\n } catch {\n // Fallback\n }\n\n return {\n description: responseText,\n objects: [],\n text: [],\n colors: [],\n tags: [],\n };\n }\n\n /**\n * Generate code\n */\n override async generateCode(prompt: string, options?: any): Promise<any> {\n const systemContext = `You are an expert programmer. Generate high-quality code.\n${options?.includeComments ? \"Include clear comments.\" : \"\"}\n${options?.includeTests ? \"Include comprehensive tests.\" : \"\"}\nStyle: ${options?.style || \"clean and efficient\"}`;\n\n const fullPrompt = `${systemContext}\n\nLanguage: ${options?.language || \"auto-detect\"}\nFramework: ${options?.framework || \"none\"}\nTask: ${prompt}\n\nProvide response as JSON:\n{\n \"code\": \"complete code\",\n \"language\": \"programming language\",\n \"explanation\": \"what the code does\",\n ${options?.includeTests ? '\"tests\": \"test code\",' : \"\"}\n \"dependencies\": [\"list\", \"of\", \"dependencies\"]\n}`;\n\n const response = await this.generateText(fullPrompt, {\n temperature: 0.2,\n maxTokens: 2000,\n });\n\n try {\n const jsonMatch = response.match(/\\{[\\s\\S]*\\}/);\n if (jsonMatch) {\n return JSON.parse(jsonMatch[0]);\n }\n } catch {\n // Fallback\n }\n\n return {\n code: response,\n language: options?.language || \"unknown\",\n explanation: \"Generated code\",\n };\n }\n\n /**\n * Explain code\n */\n override async explainCode(code: string, language?: string): Promise<string> {\n const prompt = `Analyze and explain this ${language || \"code\"}:\n\n\\`\\`\\`${language