Cum să folosești un LLM (ChatGPT, Claude) în aplicații
In this tutorial, you'll learn how to integrate LLMs like ChatGPT and Claude into your applications using API calls and prompt engineering techniques for reliable, production-ready results.
Problema
Vrei să adaugi puterea unui LLM (Large Language Model) în aplicația ta, dar apelurile API simple dau răspunsuri imprevizibile, greu de controlat și costisitoare. Fără un prompt bine structurat și tratarea corectă a erorilor, integrarea eun instrument inutil.
Soluția Greșită
import openai
openai.api_key = "sk-..."
# Prompt vag, fara instructiuni clare
raspuns = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": "Analizeaza acest text"}]
)
print(raspuns["choices"][0]["message"]["content"])
Problema: Prompt-ul e prea vag. LLM-ul nu știe ce format să folosească, ce să analizeze, sau cum să structureze răspunsul. Fiecare apel poate da un rezultat diferit.
Soluția Corectă
import openai
import json
openai.api_key = "sk-..."
def analizeaza_sentiment(text):
prompt = f"""Analizeaza sentimentul textului de mai jos.
Raspunde DOAR cu un JSON cu urmatoarele campuri:
- "sentiment": "pozitiv", "negativ" sau "neutru"
- "scor": un numar intre -1 (foarte negativ) si 1 (foarte pozitiv)
- "cuvinte_cheie": lista de cuvinte relevante
Text: "{text}"
"""
raspuns = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0.1
)
continut = raspuns["choices"][0]["message"]["content"]
return json.loads(continut)
rezultat = analizeaza_sentiment("Produsul e excelent, dar livrarea a durat prea mult.")
print(rezultat)
Output:
{
"sentiment": "neutru",
"scor": 0.2,
"cuvinte_cheie": ["excelent", "livrare", "prea mult"]
}
Implementare Pas cu Pas
1. System prompt — setează contextul
raspuns = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "Esti un asistent care raspunde DOAR pe baza documentelor furnizate. Daca nu gasesti raspunsul, spune 'Nu stiu'."},
{"role": "user", "content": "Care este politica de retur?"}
]
)
2. Prompt engineering — tehnici de bază
# Few-shot prompting: ofera exemple
prompt = """Clasifica email-urile in "prioritar" sau "normal".
Exemple:
Email: "Factura pe luna aceasta" -> normal
Email: "Problema critica in productie" -> prioritar
Email: "Salut, cum merge proiectul?" -> normal
Email: "{email}" -> """
3. Tratează erorile și costurile
import time
import openai
def apel_llm(prompt, max_retry=3):
for i in range(max_retry):
try:
return openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
max_tokens=500,
temperature=0
)
except openai.error.RateLimitError:
time.sleep(2 ** i)
except openai.error.APIError:
time.sleep(5)
raise Exception("LLM indisponibil dupa 3 incercari")
Sfaturi pentru Prevenire
- Folosește
temperature=0pentru sarcini deterministe (clasificare, extragere) - Structurează output-ul ca JSON pentru a putea fi procesat programatic
- Folosește system prompt pentru a stabili reguli clare
- Implementează fallback pentru când API-ul e indisponibil
- Monitorizează costurile — fiecare token contează
Greșeli Comune
- Prompt-uri vagi — LLM-ul produce răspunsuri imprevizibile
- Nu structurezi output-ul — parsarea răspunsului e fragilă
- Ignori Rate Limiting — API-ul blochează cererile dese
- Nu tratezi erorile — o eroare API oprește întreaga aplicație
- Folosești LLM-ul pentru sarcini simple — o regex poate fi mai ieftină și mai precisă
Întrebări Frecvente
Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. DodaTech tools integrate seamlessly with AI APIs for enhanced productivity and security.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro