Меню

Я сократил расходы на API LLM на 70%: практические советы по использованию AirAi с маршрутизацией и кэшированием

0. Предыстория: Как возник взрыв счета?

Я занимаюсь несколькими параллельными проектами, и на начальном этапе мне приходилось либо терпеть и покупать официальную подписку за 20 долларов в месяц, либо сталкиваться с отказами при попытке использования международных кредитных карт. В конце месяца, когда я подсчитывал расходы, обнаружил две действительно неприятные вещи:

  1. 80% запросов относятся к таким легким задачам, как извлечение аннотаций, классификация и форматирование данных, и использование самой дорогой модели для их обработки является пустой тратой ресурсов;

  1. Подписка представляет собой фиксированные затраты: когда вызовов мало, это приводит к убыткам, а когда вызовов много, их оказывается недостаточно.

Итак, я обратился к AirAi: взял собственный API-ключ, перешел на платформу с оплатой по использованию и настроил клиент так, чтобы он использовал их интерфейс, совместимый с OpenAI.

Здесь ещё есть один маленький эпизод. У меня всегда не было нормальной международной кредитной карты, и каждый раз, когда приходило время платить, попытка оплаты отклонялась; некоторое время я использовал карту родственника, но это привело к активации системы контроля рисков, и мой аккаунт был заблокирован. Мне пришлось подавать жалобу, и только спустя почти две недели аккаунт был разблокирован. После этого я решил искать только те платформы, которые не требуют использования международных карт. В итоге я выбрал этот гейтвей, который принимает только USDT — для человека, у которого нет международной карты, это, пожалуй, самый простой вариант: достаточно просто пополнить счет, и можно использовать сервис без ежемесячных сборов и без необходимости прохождения процедуры KYC. Самое главное — цены: по моим оценкам, стоимость услуг примерно вдвое ниже, чем при использовании официального способа оплаты. Именно это стало основной причиной, по которой я решил использовать именно этот гейтвей.

1. Переключение между строками: переключение на любой совместимый шлюз

Почти все клиенты, поддерживающие настройку пользовательских конечных точек (Claude Code, Cursor, Open WebUI, LibreChat, Cline и др.), могут быть переключены с помощью одной строки переменной окружения без необходимости изменения кода. Просто укажите следующие две переменные на ваш собственный гейтвей:

export OPENAI_BASE_URL="https://api.airai.cc/v1"
export ANTHROPIC_BASE_URL="https://api.airai.cc/v1"

Какой выбрать шлюз — это другой вопрос; в этой статье речь идет только о методах реализации.

2. Практика работы с кодом: маршрутизация + кэширование

Простое переключение источников света ещё недостаточно для экономии средств; настоящая экономия достигается за счёт использования правильных моделей для выполнения правильных задач и кэширования повторяющихся запросов. Вот шаблон, который я использую в производственной среде (совместим с OpenAI SDK): параметры base_url и api_key запрашиваются из переменных окружения, а не задаются непосредственно в коде:

import openai, hashlib, os

client = openai.OpenAI(
    base_url=os.getenv("OPENAI_BASE_URL"),
    api_key=os.getenv("OPENAI_API_KEY"),
)

# Routing: small model for light tasks, flagship only for complex reasoning
CHEAP  = "gpt-5.6-luna"   # classification / summarization / formatting
STRONG = "gpt-5.6-sol"    # only called for complex reasoning

_cache: dict[str, str] = {}   # swap for Redis in production

def ask(prompt: str) -> str:
    model = STRONG if len(prompt) > 400 else CHEAP
    key = hashlib.md5(prompt.encode()).hexdigest()
    if key in _cache:                      # cache hit, 0 cost
        return _cache[key]
    resp = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
    )
    answer = resp.choices[0].message.content
    _cache[key] = answer
    return answer

Вы можете настраивать параметры CHEAP и STRONG в соответствии со своим бюджетом и требуемыми результатами. Название модели должно соответствовать документации используемого вами гибридного шлюза. При выполнении офлайн-задач обязательно используйте интерфейс Batch — это обычно позволяет сэкономить еще половину ресурсов.

3. Сравнение затрат (иллюстративно)

Перед и после реконструкцииИнструкцияДанные (пожалуйста, используйте реальные цифры согласно вашему счету-фактуре):

Проект

Официальная подписка / Прямой доступ

AirAi + Кэш маршрутизации

Способ оплаты

Фиксированная ежемесячная плата / Официальная цена

Платеж по факту использования Платеж за использование ресурсов по мере их потребления

Модель легкой работы

Флагман (траты ресурсов)

Маленькая модель (дешевле)

Повторная запрос

Пересчет полной стоимости

Кэш-попадание: 0; Стоимость:

Ощущаемые затраты

Базовый уровень – 100%

От примерно 10 до 30% (в зависимости от объема использования)

4. Честные границы (скажем правду)

  • Не все действительно экономят больше.Когда количество месячных вызовов очень низкое, фиксированная подписка может оказаться более экономически выгодной; платформа по подписке за использование ресурсов становится привлекательной только при большом объеме вызовов. Сначала рассчитайте собственный объем использования ресурсов.

  • Отложенность и стабильностьДополнительный слой шлюза приведет к небольшому увеличению задержек, а также к возможности возникновения проблем с превышением времени выполнения операций и снижением качества обслуживания (деградации).

  • Криптографическая безопасность ключейКлючи следует хранить в переменных окружения, а не закладывать их непосредственно в фронтенд или публичные репозитории.

5. Итоги

Суть снижения затрат на LLM (Large Language Models) можно выразить одной фразой: пусть дешевые модели выполняют большинство работы, а дорогие используются только при необходимости, а также устраняются все лишние токены (разрешения, подключения и т. д.); процесс “связи с несколькими системами” превращается в простую операцию изменения одной строки кода.base_urlМаршрутизация и кэширование — это два бесплатных инструмента; давайте сначала их реализуем.


Было ли это полезно?

Техническая поддержкаОнлайн-поддержка
侧栏
Наверх
简体中文ZH-CNDefault繁體中文ZH-TWEnglishEN日本語JA한국어KOภาษาไทยTHTiếng ViệtVIBahasa IndonesiaIDEspañolESFrançaisFRDeutschDEРусскийRUPortuguêsPTItalianoITالعربيةAR