Сравнение AI API: OpenAI vs Claude vs Gemini vs Ollama
В 2025 году разработчикам доступно более 10 коммерческих LLM API. Выбор правильной модели напрямую влияет на качество, скорость и стоимость вашего AI-приложения.
Полное сравнение провайдеров
| Провайдер | Лучшая модель | Контекст | Input (1M) | Output (1M) | Сильные стороны |
|---|---|---|---|---|---|
| OpenAI | GPT-4o | 128K | $2.50 | $10.00 | Экосистема, DALL-E, Whisper |
| Anthropic | Claude 3.5 Sonnet | 200K | $3.00 | $15.00 | Следование инструкциям, длинный контекст |
| Gemini 1.5 Pro | 1M | $3.50 | $10.50 | Огромный контекст, мультимодальность | |
| Groq | Llama 3.1 70B | 128K | $0.59 | $0.79 | Скорость (750 токенов/сек) |
| Ollama | Llama 3.1 8B | 128K | Бесплатно | Бесплатно | Приватность, нет API-зависимости |
Бюджетные варианты
| Модель | Input | Output | Применение |
|---|---|---|---|
| GPT-4o-mini | $0.15/1M | $0.60/1M | Чатботы, поддержка |
| Claude 3 Haiku | $0.25/1M | $1.25/1M | Высокочастотные запросы |
| Gemini 1.5 Flash | $0.075/1M | $0.30/1M | Дешевле всего |
| Groq Llama 3 | $0.05/1M | $0.08/1M | Самый быстрый |
Как выбрать модель
- Чатбот поддержки — GPT-4o-mini или Claude 3 Haiku (дёшево, качественно)
- Анализ документов — Claude 3.5 Sonnet (200K контекст) или Gemini 1.5 Pro (1M контекст)
- Генерация кода — Claude 3.5 Sonnet или GPT-4o (лучший для кода)
- Локальное использование / приватность — Ollama + Llama 3.1
- Максимальная скорость — Groq (750 токенов/сек)
- Дешевле всего — Gemini 1.5 Flash
Мультипровайдерная архитектура
class AIRouter:
def __init__(self):
self.providers = {
'openai': OpenAI(api_key=os.environ["OPENAI_API_KEY"]),
'anthropic': anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"]),
}
def complete(self, prompt: str, provider: str = 'openai', model: str = None) -> str:
if provider == 'openai':
r = self.providers['openai'].chat.completions.create(
model=model or 'gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
max_tokens=500
)
return r.choices[0].message.content
elif provider == 'anthropic':
r = self.providers['anthropic'].messages.create(
model=model or 'claude-3-5-haiku-20241022',
max_tokens=500,
messages=[{'role': 'user', 'content': prompt}]
)
return r.content[0].text
router = AIRouter()
print(router.complete("Напиши приветствие для сайта", provider='anthropic'))Совет: Используйте библиотеку LiteLLM — она предоставляет единый OpenAI-совместимый интерфейс для 100+ LLM-провайдеров. Смена провайдера — одна строчка кода.