Aracıları API Arkasında Sunma
Aracınızı kimlik doğrulama, istek doğrulama ve SSE veya WebSockets üzerinden akış sağlayacak şekilde FastAPI ile sarmalayın.
Aracıları API Arkasında Sunma, CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Defterden Hizmete
Not defterinde çalışan bir aracı başlangıçtır. Kullanıma sunmak için onu diğer hizmetlerin çağırabileceği bir HTTP API ile sarmalayın.
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)Kimlik Doğrulama
Her aracı uç noktası kimlik doğrulaması yapmalıdır. Çağıranın türüne göre API anahtarları veya OAuth kullanın:
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)):
...Akış Yanıtları
Sohbet arayüzleri için belirteçleri SSE kullanarak akış halinde gönderin:
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')İstek Doğrulama
Pydantic, türleri ve temel doğrulamayı uygular. Gerektiğinde özel doğrulama ekleyin:
from pydantic import Field
class AgentRequest(BaseModel):
query: str = Field(min_length=1, max_length=10_000)
user_id: str
options: dict = {}Hata İşleme
İstisnaları temiz HTTP yanıtlarına eşleyin:
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)Eşzamanlılık
FastAPI varsayılan olarak eşzamansız çalışır. CPU'ya bağlı aracılar (nadiren) veya engelleyici SDK'ler için eşzamansız istemcileri kullanın:
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']Birden Çok İşçiyle Çalıştırın
Üretim için Uvicorn + Gunicorn:
gunicorn -k uvicorn.workers.UvicornWorker -w 4 main:appTers Vekil Sunucu
TLS, gzip ve IP adresi izin listesi için öne Nginx veya Caddy yerleştirin.
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 responseCORS for Browser Clients
from fastapi.middleware.cors import CORSMiddleware
app.add_middleware(
CORSMiddleware,
allow_origins=['https://app.example.com'],
allow_methods=['*'], allow_headers=['*']
)Üretim Kontrol Listesi Öğesi
Herhangi bir üretim aracısı API'si için hangisi zorunludur?
Özet
FastAPI + Pydantic + eşzamansız istemci + akış + kimlik doğrulama + yapılandırılmış günlükler + sağlık yoklamaları. Üretim için gereken en az yapı budur.
Sıkça Sorulan Sorular
“Aracıları API Arkasında Sunma” dersi ücretsiz mi?
Evet — “Aracıları API Arkasında Sunma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.
“Aracıları API Arkasında Sunma” dersinde ne öğreneceğim?
Aracınızı kimlik doğrulama, istek doğrulama ve SSE veya WebSockets üzerinden akış sağlayacak şekilde FastAPI ile sarmalayın. AI Agents ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Agents öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Agents, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Aracıları API Arkasında Sunma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Agents dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Agents dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Aracıları API Arkasında Sunma
- Eşzamansız İş Akışları ve Arka Plan İşleri
- Hız Sınırlama ve Kota Yönetimi
- Aracılar için Mavi-Yeşil ve Kanarya Dağıtımları