Выкліканне Claude, GPT і Gemini через канцэнтры сумесныя з OpenAI
Пазірце, што падтрымляюць слэйяры Anthropic і Gemini, сумесныя з OpenAI, дзе яны тыха ўсунуць певныя функцыі, і калі мае сэнс направляць усе тры через адной гейтвэй.
Крыніцы: Claude, GPT, and Gemini via One OpenAI-Compatible API
Як Anthropic, так і Google зараз прысвячаюць тэрміналы, сумесныя з OpenAI, таму ўказванне існуючага коду SDK OpenAI на Claude чыста Gemini — гэта проста зміна калькі ліній коду, а не перапісваў інтеграцыі. Складнасць няма ў першай запытке; складнасць — у тым, каб знаты, якія функцыі кожны слой сумеснасці таямніча ігнаруе, і скількі коштаў падтрымка калькі з іх адночасна. Ёсць тут точны налажванні кліента для кожнага прадавця, задокументаваныя праследы, важныя для продакшн-агентаў, а таксі прырэшчання ўсіх трох пад адним базовым URL і ключам.
Што на самай працэ «сумесны з OpenAI» фактычна обяцвае
API, яка сумэжна з OpenAI, — это будзь-який канцэнтр, які прымае формат запитоў, які надае SDK OpenAI: масэвы messages, тыя ж флагі стрімінгу і тая ж схема вызывання інструментаў. Паколькі гэты формат стаў фактычным стандартам ўжо калькі лет тым, большасць вэндараў модэляў зараз адкрывае якуюсь версію гэтага формату, таму команды можаць прыкантрыцца да іншага модэля без замены своего кліентскага коду.
Аднак сумэжнасць не значыць ідэнтычнасць. Форма запиту на лініи з’ѐднання збігаецца, але сэмантыка окремых параметраў можа разніцца, а непадтрымваныя опцыі часта прыменяюцца і пасля таго ігнаруюцца, а не адхіляюцца. Самэ гэтае явішча робіць такія шары рызыкавымі: нічога не выходзіць на вялікія проблемы, таму відсутняя функцыя прадстаўляецца у вигляді падышэлага результата замест адказу пра адказку.
Шар сумэжнасці Anthropic
Дакументацыя пра сумаспаднасць SDK OpenAI ад Anthropic паказвае гэты слой як спосаб пры тэставанні і парабяранні можлівасцей модэля, а не як рекаменаваны спосаб выкарыстоўвання ў працэсе розработы. У яй таксама пераказаны конкрэтныя абмежэння:
- Флаг
strictдля вызову функцый ігнаруецца, таму JSON з вызовамі інструментаў не гарантуецца як супакоўваны з заданым шэмам. - Кэшаванне запитоў не ўзможна через шар сумаспаднасці, навет якщо власны API Anthropic яго падтрымляе.
- Усі системныя і поведамленні разработчыка з’еднаюцца ў адно системнае поведамленне на пачатку кантакту, тым чым Claude прыймае толькі адзін пачатковы системны запит.
Нічныя з іх не стануць пераканстаннем для быстрага эксперыменту. Кожны з іх можа зламаць агента для працы, які завісіць ад таго, чы рэшткі інструменту падходзяць да схемы, ад кэшавання для контролю затрымкі і витакоў, або ад інструкцый системы, якія вводзяцца падчас размовы.
Слоі сумэснасці Google
У Google ўсё готава да вжыцтва. Згідна з ягоў дакументацыяй Gemini пра сумэснасць з OpenAI, стандартныя функцыі дапраўнення чату, стрімінг і вызов функцый працуюць. Тым часам Google таксама чыста адзначае, што не кожны параметр, спецыфічны для паводлежнага прадаўцы, можа быць перакладзены між двумя API, і рэкамендуе перайсці на натыўны API Gemini, калі табе патрэбна якая-небудзь функцыя, спецыфічная для Gemini.
Вытаки ўпрацоўкі ўсіх іх
Кожны слой сам па сабе ўтвараяць прыемны тымчасовы рашэнне для ацэнкі адного модэля. Якщо разам з’едыніць усіх троха прадаўцаў у адну прыкладку, накладныя витраты зростаюць: тры базовыя URL-адрэсы, тры ключы API, тры панелі калькуляцыі, тры наборы лімітаванняў швайна і тры разныя спісы параметраў, якія тыхо ігнаруюцца, усё гэта для падтрымкі коду, який выглядае аднакова для кожнага прадаўця.
Настоўкі SDK OpenAI на Claude
Для пераходу на інтэграцыю з Claude патрэбны тры змяны: базовая URL-адрэса, ключ API Anthropic заместо ключа OpenAI і назва модэля Claude. Гэта яе ператварае ў найшырэйшы спосаб ацэнкі Claude пры тым, як не прымыкацца да натыўнага SDK Anthropic. З’явлення застаюцца тымі ж:
import os
from openai import OpenAI
Кліент ствараецца з канцэнтра пункту Anthropic і ключа, які чытаецца з абявочнай среды, а сама вызовка являе сабой стандартнае завершэнне чату. Заўважыце, што у выдрукаванам фрагменте не ёсць перерыву між закрываючымя складаннем кліента і response =; калі копіюеце яго, раздзеліце іх на два запэўнення:
client = OpenAI(
api_key=os.environ.get("ANTHROPIC_API_KEY"),
base_url="https://api.anthropic.com/v1/",
)response = client.chat.completions.create(
model="claude-opus-5",
messages=[{"role": "user", "content": "Explain how AI works"}],
)
Для простага завершэння чату гэта ўсё, што трэба зробіць пад час майграцыі. Усё, што залежыць ад вышэ пераказаных проблем, трэба рашыць адзінакава. Якщо ваша прыменне залежыць ад строгіх схемаў інструментоў, ад кэшавання запытак чы ўсьго розгледнутага выходу працы мозга, вам трэба вжываць натыўны API Anthropic, каб атрымаць полную функцыянальнасць, а не його апрант на кшталт OpenAI. Назвы модэляў, такія як тая, што паказана, часта зменяюцца, таму пераканайцеся ў актуальным ідэнтыфікаторы ў спісе модэляў прадаўцы.
Настоўкі SDK OpenAI на Gemini
Версія Gemini таго ж механізма абстракцыі нацэлена на канцэнтры Google. Для ўжытку патрэбны ключ API Gemini, які можна стварыць у Google AI Studio. Як і раней, патрэбна толькі стандартная можлівасць імпорту з OpenAI:
from openai import OpenAI
Кліент выкарыстоўвае ключ Gemini і базовую URL Google, сумэжную з OpenAI; тэла запыту не зменяецца. Хтоўна тут таксама ўсё той жа недастатак перыядаў, а місце для ключа, заданае жорсткаяму коду, краща заменіць на змэнную сяродовышча, як у прыкладзе з Claude:
client = OpenAI(
api_key="YOUR_GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
)response = client.chat.completions.create(
model="gemini-3.7-flash",
messages=[{"role": "user", "content": "Explain how AI works"}],
)
Як стрімінг, так і вызов функцый працуюць через гэты канцэнтр. Контроль процеса разумовых вычыслаў у Gemini адкрываецца через параметр reasoning_effort у OpenAI, але гэтае супараднаванне не завжды ўсё абоцэна і залежыць ад таго, які модель Gemini вы карыстаецеся. Якщо хочаце, каб новая функцыя, прызначаная толькі для Gemini, была доступна як толькі ёй будзе выдана, натыўны SDK застаецца шырэйшым спосабам.
А як ўжо сам GPT?
Сам API OpenAI не патрабуея слоя сумэснасці, таму што ён визначае формат, які наследзяюць усі іншы. Гэта не рашае проблэму калькольвіх прадаўцоў, яна толькі перасувае яе. Код, напісаны па формату OpenAI, спрыяе лёгкам уведзенню слоў Anthropic і Google пазней, але вы все рава мусіце вядомаць разныя ключы, разныя ліміты швайнаў і разныя особлівасці для кожнага прадаўца.
Перадача кожнага модэлю через адны шлях
Ніякі з саеўных слоёў прадаўцоў не рашае проблэму калькольвіх прадаўцоў, адтуды што кожны з іх перадае толькі да своих сабеўных модэляў. Шлях LLM заполняе гэты прыём: адны пункт выходу, сумэсны з OpenAI, які перадае запыткі да Claude, GPT або Gemini залежна ад model, які вы задаеце, таму ваш код больш не патрабуея стежыць за тым, якія особлівасці належаць кожнаму прадаўцу.
Міграцыя выглядае абсалютна так сама, як і дві паказваныя раней. У прыкладе нижэй викорыстоўваецца канечная точка аднае з комерчыях прабрама; той самы прынцып дапраўнае для будзь-якай прабрамы, сумесной з OpenAI. Процэс імпорту застаецца незменным:
from openai import OpenAI
Кліент тепер вказывае на базовую URL прабрамы за дапамогою ключа прабрамы, а назва модэлю выбірае постачальніка дадзеных. Як і раней, трэба дагадзіць перыяд пры response =:
client = OpenAI(
api_key="YOUR_SAYGM_API_KEY",
base_url="https://api.saygm.com/v1",
)response = client.chat.completions.create(
model="claude-opus-5",
messages=[{"role": "user", "content": "Explain how AI works"}],
)
Ёдынным змянам, якія трэба адкарысты, каб перайсці на іншага прадастоўца, ёст тое, што model трэба змяніць на gpt-5.6-luna або gemini-3.7-flash; усе інша застаёцца такім, як і ў пачатку. Лячыце гэтыя назвы модэляў як прыклады, якія ўзяты на момент напісання, і пераканайцеся ў каталозе модэляў гейтвэю ў паўнай варыянцы ідэнтыфікатораў. Адна і тая ж настройка працуе ў інструментах для разработчыкаў, якія вже чытаюць настройкі сумесныя з OpenAI, такіх як Cursor, Cline, Claude Code і Vercel AI SDK: адна базовая URL і адны ключ прадаюць усе модэлі, якія прыступае гейтвэй, а не толькі спектр модэляў адзінаго прадастоўцы. Кожны інструмент мае своія назвы поль для базовай URL і ключа, таму для точных наяўнасці настройкаў кансультуйцеся з дакументацыяй інтеграціі гейтвэю.
Што гейтвэй не зміняе
Перадача пакета через шлюз не скасоўвае ліміты, прынятныя для адпаведнага прадаўца ў кантэксте сумеснасці. Надсылка запитаў да Claude у формате OpenAI через шлюз таксама не дае можлівасці кэшавання запитоў чы абавязковага выкарыстоўвання строгіх схем; усе вышэ пераказаныя ліміты застаюцца чыннымі.
Шлюзы таксама стаюць часткай вашага межовага прынцыпу довер'я, таму што кожны запит і адпаведна адпаведзь праходзяць через яны. Дзеякія прадаўцы аганізуюць заходы захоплення конфідэнцыйнасці, напрыклад, обробку запитоў у атеставаных апаратнымі засобамі средах доверлівай експансіі, каб аператар шлюза не могў чытаць трафік. Такія гарантіі стосуюцься толькі шлюза; прадаўца модэля все равно прыме і обробіць ваш запит па своіх умовах. Аднойчы ацэніце оба слою окрема і пераканайцеся ў правдзі твэрджэнняў прадаўцы, аналізаваючы яе тэхнічную дакументацыю, а не маркетынгавыя матэрыялы.
Пашчараваныя пытанні пра міграцыю
Чы рэалізуюцца функцыі, спецыфічныя для Claude чы Gemini, праз слой, сумесны з OpenAI?
Толькі тыя функцыі, якіе можа перадаць гэты слой. Незалежна ад таго, чы вы калічуеце власны канцэнтрык сумеснасці прадаста чы праходзите через гэйтвей, все, што не можа быть перакладзена, губіцца. У Claude да гэтага належы кэшаванне запитоў, обробка PDF-файлаў і весь расширэны выхід думак; у Gemini — параметры разумовага аналізу, спецыфічныя для модэлю. Якщо вы залежыце ад гэтага, вам трэба калічуць натыўны API для тых кодавых шляхоў.
Скількі кошта пераход?
За дапамогою гэйтвей зазвычай плаціце за кожны токен, прыблізна як і калі калічуеце прадаста безпосередна, але тарыфы разніцяюцца залежна ад модэлю і вендора, а дзеяныя гэйтвейі дадаюць надбавку. Перш чы пераносіць трафік у працоўны режым, пераканайцеся ў актуальных публікуемых цэнах для конкретнага модэлю.
Што будзе, калі у прадаста ўтраты супрацоўкі?
Это найбольшыя аргументы на падтрымку едзінага канцэнтра. Шлюз, створанный для автоматычнага переходу на альтернатыўны варіант, можа перенаправіць трафік на запасны модель без жадных змян у коде прыемліка, тады калі кожна з трох прымусовых інтеграцый выклікае патрэбнае ў сабе логіку перапрыбуткі спроб і альтернатыўных рашэнняў. Памятайце, што запасны модель — гэта аднае з іншых модэляў: запрасы, налаштаваныя для Claude, можа будуць дзейсніць інача на Gemini, а надзеянасць у вызыванні інструментаў разлічыцца. Перад тым, як паспеліваць на автоматычны переход, працаваце з вашымі критычнымі запрасамі на кожнай модэлі з ланцуга запасных варыянтаў.
Выбір шляху міграцыі
- Адзін дапаможны прадаўцы: выкорыстоўваеце сабскай OpenAI-сумесны канцэнтра таго прадаўцы. Гэта самэ прызначэнне такога канцэнтра, а налаштаванне выконваецца за тры рэчы.
Які бы шлях вы не выбралі, зберагачыце базовую URL-адрэсу, ключ і назву моделі ў настройках, а не ў кодзе, і дадаце тэсты інтеграціі для пераканання, што ваша прыкладна програма правільна функцыонуе, напрыклад, што яна дотрываецца стандартам вызоў інструментаў. Так падзея, калі параметр не будзе переданы, будзе выказвацца як невялікі брак у тэстах, а не як інцыдент у працэсе выконання.
Галоўныя выводы
- Канцэнтры падтрымкі OpenAI адпавядаюць формату запытоў, а не кожнай іх функцыі; параметры, якія не падтрымваюцца, часта ігнаруюцца без выдачы памылкі.
- Слою Anthropic не ўважаецца схемы інструментам
strict, няма функцыі кэшавання запитоў, а системныя паведамленні злучаюцца, і ён задокументаваны як спосаб тэставання. - Слою Gemini добра падтрымлівае чат, стрімінг і вызыв функцый, але опцыі, спецыфічныя для прадаўцаў, яшчэ трэбуюць власнага API.
- Одна шлюзавая система спростоўляе роботу з ключамі, білінгам і перехадам на альтернатыўны прадаўца, але ўспадкуе всі обмежэнні сумеснасці і дадае ўтратаўцаў у вашыя межы довер'я.