0Pricing
AI Agents · 강의

API 뒤에서 에이전트 제공

인증, 요청 검증, SSE 또는 WebSockets를 통한 스트리밍을 포함해 에이전트를 FastAPI로 감싸보세요.

API 뒤에서 에이전트 제공은(는) CoddyKit의 무료 AI Agents 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Agents 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.

노트북에서 서비스로

노트북에서 작동하는 에이전트는 시작점일 뿐입니다. 출시하려면 다른 서비스가 호출할 수 있는 HTTP API로 감싸야 합니다.

FastAPI Skeleton

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class AgentRequest(BaseModel):
    query: str
    user_id: str

class AgentResponse(BaseModel):
    answer: str
    trace_id: str

@app.post('/agents/qa', response_model=AgentResponse)
def qa(req: AgentRequest):
    trace_id = run_agent(req.query, req.user_id)
    return AgentResponse(answer=result.answer, trace_id=trace_id)

인증

모든 에이전트 엔드포인트는 인증해야 합니다. 호출자 유형에 따라 API 키 또는 OAuth를 사용합니다:

from fastapi import Header, HTTPException

def require_api_key(api_key: str = Header(alias='X-API-Key')):
    if not is_valid(api_key):
        raise HTTPException(401, 'Invalid API key')
    return api_key

@app.post('/agents/qa')
def qa(req: AgentRequest, key=Depends(require_api_key)):
    ...

스트리밍 응답

채팅 화면에서는 SSE로 토큰을 스트리밍합니다:

from fastapi.responses import StreamingResponse

@app.post('/agents/qa/stream')
def qa_stream(req: AgentRequest):
    def gen():
        for chunk in stream_agent(req.query):
            yield f'data: {chunk}\n\n'
        yield 'data: [DONE]\n\n'
    return StreamingResponse(gen(), media_type='text/event-stream')

요청 검증

Pydantic은 자료형과 기본 검증을 적용합니다. 필요에 따라 사용자 지정 검증을 추가합니다:

from pydantic import Field

class AgentRequest(BaseModel):
    query: str = Field(min_length=1, max_length=10_000)
    user_id: str
    options: dict = {}

오류 처리

예외를 깔끔한 HTTP 응답으로 변환합니다:

from fastapi import HTTPException

@app.exception_handler(BudgetExceeded)
def budget_handler(req, exc):
    return JSONResponse({'error': 'budget-exceeded'}, status_code=429)

@app.exception_handler(Exception)
def catch_all(req, exc):
    log.exception('Unhandled')
    return JSONResponse({'error': 'internal', 'trace_id': get_trace_id()}, status_code=500)

동시성

FastAPI는 기본적으로 비동기 방식으로 동작합니다. CPU를 많이 사용하는 에이전트(드묾)나 차단형 SDK에는 비동기 클라이언트를 사용합니다:

from openai import AsyncOpenAI
client = AsyncOpenAI()

async def run_agent_async(query):
    return await client.chat.completions.create(...)

Health and Readiness Endpoints

@app.get('/healthz')
def healthz():
    return {'status': 'ok'}

@app.get('/readyz')
def readyz():
    if not vector_db.is_healthy():
        raise HTTPException(503)
    return {'status': 'ready'}

Containerise

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ['uvicorn', 'main:app', '--host', '0.0.0.0', '--port', '8080']

여러 작업자로 실행하기

운영 환경에서는 Uvicorn + Gunicorn을 사용합니다:

gunicorn -k uvicorn.workers.UvicornWorker -w 4 main:app

역방향 프록시

TLS를 적용하고 gzip을 사용하며 IP 허용 목록을 관리하려면 Nginx 또는 Caddy를 앞단에 배치하십시오.

Logging Structured Output

import structlog
log = structlog.get_logger()

@app.middleware('http')
async def log_requests(request, call_next):
    response = await call_next(request)
    log.info('http', method=request.method, path=request.url.path, status=response.status_code)
    return response

CORS for Browser Clients

from fastapi.middleware.cors import CORSMiddleware
app.add_middleware(
    CORSMiddleware,
    allow_origins=['https://app.example.com'],
    allow_methods=['*'], allow_headers=['*']
)

프로덕션 점검 항목

모든 프로덕션 에이전트 API에 필수적인 것은 무엇입니까?

요약

FastAPI + Pydantic + 비동기 클라이언트 + 스트리밍 + 인증 + 구조화된 로그 + 상태 확인 프로브입니다. 이것이 프로덕션의 최소 구성입니다.

자주 묻는 질문

“API 뒤에서 에이전트 제공” 강의는 무료인가요?

네 — “API 뒤에서 에이전트 제공” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Agents 강의 전체를 잠금 해제할 수 있습니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

“API 뒤에서 에이전트 제공”에서 뭘 배우나요?

인증, 요청 검증, SSE 또는 WebSockets를 통한 스트리밍을 포함해 에이전트를 FastAPI로 감싸보세요. 브라우저에서 직접 실행하는 실습 코드로 AI Agents을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AI Agents을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AI Agents은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“API 뒤에서 에이전트 제공” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AI Agents 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AI Agents 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. API 뒤에서 에이전트 제공
  2. 비동기 작업 흐름 및 백그라운드 작업
  3. 속도 제한 및 할당량 관리
  4. 에이전트를 위한 블루-그린 및 카나리 배포
← AI Agents(으)로 돌아가기