# cc25a-openai-api-agent-project123123123 [Health: Active]

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/cc25a/openai-api-agent-project  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/cc25a-openai-api-agent-project123123123

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

## Claude Desktop Quick Installation
Remote MCP endpoint (confidence: high). Install path detected from listing signals. Add as a URL/SSE server in your client:

```json
"mcpServers": {
  "cc25a-openai-api-agent-project123123123": {
    "url": "https://aicastle.com"
  }
}
```

## Documentation & README

# OpenAI API Agent School - Project

본 자료는 [(주)에이아이캐슬](https://aicastle.com)에서 만든 [**OpenAI API로 배우는 Agent 개발 첫걸음** ](https://openai-api-agent.aicastle.school/)(OpenAI API Agent School) 강의 프로젝트 자료입니다.


## [0] Install & Build (uv)

```sh
# 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](tools.py)

## [2] 앱 실행

### 실행

```sh
uv run main.py
```

- 포트: 환경변수 `PORT`값이 지정된 경우 이 값을 사용하며, 그렇지 않을 경우 `8000`을 사용함.

- agent 앱 주소: <https://localhost:8000/agent>

- mcp 서버 주소: <https://localhost:8000/mcp>

### 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/`
- 데이터 생성 및 업로드 
    ```sh
    uv run fine_tuning_data/supervised/convert_and_upload.py
    ```

### 3.2. DPO (Direct Preference Optimization)

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

### 3.3. RFT (Reinforcement Fine-tuning)

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