Создайте красивый чат-интерфейс на React с интеграцией GPT через AITUNNEL.
Установка
npm install openaiКомпонент чата
// 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 версия
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:
// Не храните ключ на фронтенде!
const response = await fetch('/api/chat', {
method: 'POST',
body: JSON.stringify({ messages })
});Ключевые возможности
- React компоненты
- Streaming UI
- История сообщений
- TypeScript
- Hooks
Интегрируйте AI в ваш проект
AITUNNEL предоставляет OpenAI-совместимый API — подключение занимает минуты. Работает с любым фреймворком и языком программирования.
Доступные модели
Часто задаваемые вопросы
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 для изображений и многие другие.