AI Agent (2) API

임재성·2026년 2월 13일

AI Agent(LangChain, RAG)

목록 보기
2/6

API

Chat Completions API

  • 사용자 입력에 대한 직접적인 응답 생성

  • 대화 문맥을 개발자가 직접 관리.(새로운 대화 시작시 이전 대화 내용을 개발자가 직접 제공해야함)

  • 실제 사용 예시:
    - 고객 지원: 고객의 질문에 대해 실시간으로 응답하는 챗봇 시스템.
    - 대화형 학습 시스템: 학생이 질문을 던지면, 모델이 적절한 답변을 제공.
    - AI 기반 비서: 사용자의 요청에 맞춰 정보를 제공하거나 작업을 처리하는 비서형 응답.

사용

  • python 모듈 설치
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)
  • 결과

Responses API

  • 복잡한 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) 
  • 결과

Stream

  • 이전 예제는 AI가 응답한 내용을 한 번에 보여주는 방식이었으나, 스트리밍을 통해서 결과값을 바로바로 보여주는 방식도 존재.
  • 모듈 설치
    pip install rich
  • 코드 작성
import 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글자로 제한")
profile
조금씩 앞으로

0개의 댓글