AI entegrasyonu, modern uygulamaların rekabet avantajı sağlaması için kritik öneme sahip. Bu makalede, Large Language Model'leri (LLM) ürünlerinize nasıl entegre edeceğinizi adım adım öğreneceksiniz.
LLM Sağlayıcıları
OpenAI GPT
OpenAI, en popüler LLM sağlayıcısı. GPT-4 ve GPT-3.5 modellerini kullanabilirsiniz.
import OpenAI from 'openai';
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
async function generateText(prompt: string) {
const completion = await openai.chat.completions.create({
model: 'gpt-4',
messages: [{ role: 'user', content: prompt }],
});
return completion.choices[0].message.content;
}
Anthropic Claude
Claude, güvenlik ve güvenilirlik odaklı bir LLM:
import Anthropic from '@anthropic-ai/sdk';
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
});
async function chatWithClaude(prompt: string) {
const message = await anthropic.messages.create({
model: 'claude-3-opus-20240229',
max_tokens: 1024,
messages: [{ role: 'user', content: prompt }],
});
return message.content[0].text;
}
Entegrasyon Stratejileri
1. API Wrapper Oluşturma
Farklı sağlayıcılar için unified bir API wrapper oluşturun:
interface LLMProvider {
generate(prompt: string): Promise<string>;
}
class OpenAIProvider implements LLMProvider {
async generate(prompt: string): Promise<string> {
// OpenAI implementation
}
}
class AnthropicProvider implements LLMProvider {
async generate(prompt: string): Promise<string> {
// Anthropic implementation
}
}
class LLMService {
constructor(private provider: LLMProvider) {}
async generate(prompt: string): Promise<string> {
return this.provider.generate(prompt);
}
}
2. Streaming Responses
Büyük yanıtlar için streaming kullanın:
async function* streamResponse(prompt: string) {
const stream = await openai.chat.completions.create({
model: 'gpt-4',
messages: [{ role: 'user', content: prompt }],
stream: true,
});
for await (const chunk of stream) {
yield chunk.choices[0]?.delta?.content || '';
}
}
3. Error Handling
Robust error handling implementasyonu:
async function safeGenerate(prompt: string) {
try {
return await generateText(prompt);
} catch (error) {
if (error instanceof OpenAI.APIError) {
// Handle API errors
console.error('OpenAI API Error:', error.message);
}
throw error;
}
}
Use Cases
1. Content Generation
async function generateBlogPost(topic: string) {
const prompt = `Write a blog post about ${topic}`;
return await generateText(prompt);
}
2. Code Generation
async function generateCode(description: string) {
const prompt = `Generate TypeScript code for: ${description}`;
return await generateText(prompt);
}
3. Chat Interface
interface Message {
role: 'user' | 'assistant';
content: string;
}
async function chat(messages: Message[]) {
const completion = await openai.chat.completions.create({
model: 'gpt-4',
messages: messages,
});
return completion.choices[0].message.content;
}
Cost Optimization
1. Caching
Sık kullanılan prompt'ları cache'leyin:
import { LRUCache } from 'lru-cache';
const cache = new LRUCache<string, string>({ max: 100 });
async function cachedGenerate(prompt: string) {
const cached = cache.get(prompt);
if (cached) return cached;
const result = await generateText(prompt);
cache.set(prompt, result);
return result;
}
2. Token Management
Token kullanımını optimize edin:
function countTokens(text: string): number {
// Approximate token count
return Math.ceil(text.length / 4);
}
function truncatePrompt(prompt: string, maxTokens: number): string {
const tokens = countTokens(prompt);
if (tokens <= maxTokens) return prompt;
// Truncate to fit within token limit
return prompt.slice(0, maxTokens * 4);
}
Security Best Practices
1. API Key Management
API key'leri environment variable'larda saklayın:
const apiKey = process.env.OPENAI_API_KEY;
if (!apiKey) {
throw new Error('OPENAI_API_KEY is not set');
}
2. Input Validation
Kullanıcı input'larını validate edin:
function validatePrompt(prompt: string): void {
if (prompt.length > 10000) {
throw new Error('Prompt too long');
}
// Add more validation rules
}
Sonuç
LLM entegrasyonu, modern uygulamalar için güçlü bir yetenek. Bu rehberde öğrendiklerinizle, AI özellikli uygulamalar geliştirmeye başlayabilirsiniz.