GPT, Claude, Gemini — все модели через единый API. Работает в России без VPN.Начать бесплатно
Интеграции

React чат с GPT

Создание чат-интерфейса с AI на React

Создайте красивый чат-интерфейс на React с интеграцией GPT через AITUNNEL.

Установка

bash
npm install openai

Компонент чата

typescript
// ChatComponent.tsx
import { useState } from 'react';
import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: 'sk-aitunnel-xxx',
  baseURL: 'https://api.aitunnel.ru/v1/',
  dangerouslyAllowBrowser: true // Только для демо!
});

interface Message {
  role: 'user' | 'assistant';
  content: string;
}

export function ChatComponent() {
  const [messages, setMessages] = useState<Message[]>([]);
  const [input, setInput] = useState('');
  const [loading, setLoading] = useState(false);

  const sendMessage = async () => {
    if (!input.trim()) return;

    const userMessage: Message = { role: 'user', content: input };
    setMessages(prev => [...prev, userMessage]);
    setInput('');
    setLoading(true);

    try {
      const response = await client.chat.completions.create({
        model: 'gpt-5.2',
        messages: [...messages, userMessage]
      });

      const assistantMessage: Message = {
        role: 'assistant',
        content: response.choices[0].message.content || ''
      };
      setMessages(prev => [...prev, assistantMessage]);
    } catch (error) {
      console.error(error);
    } finally {
      setLoading(false);
    }
  };

  return (
    <div className="chat-container">
      <div className="messages">
        {messages.map((msg, i) => (
          <div key={i} className={`message ${msg.role}`}>
            {msg.content}
          </div>
        ))}
        {loading && <div className="loading">Думаю...</div>}
      </div>
      <div className="input-area">
        <input
          value={input}
          onChange={e => setInput(e.target.value)}
          onKeyPress={e => e.key === 'Enter' && sendMessage()}
          placeholder="Введите сообщение..."
        />
        <button onClick={sendMessage} disabled={loading}>
          Отправить
        </button>
      </div>
    </div>
  );
}

Streaming версия

typescript
const sendMessageStreaming = async () => {
  // ... setup ...

  const stream = await client.chat.completions.create({
    model: 'gpt-5.2',
    messages: [...messages, userMessage],
    stream: true
  });

  let content = '';
  for await (const chunk of stream) {
    content += chunk.choices[0]?.delta?.content || '';
    setMessages(prev => {
      const updated = [...prev];
      updated[updated.length - 1] = { role: 'assistant', content };
      return updated;
    });
  }
};

Важно: Backend API

Для production используйте backend API:

typescript
// Не храните ключ на фронтенде!
const response = await fetch('/api/chat', {
  method: 'POST',
  body: JSON.stringify({ messages })
});

Ключевые возможности

  • React компоненты
  • Streaming UI
  • История сообщений
  • TypeScript
  • Hooks

Интегрируйте AI в ваш проект

AITUNNEL предоставляет OpenAI-совместимый API — подключение занимает минуты. Работает с любым фреймворком и языком программирования.

OpenAI-совместимыйПростая интеграцияДокументация
Начать работуРегистрация за 1 минуту

Доступные модели

Часто задаваемые вопросы

AITUNNEL — это сервис, предоставляющий доступ к AI API (OpenAI, Claude, Gemini и другим) в России без VPN. Мы работаем как прокси между вами и провайдерами AI, обеспечивая стабильное соединение и оплату в рублях.

Нет, VPN не нужен. AITUNNEL работает напрямую из России. Все запросы идут на российский сервер api.aitunnel.ru, который затем передаёт их провайдерам AI.

Мы принимаем оплату российскими банковскими картами, через СБП, а также по счёту для юридических лиц. Минимальная сумма пополнения — 299 рублей.

Да, AITUNNEL на 100% совместим с официальным OpenAI SDK. Вам нужно только изменить base_url на https://api.aitunnel.ru/v1/ и использовать ваш API ключ AITUNNEL.

Через AITUNNEL доступны все популярные AI модели: GPT-5.2, GPT-4.1, Claude Sonnet 4.5, Gemini 2.5, DeepSeek V3, Llama 4, FLUX 2 для изображений и многие другие.