Repository avatar
Developer Tools
v1.14.0
active

cc25a-openai-api-agent-project123123123

ai.smithery/cc25a-openai-api-agent-project123123123

Look up the latest stock prices by ticker symbol across global markets. Get current price and esse…

Documentation

OpenAI API Agent School - Project

본 자료는 (주)에이아이캐슬에서 만든 OpenAI API로 배우는 Agent 개발 첫걸음 (OpenAI API Agent School) 강의 프로젝트 자료입니다.

[0] Install & Build (uv)

# uv Install
curl -LsSf https://astral.sh/uv/install.sh | sh

# uv Build
uv sync --frozen && uv cache prune --ci

[1] 프로젝트 세팅

1.1. 환경 변수 (.env)

  • .env 파일로 설정하거나 배포 환경에서 지정
  • OPENAI_API_KEY: Agent 앱 또는 파인튜닝할 데이터를 업로드할 때 사용할 OpenAI API 키
  • PROMPT_ID Agent 앱에서 사용할 OpenAI 프롬프트 ID
  • TITLE: Agent앱의 상단 제목
  • PASSWORD: 비밀번호 설정 (비워둘 경우 누구나 접근 가능)
    • Agent 앱에서는 로그인해야 접근 가능해짐
    • MCP 서버에서는 ?password=<your-password>와 같이 쿼리스트링으로 전달해야 접근 가능

1.2. config.overrides.jsonc

  • Agent 앱에서 openai api 요청시 responses create 에서 덮어 쓸 구성 값
  • config.overrides.jsonc 파일로 설정하거나 배포 환경에서 지정
  • 파일 위치
    • 프로젝트 폴더 (우선 순위)
    • /etc/secrets/

1.3. tools.py

  • Agent 앱에서 Function Calling으로 사용할 함수.
  • 또는 MCP 서버에서 tool로 사용할 함수.
  • 파일 위치: tools.py

[2] 앱 실행

실행

uv run main.py

KEEPALIVE_URL

  • 실행 중인 앱이 일정시간 동안 접속이 없으면 유휴상태가 될 경우 KEEPALIVE_URL를 github actions의 환경변수(secrets)에 지정하여 주기적으로 접속하는 cron 작업을 수행할 수 있음.
  • Fork한 경우 Fork한 레포지토리 접속하여 상단의 Actions 탭에서 Actions를 활성화 하고 .github/workflows/keepalive-url.yml 을 활성화 하세요.
  • 레포지토리 > settings > Secrets and Variables > Actions > New repository secret 에 접속하여 아래와 같이 입력 (Secret에는 본인이 배포한 URL로 입력)
  • 예시
    • Name: KEEPALIVE_URL
    • Secret: https://<your-project-name>.onrender.com

[3] 파인 튜닝 데이터

.env파일에 OPENAI_API_KEY를 등록해야 정상적으로 업로드 가능

3.1. SFT (Supervised Fine-tuning)

  • 폴더 위치: fine_tuning_data/supervised/
  • 데이터 생성 및 업로드
    uv run fine_tuning_data/supervised/convert_and_upload.py
    

3.2. DPO (Direct Preference Optimization)

  • 폴더 위치: fine_tuning_data/preference/
  • 데이터 생성 및 업로드
    uv run fine_tuning_data/preference/convert_and_upload.py
    

3.3. RFT (Reinforcement Fine-tuning)

  • 폴더 위치: fine_tuning_data/reinforcement/
  • 데이터 생성 및 업로드
    uv run fine_tuning_data/reinforcement/convert_and_upload.py