Introduzione
L'API di DeepSeek V3 offre un accesso programmatico completo alle capacità del modello. Questa guida ti mostrerà come integrare e utilizzare efficacemente l'API nei tuoi progetti.
Configurazione Iniziale
Ottenere l'API Key
curl -X POST https://api.deepseekv3.com/register \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
curl -X POST https://api.deepseekv3.com/api-keys \
-H "Authorization: Bearer ${TOKEN}"
Installazione SDK
pip install deepseek-v3
npm install @deepseek/v3-sdk
go get github.com/deepseek/v3-sdk
Esempi di Utilizzo
Python SDK
from deepseek import DeepSeekV3
client = DeepSeekV3(api_key="your-api-key")
response = client.generate(
prompt="Scrivi una funzione per ordinare un array",
max_tokens=500,
temperature=0.7
)
analysis = client.analyze_code(
code="def example(): pass",
analysis_type="security"
)
chat_response = client.chat(
messages=[
{"role": "system", "content": "Sei un assistente di programmazione"},
{"role": "user", "content": "Come implemento quicksort?"}
]
)
Node.js SDK
const { DeepSeekV3 } = require('@deepseek/v3-sdk');
// Inizializzazione
const client = new DeepSeekV3('your-api-key');
// Generazione asincrona
async function generateCode() {
const response = await client.generate({
prompt: 'Implementa una REST API',
parameters: {
maxTokens: 1000,
temperature: 0.8
}
});
return response.text;
}
// Stream di risposte
const stream = client.streamGenerate({
prompt: 'Spiega il pattern Observer',
onToken: (token) => console.log(token)
});
Endpoint API REST
Struttura Base
interface ApiRequest {
model: string;
prompt: string;
parameters?: {
temperature?: number;
max_tokens?: number;
top_p?: number;
frequency_penalty?: number;
presence_penalty?: number;
};
stream?: boolean;
}
interface ApiResponse {
id: string;
choices: Array<{
text: string;
finish_reason: string;
}>;
usage: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
}
Esempi di Chiamate
Generazione di Testo
curl -X POST https://api.deepseekv3.com/v1/generate \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v3",
"prompt": "Scrivi un algoritmo di ricerca binaria",
"parameters": {
"temperature": 0.7,
"max_tokens": 500
}
}'
Analisi del Codice
curl -X POST https://api.deepseekv3.com/v1/analyze \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"code": "function example() { var x = 1; }",
"analysis_type": "quality",
"detail_level": "high"
}'
Best Practices
Gestione degli Errori
try:
response = client.generate(prompt="test")
except DeepSeekAPIError as e:
if e.code == 429:
# Rate limit exceeded
time.sleep(60)
elif e.code == 401:
# Invalid API key
refresh_api_key()
else:
# Altri errori
log_error(e)
Ottimizzazione delle Richieste
- Usa lo streaming per risposte lunghe
- Implementa caching locale
- Gestisci rate limiting
- Ottimizza i prompt
Sicurezza
- Proteggi le API key
- Valida gli input
- Limita l'accesso
- Monitora l'utilizzo
Limiti e Quote
Piano Gratuito
- 100K token/giorno
- 10 richieste/minuto
- Modelli base
Piano Pro
- 1M token/giorno
- 60 richieste/minuto
- Tutti i modelli
- Supporto prioritario
Monitoraggio e Analytics
Dashboard
stats = client.get_usage_stats(
start_date="2024-01-01",
end_date="2024-01-31"
)
latency = client.get_latency_metrics(
endpoint="generate",
timeframe="1h"
)
Logging
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger('deepseek')
def log_request(response):
logger.info(f"Request ID: {response.id}")
logger.info(f"Tokens used: {response.usage.total_tokens}")
Conclusione
L'API di DeepSeek V3 offre un'interfaccia potente e flessibile per integrare capacità di IA avanzate nei tuoi progetti. Seguendo questa guida e le best practices, puoi sfruttare al meglio le sue funzionalità.