Openai API modeli
OpenAI nam ponuja različne modele. Najosnovnejši je text-davinci-003, ki je tudi najbolj ugoden, a so t.i. chat-based models bistveno bolj zmogljivi in enostavnejši za uporabo. Namesto stare funkcionalnosti messages
najdemo sodobnejše primere z uporabo Responses. Uporaba strukturiranega vnosa z vlogami (system
, user
, assistant
) omogoča ohranjanje konteksta pogovora brez ponovnega pošiljanja celotne zgodovine. Če uporabljamo modele, ki ne podpirajo strukturiranih pogovorov, je še vedno potrebno ročno vključiti zgodovino v vsak nov klic (npr. pri starejših completions modelih).
Če imamo možnost uporabe chat-based modelov (npr. GPT‑4 preko Responses), lahko namesto ročnega sestavljanja zgodovine uporabimo strukturiran pristop z uporabo input
(vloge) in ohranjanjem seznama sporočil v aplikaciji.
Prednosti uporabe Responses s chat modelom:
- Optimizacija: Ni potrebno pošiljati celotne zgodovine kot en dolg niz, ampak uporabimo strukturirane objekte.
- Ohranjanje konteksta: Model prepozna vloge (
user
,assistant
,system
). - Enostavnost upravljanja zgodovine: Dovolj je le seznam sporočil, ki jih dodajamo sproti.
Minimalni primeri kode (Python, Responses)
Python (Responses API, minimalno)
import os
from openai import OpenAI
# 🔧 Nastavi svoj API ključ
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# Začetni kontekst (seznam vlog)
conversation_input = [
{"role": "system", "content": "Ti si pomočnik za poučevanje tehnike in tehnologije."},
{"role": "user", "content": "Kaj je spajkanje?"}
]
response = client.responses.create(
model="gpt-5-nano", # prilagodi model glede na dostopnost
input=conversation_input
)
# Pridobitev besedila odgovora (minimalno)
assistant_reply = response.output_text
print(assistant_reply)
Minimalna funkcija za ohranjanje pogovora v aplikaciji (shranjujemo seznam vlog in ga ponovno pošljemo)
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
conversation = [
{"role": "system", "content": "Ti si pomočnik za poučevanje tehnike in tehnologije."}
]
def gpt_response(user_input):
conversation.append({"role": "user", "content": user_input})
resp = client.responses.create(model="gpt-4o-mini", input=conversation)
assistant_text = resp.output_text
conversation.append({"role": "assistant", "content": assistant_text})
return assistant_text
print(gpt_response("Kaj je spajkanje?"))
print(gpt_response("Kako se uporablja spajkalnik?"))
Opomba: prilagodi ime modela glede na razpoložljivost (npr. gpt-4
, gpt-4o-mini
). Če uporabljaš SDK brez parametra api_key, nastavi ključ prek okoljske spremenljivke.