
Přidejte do své aplikace funkce AI: Průvodce code-first
Poslední aktualizace: 6. června 2026.
Většina průvodců „jak přidat AI do vaší aplikace“ je napsána agenturami, které se vám snaží prodat konzultační zakázku za šest cifr. Tento průvodce nabízí přístup code-first: funkční volání API OpenAI a Anthropic, streamovací uživatelské rozhraní pomocí Vercel AI SDK, vzorce pro výpočet nákladů, které můžete vložit do tabulky, a produkční vzory, které udrží vaši aplikaci spolehlivou, i když se LLM rozhodne chovat podivně. Integrujete AI do své stávající aplikace bez nutnosti přepisovat cokoli od základu.
Rychlé shrnutí: Co můžete postavit (a kolik to stojí)
Než si vyberete, kterou funkci AI nasadit jako první, zde je realistický rozbor. Tyto odhady předpokládají 100 aktivních uživatelů a model gpt-4o-mini jako výchozí, pokud funkce nevyžaduje něco výkonnějšího.
| Funkce AI | Obtížnost | Měsíční náklady (100 uživatelů) | Doba výstavby | Nejlepší poskytovatel |
|---|---|---|---|---|
| AI Chat / Asistent | Snadné | 5–15 $ | 1–2 dny | openai, anthropic |
| Semantické vyhledávání | Střední | 8–20 $ | 3–5 dní | openai embeddings + pgvector |
| Shrnutí obsahu | Snadné | 3–10 $ | 1 den | gpt-4o-mini, claude-haiku |
| Chytré automatické doplňování | Střední | 10–25 $ | 3–5 dní | gpt-4o-mini |
| Dotazování na dokumenty (RAG) | Těžké | 15–40 $ | 1–2 týdny | openai + vektorová DB |
| Klasifikace / Směrování | Snadné | 2–8 $ | 1–2 dny | gpt-4o-mini |
| Porozumění obrázkům | Střední | 15–50 $ | 3–5 dní | gpt-4o, gemini-2.5-pro |
| Akce agentů | Těžké | 20–80 $ | 2–4 týdny | openai + function calling |
Vyberte funkci, která je pro váš produkt nejjednodušší a má nejvyšší hodnotu. Pro většinu SaaS aplikací je to buď chat asistent přímo v aplikaci, nebo shrnování obsahu. Začněte tam, ověřte, že to funguje, a poté expandujte.
Zbytek tohoto průvodce vás provede každým krokem, od vašeho prvního volání API až po nasazení připravené pro produkci.
Než napíšete řádek kódu: Kdy NEpřidávat AI
Zde je něco, co vám nikdo jiný neřekne: nepoužívejte LLM, pokud problém vyřeší regulární výraz, SQL dotaz nebo jednoduchý příkaz if. Každé volání AI API stojí peníze, přidává latenci a zavádí nedeterminismus. Než integrujete AI do své stávající aplikace, proveďte „test regexu“.
Test regexu
| Úkol | Použít AI? | Lepší alternativa | Proč |
|---|---|---|---|
| Validace e-mailu | Ne | Regex + MX lookup | Deterministické, zdarma, okamžité |
| Parsování dat | Ne | dayjs / dateutil | Knihovny to zvládají perfektně |
| Filtrování CRUD („ukaž objednávky nad 100 $“) | Ne | Klauzule SQL WHERE | 100 % přesnost, odezva v milisekundách |
| Kategorizace support ticketů do 5 pevných skupin | Možná | Začněte pravidly klíčových slov, přejděte na AI, pokud klesne přesnost | Pravidla jsou zdarma a předvídatelná |
| Shrnutí 10stránkového právního dokumentu | Ano | Nic jiného nefunguje dobře | Nestrukturovaný text je oblast, kde LLM vynikají |
| Vyhledávání přirozeným jazykem ve vaší znalostní bázi | Ano | Elasticsearch vám dá 70 %, AI vám dá 95 % | Semantické porozumění poráží shodu klíčových slov |
| Generování personalizovaných konceptů e-mailů | Ano | Šablony mají své limity | LLM přirozeně zvládají tón, kontext a variace |
| Klasifikace chaotické, nestrukturované zpětné vazby od uživatelů | Ano | Ruční označování není škálovatelné | LLM zvládají nejednoznačnost a okrajové případy |
Kdy AI skutečně přidává hodnotu
Použijte LLM, když jsou vstupní data chaotická, nestrukturovaná nebo se wildly liší, a když výstup musí být přirozený, kontextově uvědomělý nebo kreativní. Pokud jsou vaše data čistá a pravidla jasná, vynechejte AI a ušetřete rozpočet.
Rychlá kontrola reality nákladů: i gpt-4o-mini za 0,15 $ za milion vstupních tokenů se sčítá. Tisíc uživatelů provádějících 10 požadavků denně po 500 tokenech = 5 milionů tokenů/měsíc = asi 0,75 $/měsíc na vstupní náklady. Levné, ale ne zdarma. A pokud tyto požadavky omylem nasměrujete na gpt-4o (2,50 $/1M tokenů), je to 12,50 $/měsíc, stále zvládnutelné, ale 16x dražší pro úkoly, které nepotřebují extra inteligenci.
Výběr modelu a poskytovatele
Pro většinu integračních prací SaaS LLM stojí za zvážení tři hlavní poskytovatelé. Zde je jejich stav na začátku roku 2026.
| Model | Vstup (za 1M tokenů) | Výstup (za 1M tokenů) | Kontextové okno | Nejlepší pro |
|---|---|---|---|---|
| GPT-4o | 2,50 $ | 10,00 $ | 128K | Obecné úkoly, největší ekosystém |
| GPT-4o-mini | 0,15 $ | 0,60 $ | 128K | Úlohy citlivé na náklady, vysoký objem |
| Claude Sonnet 4.6 | 3,00 $ | 15,00 $ | 1M | Dlouhé dokumenty, pečlivé dodržování instrukcí |
| Claude Haiku 4.5 | 1,00 $ | 5,00 $ | 200K | Rychlý, levný, dobrá kvalita |
| Gemini 2.5 Pro | 1,25 $ | 10,00 $ | 1M | Multimodální (obrázek + text), dlouhý kontext |
Ceny čerpány ze zdrojů OpenAI, Anthropic a Google AI k červnu 2026.
Začněte levně, upgradujte podle potřeby
Zde je přístup, který vám ušetří peníze: začněte s gpt-4o-mini nebo claude-haiku-4.5 pro všechno. Spusťte to na týden, změřte kvalitu pomocí skutečné zpětné vazby od uživatelů a přejděte na větší model pouze pro specifické úkoly, kde levný model selhává. Většina funkcí pro shrnování, klasifikaci a automatické doplňování funguje perfektně na modelech mini tieru.
Pro hlubší pohled na budování celého vašeho AI stacku se podívejte na našeho průvodce AI SaaS Stackem.
Vaše první funkce AI: Integrace API
Je čas psát kód. Zde je přesně stejná operace, volání dokončení chatu, jak v Pythonu, tak v TypeScriptu. Vyberte si ten, který používá váš backend.
Python (OpenAI SDK)
# pip install openai
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
def ask_ai(user_message: str) -> str:
"""Call the LLM and return the response text."""
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a helpful assistant for our SaaS product."},
{"role": "user", "content": user_message},
],
temperature=0.7,
max_tokens=1024,
)
return response.choices[0].message.contentTypeScript (OpenAI SDK)
// npm install openai
import OpenAI from "openai";
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
async function askAI(userMessage: string): Promise<string> {
const response = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [
{ role: "system", content: "You are a helpful assistant for our SaaS product." },
{ role: "user", content: userMessage },
],
temperature: 0.7,
max_tokens: 1024,
});
return response.choices[0].message.content ?? "";
}Kde tento kód žije ve vaší aplikaci
Nevolejte OpenAI z vašeho frontendu. Nikdy. Tento kód patří do:
- Next.js: API route (
app/api/chat/route.ts) - FastAPI: endpoint (
@app.post("/api/chat")) - Express: handler (
router.post("/api/chat", ...))
Váš frontend odešle požadavek vašemu backendu, váš backend zavolá OpenAI a vrátí výsledek. To udržuje váš OPENAI_API_KEY na serveru, kde mu je místo.
To je vše. Máte funkční funkci AI. Ale působí pomalu, uživatel klikne na „odeslat“ a zírá na prázdnou obrazovku 2–3 sekundy. Streamování to napraví.
Aby to působilo reálně: Streamování odpovědí AI
Čekání 2–3 sekundy bez zpětné vazby působí rozbitě. Streamování dělá stejnou odpověď pocitově okamžitou tím, že zobrazuje tokeny, jak přicházejí – efekt psacího stroje, který jste viděli v ChatGPT. Každá produkční AI aplikace jej používá a jeho implementace je překvapivě snadná.
Streamování na straně serveru (Python + TypeScript)
Zde je přístup v Pythonu pomocí FastAPI a Server-Sent Events:
# pip install fastapi openai sse-starlette
from fastapi import FastAPI
from fastapi.responses import StreamingResponse
from openai import OpenAI
import os
app = FastAPI()
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
@app.post("/api/chat")
async def chat(user_message: str):
"""Stream the LLM response token by token."""
def generate():
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a helpful SaaS assistant."},
{"role": "user", "content": user_message},
],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
yield chunk.choices[0].delta.content
return StreamingResponse(generate(), media_type="text/event-stream")A ekvivalent v TypeScriptu pomocí Next.js s Vercel AI SDK, který za vás řeší technické detaily streamování:
// npm install ai openai
// app/api/chat/route.ts (Next.js App Router)
import { openai } from "@ai-sdk/openai";
import { streamText } from "ai";
export async function POST(req: Request) {
const { messages } = await req.json();
const result = streamText({
model: openai("gpt-4o-mini"),
system: "You are a helpful SaaS assistant.",
messages,
});
return result.toDataStreamResponse();
}Na straně klienta: Cesta Vercel AI SDK
Na straně Reactu hook useChat obsluhuje vše: stav zpráv, streamování, zpracování chyb:
// components/Chat.tsx
"use client";
import { useChat } from "@ai-sdk/react";
export default function Chat() {
const { messages, input, handleInputChange, handleSubmit, isLoading } = useChat({
api: "/api/chat",
});
return (
<div>
{messages.map((m) => (
<div key={m.id} className={m.role === "user" ? "user-msg" : "ai-msg"}>
{m.content}
</div>
))}
<form onSubmit={handleSubmit}>
<input value={input} onChange={handleInputChange} placeholder="Ask something..." />
<button type="submit" disabled={isLoading}>Send</button>
</form>
</div>
);
}To je plně funkční streamovací AI chat v asi 40 řádcích kódu napříč serverem a klientem. Hook useChat spravuje pole zpráv, appenduje streamované tokeny v reálném čase a automaticky zpracovává stavy načítání. Nepotřebujete přímo sahat na EventSource nebo ReadableStream. Pro více informací o tom, jak streamování funguje pod kapotou, je dokumentace Vercel AI SDK definitivní referencí.
Spolehlivé výstupy: Strukturované výstupy a Function Calling
Surový text z LLM je skvělý pro chat. Je hrozný pro cokoli, co potřebuje váš kód parsovat. Pokud extrahujete data, spouštíte akce nebo budujete strukturované UI, potřebujete strukturované výstupy.
Strukturované výstupy (JSON Mode)
Parametr response_format v OpenAI vynucuje, aby model vrátil platný JSON odpovídající vašemu schématu. Žádné doufání, že model vyparsuje text:
from pydantic import BaseModel
from openai import OpenAI
client = OpenAI()
class ProductReview(BaseModel):
sentiment: str # "positive", "negative", "neutral"
key_points: list[str]
rating: int # 1-5
recommended: bool
response = client.beta.chat.completions.parse(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Extract a structured review from user text."},
{"role": "user", "content": "Amazing product! Fast shipping, great quality. Only downside is the price."},
],
response_format=ProductReview,
)
review = response.choices[0].message.parsed
print(review.sentiment) # "positive"
print(review.rating) # 4
print(review.key_points) # ["Fast shipping", "Great quality", "High price"]Model je omezen na vrácení přesně polí, která definujete. Žádné chyby při parsování, žádná extrakce regexem, žádné „někdy vrátí markdown a někdy ne“. Kompletní reference ke schématům, režimům a okrajovým případům najdete v našem Průvodci strukturovanými výstupy LLM.
Function Calling pro akce aplikace
Function calling umožňuje LLM spouštět akce ve vaší aplikaci, jako je aktualizace záznamu v databázi, odeslání e-mailu nebo volání externího API. Definujete dostupné nástroje a model se rozhodne, kdy je použít:
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Update my email to [email protected]" }],
tools: [
{
type: "function",
function: {
name: "update_user_profile",
description: "Updates a field on the user's profile",
parameters: {
type: "object",
properties: {
field: { type: "string", enum: ["email", "name", "avatar_url"] },
value: { type: "string" },
},
required: ["field", "value"],
},
},
},
],
});
// The model returns a tool_call -- you execute it in your backend
const toolCall = response.choices[0].message.tool_calls?.[0];
if (toolCall?.function.name === "update_user_profile") {
const args = JSON.parse(toolCall.function.arguments);
await db.users.update({ [args.field]: args.value }); // Your DB call
}Model nic nespouští přímo. Řekne vám, co zavolat a s jakými argumenty, a vy spustíte skutečnou funkci ve svém zabezpečeném backendu. Takto budujete funkce AI, které jdou beyond chat a skutečně něco dělají. Pro pokročilé vzory, jako jsou vícestupňové řetězce nástrojů a paralelní volání, se podívejte na náš Průvodce Function Calling LLM. Anthropic má podobné API pro použití nástrojů, pokud používáte Claude.
Přidání znalostí: RAG v 50 řádcích
Vaše LLM neví nic o vašem produktu, dokumentaci nebo uživatelích. RAG (Retrieval-Augmented Generation) to opravuje: nejprve prohledejte svá data a poté relevantní části předložte modelu jako kontext. Je to nejčastější vzor pro přizpůsobení funkcí AI konkrétní společnosti.
Vzorec: Hledat, pak se ptát
- Embeddujte své dokumenty do vektorů (jednorázově při ingestování)
- Uložte vektory do databáze (
pgvector, Pinecone, Qdrant, Weaviate) - Načtěte nejrelevantnější části, když se uživatel zeptá na otázku
- Vložte tyto části do promptu LLM jako kontext
Minimální implementace RAG
# pip install openai numpy psycopg2-binary pgvector
from openai import OpenAI
import numpy as np
client = OpenAI()
# Step 1: Embed a document chunk
def embed(text: str) -> list[float]:
response = client.embeddings.create(model="text-embedding-3-small", input=text)
return response.data[0].embedding
# Step 2: Store in pgvector (assumes table with vector column exists)
def store_chunk(cursor, text: str, embedding: list[float]):
cursor.execute(
"INSERT INTO documents (content, embedding) VALUES (%s, %s)",
(text, np.array(embedding).tolist()),
)
# Step 3: Retrieve relevant chunks
def search(cursor, query: str, top_k: int = 3) -> list[str]:
query_embedding = embed(query)
cursor.execute(
"""SELECT content FROM documents
ORDER BY embedding <=> %s::vector LIMIT %s""",
(np.array(query_embedding).tolist(), top_k),
)
return [row[0] for row in cursor.fetchall()]
# Step 4: Ask the LLM with context
def ask_with_context(question: str, cursor) -> str:
chunks = search(cursor, question)
context = "\n\n".join(chunks)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": f"Answer using this context:\n\n{context}"},
{"role": "user", "content": question},
],
)
return response.choices[0].message.contentTo je celý pipeline RAG v asi 40 řádcích. Pro nastavení připravené na produkci se strategiemi chunkingu, hybridním vyhledáváním a evaluací se podívejte na našeho kompletního průvodce budováním RAG aplikace. Pokud hodnotíte frameworky, LangChain a LlamaIndex poskytují abstrakce vyšší úrovně.
Produkční vzory: Náklady, bezpečnost a zpracování chyb
Všechno výše uvedené funguje skvěle ve vývoji. Produkce je tam, kde se to stává zajímavým. Tato sekce pokrývá problémy, na které narazíte dva týdny po nasazení své funkce AI, a jak je vyřešit, než vás připraví o spánek (nebo peníze).
Matematika tokenového rozpočtu (Kolik vaše funkce AI skutečně stojí)
Přestaňte hádat. Zde je vzorec: uživatelé x požadavky/den x avg_tokenů x cena_za_token = měsíční náklady.
| Scénář | Uživatelé | Požadavky/den | Průměr tokenů (vstup+výstup) | Model | Měsíční náklady |
|---|---|---|---|---|---|
| Koníček / Interní nástroj | 50 | 5 | 800 | gpt-4o-mini | ~1,50 $ |
| Raný startup | 500 | 8 | 1 000 | gpt-4o-mini | ~18 $ |
| Růstová SaaS | 5 000 | 12 | 1 200 | gpt-4o | ~540 $ |
| Škálování (smíšené směrování) | 20 000 | 15 | 1 500 | gpt-4o-mini + gpt-4o | ~800–1 200 $ |
Úroveň Growth je tam, kde lidé dostanou šok. Při 5 000 uživatelích budete chtít směrování modelů: posílejte snadné požadavky (shrnutí, klasifikace) na gpt-4o-mini a složité požadavky (vícestupňové uvažování, generování kódu) směrujte pouze na gpt-4o. To může snížit náklady o 60–70 %.
Další taktiky optimalizace nákladů:
- Cachování promptů: OpenAI i Anthropic nabízejí úspory až 50–90 % na opakovaných prefixech promptů
- Limity
max_tokens: omezte délku výstupu, aby model nemluvil zbytečně dlouho - Semantické cachování: pokud se uživatel zeptá na stejnou otázku dvakrát, vraťte cachovanou odpověď
Pro pokročilé strategie optimalizace promptů a cachování se podívejte na našeho průvodce technikami context engineeringu.
Bezpečnost API klíčů (Vzor Backend Proxy)
Mělo by to být zřejmé, ale stále se to objevuje v produkčních aplikacích: nikdy nezveřejňujte své API klíče ve frontendovém kódu. Ani v proměnných prostředí, které se balí do klienta. Ani v „skryté“ JavaScriptové proměnné. OWASP Top 10 pro LLM aplikace uvádí zveřejnění citlivých informací (LLM02:2025) jako hlavní riziko.
Řešení je jednoduché: váš frontend volá vaše backendové API. Váš backend volá OpenAI. API klíč žije výhradně na serveru, načtený z proměnné prostředí nebo správce tajných kódů.
Také implementujte rate limiting pro jednotlivé uživatele, abyste zabránili tomu, že jeden uživatel vyčerpá váš API rozpočet. Což nás přivádí k:
Rate Limiting pro jednotlivé uživatele
| Plán | AI požadavky/den | Tokenový rozpočet/měsíc | Funkce |
|---|---|---|---|
| Free | 20 | 100K tokenů | Základní chat, shrnování |
| Pro (29 $/měs) | 200 | 1M tokenů | Plné AI funkce, RAG vyhledávání |
| Enterprise | Neomezeno | 10M tokenů | Prioritní fronta, dedikované směrování modelů |
Sledujte využití na úrovni uživatele, nejen globálně. Uživatel free tieru, který objeví váš AI endpoint a vystřelí 10 000 požadavků, udělá vašemu CFO velmi špatnou náladu.
Zpracování chyb a fallback řetězce
API LLM padají. Vracingí nesmysly. Narazí na rate limity. Vaše aplikace musí vše elegantně zvládnout. Zde je vzor retry-with-fallback:
import OpenAI from "openai";
import Anthropic from "@anthropic-ai/sdk";
const openai = new OpenAI();
const anthropic = new Anthropic();
async function aiWithFallback(prompt: string): Promise<string> {
const models = [
() => callOpenAI("gpt-4o-mini", prompt),
() => callOpenAI("gpt-4o", prompt),
() => callAnthropic("claude-3-5-haiku-latest", prompt),
];
for (const callModel of models) {
try {
return await withRetry(callModel, { maxRetries: 2, baseDelay: 1000 });
} catch (err) {
console.warn(`Model failed, trying next fallback...`, err);
}
}
// All models failed -- return cached or static response
return "I'm temporarily unable to process your request. Please try again shortly.";
}
async function withRetry<T>(fn: () => Promise<T>, opts: { maxRetries: number; baseDelay: number }): Promise<T> {
for (let i = 0; i <= opts.maxRetries; i++) {
try {
return await fn();
} catch (err: any) {
if (i === opts.maxRetries) throw err;
if (err?.status === 429 || err?.status >= 500) {
await new Promise((r) => setTimeout(r, opts.baseDelay * 2 ** i)); // Exponential backoff
} else {
throw err; // Don't retry client errors (400, 401, etc.)
}
}
}
throw new Error("Unreachable");
}Klíčové principy: opakujte chyby 429 a 5xx s exponenciálním backoffem, při vyčerpání opakování přejděte k dalšímu poskytovateli modelu a vždy mějte konečný fallback (cachovaná odpověď, statický obsah nebo jasná chybová zpráva). Nikdy nenechte selhání AI shodit vaši aplikaci.
Jak Techsy přistupuje k vývoji funkcí AI
Každý projekt AI začínáme stejnou otázkou ze Sekce 3: „Potřebuje toto skutečně LLM, nebo existuje jednodušší řešení?“ Budete překvapeni, jak často je odpověď „dobře navržený SQL dotaz zvládne 80 % toho.“
Když je AI správnou volbou, zde je náš proces:
- Rychlý prototyp, funkční proof-of-concept za 1–2 týdny pomocí
gpt-4o-minia nejjednodušší možné architektury - Měření s reálnými uživateli, ne syntetickými benchmarky, skutečná spokojenost uživatelů (palce nahoru/dolů, míra dokončení úkolů)
- Iterace s evals, automatizovaná hodnocení LLM, která zachytí regresy kvality dříve než uživatelé
- Hardening pro produkci, rate limity, fallback řetězce, monitorování nákladů a bezpečnostní vzory z tohoto průvodce
- Optimalizace nákladů, směrování modelů, cachování promptů a správné dimenzování modelů pro každou funkci
Co očekávat u reálných buildů: Guidance z veřejných benchmarků
Bez povolení nezveřejňujeme metriky klientů, ale následující údaje jsou založeny na publikovaných benchmarcích modelů a veřejných datech o cenách API, což je užitečné jako inženýrské cíle, než máte vlastní čísla:
- Latence prvního tokenu při streamování na
gpt-4o-minise obvykle pohybuje mezi 200 ms a 600 ms při normálním zatížení.gpt-4oje podobný nebo mírně vyšší. Očekávejte, že p95 bude 1,5–2x medián. - Náklady na konverzaci pro typickou 600-tokenovou odpověď podpory (400 vstup + 200 výstup) na
gpt-4o-mini: (400/1 000 000 × 0,15 $) + (200/1 000 000 × 0,60 $) = 0,000060 $ + 0,000120 $ = 0,00018 $ za odpověď, méně než cent i při 5 000 odpovědích/den. - Režie RAG: embeddování každého dotazu přes
text-embedding-3-small(0,02 $/1M tokenů) přidává zhruba 0,000010 $ za lookup, což je zanedbatelné ve srovnání s voláním completion.
Jedná se o reprezentativní starting pointy. Pokud nasadíte a instrumentujete svá vlastní volání, skutečná čísla se budou lišit podle délky promptu, velikosti systémové zprávy a špiček provozu. Pokud jste spustili integrace postavené Techsy a chcete sdílet benchmark data pro tohoto průvodce, kontaktujte nás.
Pro strategie, jak snížit vaše výdaje ve velkém měřítku, se podívejte na našeho průvodce snižováním nákladů na LLM API.
Postavili jsme streamovací AI chaty, znalostní báze poháněné RAG a systémy klasifikace řízené AI pro SaaS produkty. Vzory v tomto průvodci jsou stejné, které používáme v projektech pro klienty, nic není zatajeno. Pokud se vaše „funkce AI“ blíží plnohodnotnému autonomnímu agentovi, náš průvodce kdy najmout agenturu pro vývoj AI agentů pokrývá cenová rozpětí, stack a diskvalifikátory, abyste poznali, zda je DIY stále správnou volbou.
Budujete funkce AI a potřebujete druhý pár očí? Získejte bezplatnou revizi architektury.
Často kladené otázky
Jak přidám funkce AI do mé SaaS bez přestavby od nuly?
Nepřestavujete. Přidáte backendovou API route, která volá OpenAI nebo Anthropic, propojíte ji s vaším stávajícím UI a nasadíte. Příklady kódu v tomto průvodci ukazují přesně to – nový endpoint, ne novou architekturu. Začněte jednou funkcí, jako je chat nebo shrnování, a expandujte odtud.
Jaký je nejrychlejší způsob integrace OpenAI do stávající aplikace?
Nainstalujte SDK (pip install openai nebo npm install openai), vytvořte backendovou API route, zavolejte chat.completions.create() a vraťte výsledek. S hookem useChat z Vercel AI SDK můžete mít streamovací AI chat běžící za méně než 30 minut.
Kolik stojí přidání funkcí AI do SaaS aplikace?
Náklady na API pro aplikaci s 1 000 uživateli se pohybují od 15 do 150 $/měsíc v závislosti na modelu a vzorcích využití. gpt-4o-mini za 0,15 $/1M vstupních tokenů udržuje náklady velmi nízké. Doba vývoje je obvykle 1–4 týdny pro vaši první funkci. Podrobné scénáře najdete v sekci matematika tokenového rozpočtu.
Mám použít RAG nebo fine-tuning pro přidání AI do mého produktu?
RAG pro 90 % případů použití. Fine-tuning pouze tehdy, když potřebujete, aby se model naučil specifický styl nebo doménové znalosti, které nelze poskytnout prostřednictvím kontextu. RAG je levnější, rychleji se implementuje a mnohem snáze se aktualizuje – stačí přidat nové dokumenty do vaší vektorové databáze místo přeučování modelu.
Jak se vyhnout exposed OpenAI API klíči ve webové aplikaci?
Nikdy nevolejte OpenAI API z frontendu. Vytvořte backend proxy, váš frontend volá vaše API, váš backend volá OpenAI. Uložte klíč do proměnných prostředí na straně serveru. Přidejte rate limiting pro jednotlivé uživatele, aby nikdo nemohl zneužít váš endpoint.
Jak dlouho trvá přidání funkcí AI do stávající aplikace?
Základní funkce chatu trvá 1–2 dny. Streamovací UI přidá 2–3 dny. RAG s daty vaší společnosti trvá 1–2 týdny. Plný production hardening s rate limity, zpracováním chyb a kontrolou nákladů trvá 2–4 týdny. Základní verzi můžete nasadit za dny a iterovat odtud.
Kdy mám použít GPT-4o vs Claude vs Gemini?
GPT-4o pro obecné úkoly s největším ekosystémem a nejlepší podporou nástrojů. Claude Sonnet 4.6 pro dlouhé dokumenty, pečlivé dodržování instrukcí a úkoly kódování. Gemini 2.5 Pro pro multimodální práci (obrázky + text) a integraci Google Cloud. Začněte s GPT-4o-mini pro úsporu nákladů, upgradujte pouze tehdy, když můžete změřit rozdíl v kvalitě.
Jak zpracovat chyby AI v produkci?
Implementujte logiku opakování s exponenciálním backoffem pro chyby 429 (rate limit) a 5xx. Postavte fallback řetězec modelů – zkuste svůj primární model, přejděte na alternativního poskytovatele a poté na cachovanou nebo statickou odpověď. Nikdy nenechte selhání AI shodit vaši aplikaci nebo zobrazit prázdnou obrazovku.
Jaké funkce AI by měla mít SaaS aplikace v roce 2026?
Začněte funkcí s nejvyšší hodnotou a nejnižší komplexitou pro váš specifický produkt. Pro většinu SaaS aplikací: vyhledávání poháněné AI, shrnování obsahu nebo asistent v aplikaci. Podívejte se na tabulku Rychlé shrnutí v horní části tohoto průvodce pro odhady nákladů a obtížnosti podle typu funkce.
Jak poznám, že moje funkce AI skutečně funguje?
Nastavte LLM evals, automatizované testy, které měří kvalitu odpovědí, relevanci a bezpečnost na sadě reprezentativních vstupů. Sledujte metriky spokojenosti uživatelů, jako jsou hodnocení palcem nahoru/dolů a frekvence následných otázek. Porovnejte dokončení úkolů s pomocí AI proti toku bez AI. Pokud uživatelé nedokončují úkoly rychleji nebo úspěšněji, funkce potřebuje práci.
Checklista pro nasazení vaší funkce AI
Nyní máte kompletní obraz. Zde je váš krok za krokem k nasazení:
- Vyberte svou funkci, použijte tabulku Rychlé shrnutí k výběru možnosti s nejvyšší hodnotou a nejnižší obtížností pro váš produkt
- Proveďte test regexu, potvrďte, že AI je skutečně správným nástrojem pro tento úkol
- Začněte s levným modelem,
gpt-4o-minineboclaude-haiku-4.5, změřte kvalitu před upgradem - Postavte základní volání API, Python nebo TypeScript, za backend proxy
- Přidejte streamování,
Vercel AI SDKto činí triviálním pro React aplikace - Přidejte strukturované výstupy, pokud vaše funkce potřebuje parslovatelná data, ne volný text
- Vypočítejte svůj tokenový rozpočet, uživatelé x požadavky x tokeny x cena = měsíční faktura
- Implementujte rate limity a zpracování chyb, limity pro uživatele, logika opakování, fallback řetězec
- Nasaďte a měřte, sledujte spokojenost uživatelů, ne jen to, zda API vrací 200
Vaše první funkce AI je blíže, než si myslíte. Nejtěžší částí není kód, ale rozhodnutí, kterou funkci postavit jako první. Vyberte jednu, nasaďte ji tento týden a iterujte na základě toho, co vám řeknou skuteční uživatelé.