Tekoälyagentit · Oppitunti

Agenttien tarjoaminen API:n takana

Pakatkaa agentti FastAPI:n sisään ja lisätkää todennus, pyyntöjen validointi sekä suoratoisto SSE:n tai WebSocketien kautta.

Oppitunti 1/415 vaihetta

Agenttien tarjoaminen API:n takana on ilmainen Tekoälyagentit-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälyagentit-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.

Osaa tämän oppitunnin sisällöstä ei ole vielä käännetty, joten se näytetään englanniksi.

Muistikirjasta palveluksi

Toimiva agentti muistikirjassa on vasta alku. Tuotantoon viemistä varten ympäröikää se HTTP-API:lla, jota muut palvelut voivat kutsua.

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)

Todennus

Jokaisen agentin päätepisteen on todennettava kutsuja. Käyttäkää API-avaimia tai OAuthia kutsujan tyypin mukaan:

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)):
    ...

Vastausten suoratoisto

Chat-käyttöliittymiä varten suoratoistakaa tokenit SSE:n avulla:

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')

Pyyntöjen validointi

Pydantic valvoo tyyppejä ja tekee perusvalidoinnin. Lisätkää tarvittaessa mukautettua validointia:

from pydantic import Field

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

Virheenkäsittely

Muuntakaa poikkeukset selkeiksi HTTP-vastauksiksi:

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)

Samanaikaisuus

FastAPI käyttää async-mallia oletuksena. Käyttäkää suorittimen kuormittamille agenteille (harvinaisia) tai estäville SDK:ille asynkronisia asiakasohjelmia:

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']

Ajakaa useilla workereilla

Uvicorn + Gunicorn tuotantokäyttöön:

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

Käänteisvälityspalvelin

Sijoittakaa Nginx tai Caddy edustalle TLS:ää, gzip-pakkausta ja IP-osoitteiden sallittujen listojen hallintaa varten.

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=['*']
)

Tuotantotarkistuslistan kohta

Mikä on välttämätöntä kaikissa tuotantokäytössä olevissa agentti-API:issa?

Kertaus

FastAPI + Pydantic + asynkroninen asiakas + suoratoisto + tunnistautuminen + rakenteiset lokit + terveystarkistukset. Tämä on tuotantokäytön vähimmäisvaatimus.

Aloita maksutta

Opi Tekoälyagentit tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
60
Oppitunnit
239

Usein kysytyt kysymykset

Onko oppitunti ”Agenttien tarjoaminen API:n takana” ilmainen?

Kyllä – oppitunnin ”Agenttien tarjoaminen API:n takana” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälyagentit-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Agenttien tarjoaminen API:n takana”?

Pakatkaa agentti FastAPI:n sisään ja lisätkää todennus, pyyntöjen validointi sekä suoratoisto SSE:n tai WebSocketien kautta. Harjoittelet Tekoälyagentit-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Tekoälyagentit-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyagentit-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Agenttien tarjoaminen API:n takana”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyagentit-oppitunnilla?

Kyllä. Jokainen Tekoälyagentit-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Agenttien tarjoaminen API:n takana
  2. Asynkroniset työnkulut ja taustatyöt
  3. Nopeusrajoitukset ja kiintiöiden hallinta
  4. Blue-green- ja canary-julkaisut agenteille
← Takaisin: Tekoälyagentit