사용자 입력에 대한 직접적인 응답 생성
대화 문맥을 개발자가 직접 관리.(새로운 대화 시작시 이전 대화 내용을 개발자가 직접 제공해야함)
실제 사용 예시:
- 고객 지원: 고객의 질문에 대해 실시간으로 응답하는 챗봇 시스템.
- 대화형 학습 시스템: 학생이 질문을 던지면, 모델이 적절한 답변을 제공.
- AI 기반 비서: 사용자의 요청에 맞춰 정보를 제공하거나 작업을 처리하는 비서형 응답.
pip install openai==1.70.0
pip install dotenv
import os
from dotenv import load_dotenv
from openai import OpenAI
# .env파일에서 환경변수 로드
load_dotenv()
api_key = os.environ.get('OPEN_API_KEY')
client = OpenAI(api_key=api_key)
def get_chat_completion(prompt, model="gpt-5-mini") :
# OpenAI 챗 컴플리션 API를 사용하여 AI의 응답을 받는 함수
response = client.chat.completions.create(
model=model,
messages=[
{"role" : "system", "content" : "당신은 친절하고 도움이 되는 AI 비서 입니다."},
{"role":"user", "content":prompt}
]
)
return response.choices[0].message.content
if __name__ == "__main__" :
user_prompt = input("AI에게 물어볼 질문을 입력하세요: ")
response = get_chat_completion(user_prompt)
print("\nAI 응답 : ")
print(response)

복잡한 AI 어시스턴트 구축을 지원.
대화 스레드를 통해 자동으로 문맥을 관리함.
웹 검색, 파일검색, 컴퓨터 사용등 다양한 내장 도구 지원.
실제 사용 예시:
- 자율적인 AI 에이전트 개발
- 멀티모달 입력이 필요한 애플리케이션
- 대화 상태 관리가 필요한 복잡한 대화형 서비스
- 웹 검색, 파일 분석 등 외부 데이터 활용이 필요한 시스템
import os
from dotenv import load_dotenv
from openai import OpenAI
# .env파일에서 환경변수 로드
load_dotenv()
api_key = os.environ.get('OPEN_API_KEY')
client = OpenAI(api_key=api_key)
def get_reponses(prompt, model="gpt-5-mini") :
# OpenAI responses API를 사용하여 AI의 응답을 받는 함수
response = client.responses.create(
model=model,
tools=[{"type" : "web_search_preview"}], # 웹 검색 도구 활성화
input=prompt
)
return response.output_text
if __name__ == "__main__" :
prompt = 'https://platform.openai.com/docs/api-reference/responses/create 를 읽어서 리스폰스에 대해 요약 정리해주세요'
response = get_reponses(prompt)
print("\nAI 응답 : ")
print(response)

pip install richimport os
from dotenv import load_dotenv
from openai import OpenAI
import rich
# .env파일에서 환경변수 로드
load_dotenv()
api_key = os.environ.get('OPEN_API_KEY')
client = OpenAI(api_key=api_key)
default_model="gpt-5-mini"
def stream_chat_completion(prompt, model=default_model) :
# OpenAI 챗 컴플리션 API를 사용하여 AI의 응답을 받는 함수
response = client.chat.completions.create(
model=model,
messages=[
{"role" : "system", "content" : "당신은 친절하고 도움이 되는 AI 비서 입니다."},
{"role":"user", "content":prompt}
],
stream=True
)
for chunk in response :
content = chunk.choices[0].delta.content
if content is not None:
print(content, end="")
def stream_response(prompt, model=default_model) :
with client.responses.stream(model=model, input=prompt) as stream :
for event in stream:
if "output_text" in event.type :
rich.print(event)
rich.print(stream.get_final_response())
if __name__ == "__main__" :
stream_chat_completion("스트리밍이 무엇인가요?")
stream_response("저녁 메뉴 추천 10글자로 제한")