Text Generation
AI text generation with multiple providers
Text Generation
Learn how to use AI text generation features with multiple providers including OpenAI, DeepSeek, and other AI services.
Overview
The text generation system supports multiple AI providers for generating high-quality text content. Users can choose from different models and providers based on their needs, with credit-based pricing and usage tracking. The system handles API key management through the Admin System and provides consistent interfaces across all providers.
Supported Providers
OpenAI
- Models: GPT-3.5-turbo, GPT-4, GPT-4-turbo
- Features: High-quality text generation, conversation, completion
- Cost: 1-5 credits per request (varies by model)
DeepSeek
- Models: DeepSeek-Chat, DeepSeek-Coder
- Features: Code generation, technical writing, analysis
- Cost: 1-3 credits per request
Other Providers
- OpenRouter: Access to multiple models through unified API
- SiliconFlow: Chinese-optimized models
- Custom: Support for additional providers via configuration
API Endpoint
Text Generation API
// POST /api/demo/gen-text
interface TextGenerationRequest {
prompt: string;
provider: "openai" | "deepseek" | "openrouter" | "siliconflow";
model?: string;
max_tokens?: number;
temperature?: number;
stream?: boolean;
}
interface TextGenerationResponse {
success: boolean;
data?: {
text: string;
usage: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
provider: string;
model: string;
};
error?: string;
}
Usage Example
// Client-side text generation
const generateText = async (prompt: string, provider: string) => {
const response = await fetch("/api/demo/gen-text", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
prompt,
provider,
max_tokens: 1000,
temperature: 0.7,
}),
});
const result = await response.json();
if (result.success) {
console.log("Generated text:", result.data.text);
console.log("Token usage:", result.data.usage);
} else {
console.error("Generation failed:", result.error);
}
};
Provider Configuration
Admin System Setup
- Go to
/admin/ai-config - Add API keys for desired providers
- Configure model settings and pricing
- Test provider connections
Environment Variables (Fallback)
# .env.local (fallback only - use Admin System)
OPENAI_API_KEY="sk-..."
DEEPSEEK_API_KEY="sk-..."
OPENROUTER_API_KEY="sk-..."
SILICONFLOW_API_KEY="sk-..."
Usage Examples
Basic Text Generation
// Generate creative writing
const creativePrompt = "Write a short story about a robot learning to paint";
const result = await generateText(creativePrompt, "openai");
// Generate technical documentation
const techPrompt = "Explain how React hooks work in simple terms";
const techResult = await generateText(techPrompt, "deepseek");
Code Generation
// Generate code with DeepSeek
const codePrompt = "Create a React component for a todo list";
const codeResult = await generateText(codePrompt, "deepseek");
Multi-Provider Comparison
// Compare outputs from different providers
const prompt = "Explain quantum computing";
const providers = ["openai", "deepseek", "openrouter"];
const results = await Promise.all(
providers.map(provider => generateText(prompt, provider))
);
results.forEach((result, index) => {
console.log(`${providers[index]}:`, result.data.text);
});
Credit System Integration
Credit Deduction
// Credits are deducted based on usage
const CREDIT_COSTS = {
openai: {
"gpt-3.5-turbo": 1,
"gpt-4": 3,
"gpt-4-turbo": 5,
},
deepseek: {
"deepseek-chat": 1,
"deepseek-coder": 2,
},
};
Usage Tracking
// Track user usage and credits
const trackUsage = async (userId: string, provider: string, tokens: number) => {
const cost = calculateCreditCost(provider, tokens);
// Deduct credits
await deductCredits(userId, cost);
// Log usage
await logUsage(userId, provider, tokens, cost);
};
File Locations
src/app/api/demo/gen-text/route.ts- Text generation API endpointsrc/services/ai-config.ts- AI provider configurationsrc/services/text-generation.ts- Text generation business logicsrc/models/ai-usage.ts- Usage tracking modelsrc/app/[locale]/(console)/ai-generator/page.tsx- User interface
Common Tasks
Generate Text for Blog Post
const blogPrompt = `
Write a comprehensive blog post about:
- Topic: ${topic}
- Length: 1000 words
- Style: Professional but engaging
- Include: Introduction, main points, conclusion
`;
const blogContent = await generateText(blogPrompt, "openai");
Create Product Descriptions
const productPrompt = `
Create a compelling product description for:
- Product: ${productName}
- Features: ${features}
- Target audience: ${audience}
- Tone: ${tone}
`;
const description = await generateText(productPrompt, "openai");
Generate Code Comments
const codePrompt = `
Add detailed comments to this code:
${code}
Explain:
- What each function does
- How the algorithm works
- Any important considerations
`;
const commentedCode = await generateText(codePrompt, "deepseek");
Troubleshooting
Provider not responding
Problem: API returns "Provider not available"
Solution:
- Check API key is configured in Admin System
- Verify provider is enabled
- Check API key validity
- Test with different provider
Insufficient credits
Problem: Generation fails with "Insufficient credits"
Solution:
- Check credit balance in
/my-credits - Purchase more credits at
/pricing - Use daily check-in for free credits
- Consider referral program
Poor quality output
Problem: Generated text is not useful
Solution:
- Improve prompt clarity and specificity
- Adjust temperature parameter (0.1-0.9)
- Try different providers
- Use more detailed instructions
Next Steps
- Streaming Text - Real-time text generation
- Text-to-Speech - Convert text to audio
- AI Generator - User interface for AI features