Faza 00 · lecția 04
API-uri și chei
Scopul lecției: Fiecare API pentru IA funcționează la fel: trimiteți o cerere și primiți un răspuns. Detaliile se schimbă, dar tiparul rămâne același.
Versiunea curentă AlexBred.com: primele 100 de lecții ale programului în limba română.
Cuprinsul lecției
Fiecare API pentru IA funcționează la fel: trimiteți o cerere și primiți un răspuns. Detaliile se schimbă, dar tiparul rămâne același.
Tip: Construire Limbaje: Python, TypeScript Cerințe preliminare: Faza 0, lecția 01 Durată: aproximativ 30 de minute
Obiective de învățare
- Stocați în siguranță cheile API folosind variabile de mediu și fișiere
.env. - Efectuați un apel către un API pentru modele lingvistice mari (large language models, LLM) atât cu SDK-ul Anthropic pentru Python, cât și direct prin HTTP.
- Comparați formatele cererilor și răspunsurilor bazate pe SDK cu cele HTTP directe, în scopul depanării.
- Identificați și gestionați erorile API frecvente, inclusiv erorile de autentificare și limitarea frecvenței solicitărilor (rate limiting).
Problema
Începând cu faza 11, veți apela API-uri pentru LLM-uri (Anthropic, OpenAI, Google). În fazele 13–16 veți construi agenți care folosesc aceste API-uri în bucle. Trebuie să știți cum funcționează cheile API, cum să le stocați în siguranță și cum să efectuați primul apel API.
Conceptul
Fiecare apel API include:
- Un endpoint (URL)
- O cheie API (autentificare)
- Corpul cererii (ce doriți)
- Corpul răspunsului (ce primiți)
Implementare
Pasul 1: Stocați cheile API în siguranță
Nu introduceți niciodată cheile API direct în cod. Folosiți variabile de mediu.
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."
Sau folosiți un fișier .env (adăugați-l în .gitignore):
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
Pasul 2: Primul apel API (Python)
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=256,
messages=[{"role": "user", "content": "What is a neural network in one sentence?"}]
)
print(response.content[0].text)
Pasul 3: Primul apel API (TypeScript)
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const response = await client.messages.create({
model: "claude-sonnet-4-20250514",
max_tokens: 256,
messages: [{ role: "user", content: "What is a neural network in one sentence?" }],
});
console.log(response.content[0].text);
Pasul 4: HTTP direct (fără SDK)
import os
import urllib.request
import json
url = "https://api.anthropic.com/v1/messages"
headers = {
"Content-Type": "application/json",
"x-api-key": os.environ["ANTHROPIC_API_KEY"],
"anthropic-version": "2023-06-01",
}
body = json.dumps({
"model": "claude-sonnet-4-20250514",
"max_tokens": 256,
"messages": [{"role": "user", "content": "What is a neural network in one sentence?"}],
}).encode()
req = urllib.request.Request(url, data=body, headers=headers, method="POST")
with urllib.request.urlopen(req) as resp:
result = json.loads(resp.read())
print(result["content"][0]["text"])
SDK-urile fac acest lucru în culise. Înțelegerea apelului HTTP direct vă ajută în timpul depanării.
Utilizare
Pentru acest curs:
| API | Când aveți nevoie de el | Nivel gratuit |
|---|---|---|
| Anthropic (Claude) | Fazele 11–16 (agenți, instrumente) | Credit de $5 la înscriere |
| OpenAI | Faza 11 (comparație) | Credit de $5 la înscriere |
| Hugging Face | Fazele 4–10 (modele, seturi de date) | Gratuit |
Nu aveți nevoie de toate chiar acum. Configurați-le atunci când lecția o cere.
Livrarea rezultatului
Această lecție produce:
outputs/prompt-api-troubleshooter.md— diagnosticarea erorilor API frecvente
Exerciții
- Obțineți o cheie API Anthropic și efectuați primul apel API.
- Încercați varianta HTTP directă și comparați formatul răspunsului cu cel al variantei care folosește SDK-ul.
- Folosiți intenționat o cheie API greșită și citiți mesajul de eroare.
Termeni-cheie
| Termen | Cum i se spune în mod obișnuit | Ce înseamnă de fapt |
|---|---|---|
| Cheie API | „Parola API-ului” | Un șir unic care vă identifică contul și autorizează cererile |
| Limită a ratei solicitărilor (rate limit) | „Îmi limitează solicitările” | Numărul maxim de cereri pe minut/oră, stabilit pentru a preveni abuzurile și a asigura o utilizare echitabilă |
| Token | „Un cuvânt” (în contextul API-urilor) | O unitate de facturare: tokenurile de intrare și cele de ieșire sunt numărate și taxate separat |
| Streaming | „Răspunsuri în timp real” | Primirea răspunsului cuvânt cu cuvânt, în loc să așteptați răspunsul complet |
Sursă: APIs & Keys — originalul Navigare: înapoi: 00.03 — Configurarea GPU-ului și serviciile cloud · Faza 0 — Configurare și instrumente · Catalog complet · înainte: 00.05 — Notebookuri Jupyter.