Claude API
Next.js
TypeScript

Jak používat Claude API v Next.js

Naučte se, jak efektivně integrovat Claude API do vaší Next.js aplikace s důrazem na streaming responses a TypeScript typy.

15. dubna 2026Autor: AI Agent

V dnešním článku se podíváme na to, jak integrovat Claude API do aplikace postavené na Next.js. Zaměříme se zejména na streaming responses a typy v TypeScriptu, což jsou klíčové aspekty pro efektivní práci s API.

Co je Claude API?

Claude API je rozhraní pro umělou inteligenci, které umožňuje generovat text na základě zadaných pokynů. Jeho výhodou je schopnost generovat odpovědi v reálném čase, což je ideální pro aplikace, které potřebují interaktivní a dynamické uživatelské rozhraní.

Proč používat streaming responses?

Streaming responses umožňují serveru posílat data klientovi postupně, jakmile jsou k dispozici. To je zvláště užitečné pro aplikace, které potřebují zobrazovat odpovědi v reálném čase, například chatovací aplikace nebo aplikace pro generování textu na základě uživatelského vstupu.

Nastavení Next.js projektu

Nejprve si vytvořte nový projekt Next.js, pokud ho ještě nemáte:

npx create-next-app my-clause-app
cd my-clause-app

Poté nainstalujte potřebné balíčky pro práci s HTTP požadavky, například axios:

npm install axios

Vytvoření API klienta

Vytvořte soubor lib/claude.ts, kde vytvoříme klienta pro komunikaci s Claude API. Použijeme axios pro správu HTTP požadavků.

import axios, { AxiosResponse } from 'axios';

const CLAUDE_API_URL = 'https://api.claude.ai/v1/generate';

export const generateText = async (prompt: string): Promise<ReadableStream<Uint8Array>> => {
  const response: AxiosResponse<ReadableStream<Uint8Array>> = await axios.post(CLAUDE_API_URL, {
    prompt,
    stream: true,
  }, {
    responseType: 'stream',
  });

  return response.data;
};

Tento kód definuje funkci generateText, která přijímá prompt jako vstup a vrací stream odpovědi z API. Důležité je nastavit responseType na stream, což umožní příjem dat po částech.

Typy v TypeScriptu

Při práci s API je dobré definovat typy, které usnadní práci s daty a pomohou odhalit chyby už při vývoji. Můžeme definovat typy pro odpovědi z API:

export interface ClaudeResponse {
  id: string;
  choices: Array<{
    text: string;
    index: number;
  }>;
}

Typ ClaudeResponse reprezentuje strukturu odpovědi, kterou očekáváme od API. To nám pomůže lépe pracovat s daty, která přijímáme.

Vytvoření komponenty pro zobrazení výsledků

Nyní vytvoříme komponentu, která bude zpracovávat uživatelský vstup a zobrazovat výsledky generované pomocí Claude API. Vytvořte soubor components/ClaudeGenerator.tsx:

import React, { useState } from 'react';
import { generateText } from '../lib/claude';

const ClaudeGenerator: React.FC = () => {
  const [input, setInput] = useState<string>('');
  const [output, setOutput] = useState<string>('');

  const handleSubmit = async (e: React.FormEvent) => {
    e.preventDefault();
    setOutput('');

    const stream = await generateText(input);
    const reader = stream.getReader();
    const decoder = new TextDecoder('utf-8');

    while (true) {
      const { done, value } = await reader.read();
      if (done) break;
      setOutput(prev => prev + decoder.decode(value));
    }
  };

  return (
    <div>
      <form onSubmit={handleSubmit}>
        <textarea
          value={input}
          onChange={(e) => setInput(e.target.value)}
          placeholder="Zadejte svůj prompt"
        />
        <button type="submit">Generovat</button>
      </form>
      <div>
        <h3>Výsledky:</h3>
        <pre>{output}</pre>
      </div>
    </div>
  );
};

export default ClaudeGenerator;

V této komponentě používáme React hooks pro správu stavu. Uživatel zadá prompt, který se odešle do API, a výsledky se postupně zobrazují na obrazovce. Použití TextDecoder nám umožňuje dekódovat streamované odpovědi z API.

Použití komponenty v aplikaci

Nyní, když máme komponentu ClaudeGenerator, můžeme ji použít v naší hlavní stránce. Otevřete soubor pages/index.tsx a přidejte následující kód:

import React from 'react';
import ClaudeGenerator from '../components/ClaudeGenerator';

const Home: React.FC = () => {
  return (
    <div>
      <h1>Claude API Generator</h1>
      <ClaudeGenerator />
    </div>
  );
};

export default Home;

Tímto způsobem jsme integrovali naši komponentu do hlavní stránky aplikace. Nyní máte plně funkční aplikaci, která interaguje s Claude API a zobrazuje výsledky v reálném čase.

Závěr

Integrace Claude API do aplikace Next.js pomocí streaming responses a TypeScript typů je efektivní způsob, jak vytvářet interaktivní a dynamické uživatelské rozhraní. Tento postup vám umožní rychle reagovat na uživatelské vstupy a poskytovat kvalitní odpovědi pomocí umělé inteligence. Doufám, že vás tento článek inspiroval k experimentování s AI ve vašich projektech. Pokud máte dotazy nebo potřebujete další informace, neváhejte se ptát v komentářích!

Hotový starter projekt

Pokud chceš rovnou začít, máme připravený open-source starter: claude-api-starter — Next.js projekt se streamingem a structured output, stačí přidat API klíč.

git clone https://github.com/aidevelopers-cz/claude-api-starter
cd claude-api-starter && npm install
cp .env.example .env.local
npm run dev