Futtasson helyi OpenAI-kompatibilis proxyt minden főbb felhőalapú AI szolgáltatáshoz. Tárolja az API kulcsokat egyszer, és hagyja, hogy bármely kliensalkalmazás — asztali, mobil vagy webes — a http://localhost címmel kommunikáljon, ahelyett hogy minden eszközben regisztrálná a kulcsokat.
Kezdő lépések
1. Indítsa el az alkalmazást
Nyissa meg az AIProxyServer alkalmazást. Az első indításkor a proxy automatikusan elindul és a helyi gép 8421 portján figyel. A főablak három szakaszt mutat:
- Proxy Server — aktuális állapot, alap URL, és gomb a figyelő indítására vagy leállítására
- Bearer Token — opcionális hitelesítési kapcsoló és token megjelenítés
- Providers — minden támogatott felhő AI szolgáltató, soronként Set API Key gombbal
2. Adja hozzá az első API kulcsát
- Válasszon bármilyen szolgáltatót a Providers listából (például OpenAI (ChatGPT))
- Kattintson a Get API key gombra a szolgáltató konzoljának megnyitásához a böngészőben, majd hozzon létre vagy másoljon egy kulcsot
- Kattintson a Set API Key gombra ugyanabban a sorban, és illessze be az értéket a párbeszédablakba
- Kattintson a Save gombra. Az állapot címke zöld Configured-ra vált
3. Csatlakoztasson egy kliensalkalmazást
Irányítson bármely OpenAI-kompatibilis klienst a proxyhoz. Az alap URL http://localhost:8421/<provider>/v1. A provider szegmens választja ki, melyik felhő kapja a kérést.
# Példa: OpenAI Python SDK proxyra irányítva
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8421/openai/v1",
api_key="not-used-but-required-by-sdk",
)
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)
A kliens soha nem látja a valódi kulcsot. Az AIProxyServer a kérés továbbításakor csatolja az upstream hitelesítő adatokat.
Felület áttekintése
Proxy Server panel
| Mező | Leírás |
|---|---|
| Status | Running, ha a figyelő aktív, egyébként Stopped. |
| Base URL | A cím, amelyet a kliensalkalmazásoknak használniuk kell, a hostnévvel és porttal együtt. Kattintson a Copy gombra a vágólapra másoláshoz. |
| Start / Stop gomb | Be- és kikapcsolja a HTTP figyelőt az alkalmazás kilépése nélkül. |
Bearer Token panel
- Require Bearer Token authentication — jelölőnégyzet a hitelesítés be- vagy kikapcsolására. Alapértelmezetten kikapcsolva, kényelmes helyi használathoz.
- Token mező — az aktuális token csak olvasható megjelenítése. Pontokként jelenik meg; használja a Copy gombot a lekéréshez.
- Regenerate — új véletlenszerű tokent állít elő. A meglévő klienseket frissíteni kell az új értékkel.
Providers panel
Egy sor minden támogatott felhőszolgáltatóhoz. Minden sor megjeleníti:
- A megjelenített nevet (például Claude (Anthropic))
- Konfigurációs állapot — zöld Configured, ha az API kulcs el van mentve, egyébként szürke Not configured
- Az URL útvonal, amelyet a kliensek használnak, pl.
/anthropic/v1/chat/completions - Set API Key — megnyit egy párbeszédablakot a hitelesítő adatok beviteléhez
- Get API key — megnyitja a szolgáltató konzolját a böngészőben
Támogatott Providers
Tizenegy felhőalapú AI szolgáltatás van mellékelve. A legtöbb natív módon használja az OpenAI Chat Completions formátumot, és úgy ahogy van, proxyzva van. Három (Anthropic, Gemini, ERNIE) saját protokollt használ; az AIProxyServer menet közben fordítja a kéréseket és válaszokat, így a kliens csak OpenAI formákat lát.
| Provider | Útvonal előtag | Mire van szüksége |
|---|---|---|
| OpenAI (ChatGPT) | /openai/v1 | API kulcs innen: platform.openai.com |
| Claude (Anthropic) | /anthropic/v1 | API kulcs az Anthropic Console-ból |
| Gemini (Google) | /gemini/v1 | API kulcs a Google AI Studio-ból |
| Grok (xAI) | /grok/v1 | API kulcs az xAI Console-ból |
| Azure OpenAI (Copilot) | /copilot/v1 | API kulcs plusz a telepítési végpont URL-je |
| Perplexity | /perplexity/v1 | API kulcs a Perplexity beállításokból |
| Groq | /groq/v1 | API kulcs a Groq Cloud-ból |
| DeepSeek | /deepseek/v1 | API kulcs a DeepSeek Platform-ról |
| Kimi (Moonshot) | /kimi/v1 | API kulcs a Moonshot Console-ból |
| Qwen (DashScope) | /qwen/v1 | API kulcs az Alibaba DashScope-ból |
| ERNIE (Baidu) | /ernie/v1 | Mind az API Key, mind a Secret Key a Baidu Qianfan-ból |
Szolgáltatóspecifikus megjegyzések
- Azure OpenAI — illessze be a teljes telepítési végpontot az Endpoint Base URL mezőbe, például
https://my-resource.openai.azure.com/openai/deployments/gpt-4o. A proxy automatikusan hozzáfűzi a/chat/completions?api-version=2024-02-01elemet. - ERNIE — a Baidu Qianfan OAuth-ot használ, így mind az API Key, mind a Secret Key szükséges. Az AIProxyServer a háttérben kéri és gyorsítótárazza a hozzáférési tokeneket.
- Gemini — a hitelesítés URL lekérdezési paraméterrel történik; a proxy hozzáadja Ön helyett. Az ingyenes csomag percenkénti kvótái továbbra is érvényesek.
API hivatkozás
Végpontok
| Metódus | Útvonal | Leírás |
|---|---|---|
| GET | /health | Életjel-ellenőrzés. Visszaadja a szolgáltatás állapotát és a szolgáltatók listáját. Nincs szükség hitelesítésre. |
| GET | /v1/providers | Konfigurált szolgáltatók és metaadatok. |
| GET | /<provider>/v1/models | A megadott szolgáltató modelllistája, OpenAI formátumban. |
| POST | /<provider>/v1/chat/completions | OpenAI Chat Completions kérés. Adja át a stream:true-t SSE-hez. |
Streaming
Amikor a kliens elküldi a "stream": true-t, a proxy Server-Sent Events-szel válaszol OpenAI formátumban:
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"delta":{"role":"assistant"},...}]}
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"delta":{"content":"Hello"},...}]}
data: [DONE]
Az Anthropic és Gemini natív streamjei erre az alakra vannak átfordítva, így minden kliens egyetlen elemzőt használhat.
Hitelesítési fejléc
Amikor a Require Bearer Token authentication be van kapcsolva, minden kéréssel küldje el a tokent a főablakból:
Authorization: Bearer <token-shown-in-app>
Beállítások
Nyissa meg a Beállítások ablakot az alsó eszköztár fogaskerék ikonjáról.
| Beállítás | Alapértelmezett | Leírás |
|---|---|---|
| Proxy Port | 8421 | A TCP port, amelyhez a figyelő kapcsolódik. A változtatás a proxy újraindítását igényli. |
| Auto Start Server | On | Elindítja a proxyt az alkalmazás indulásakor. |
| Allow LAN Access | Off | Kikapcsolva a proxy csak a 127.0.0.1-hez kapcsolódik. Bekapcsolva a Wi-Fi-n lévő más eszközök is elérik a proxyt. |
| Require Bearer Token | Off | Bekapcsolva minden kérésnek tartalmaznia kell a főablakban megjelenített tokent. Erősen ajánlott, amikor az Allow LAN Access be van kapcsolva. |
Kliens példák
cURL
# OpenAI (passthrough)
curl http://localhost:8421/openai/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "Hello"}]
}'
# Claude ugyanazon OpenAI formán keresztül
curl http://localhost:8421/anthropic/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"messages": [{"role": "user", "content": "Hello"}],
"max_tokens": 1024
}'
OpenAI Python SDK
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8421/gemini/v1",
api_key="placeholder", # figyelmen kívül hagyva, ha a Bearer Token ki van kapcsolva
)
stream = client.chat.completions.create(
model="gemini-2.0-flash",
messages=[{"role": "user", "content": "Tell me a joke"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)
Flutter / Dart
// Bármely OpenAI-kompatibilis Dart kliens használatával
final client = OpenAIClient(
baseUrl: 'http://localhost:8421/anthropic/v1',
apiKey: '', // nem használt, ha a Bearer Token ki van kapcsolva
);
localhost-ot a Mac LAN IP-címére (a Base URL mezőben jelenik meg, amikor az Allow LAN Access be van kapcsolva).Tippek
- Hagyja kikapcsolva a Bearer Token-t, amíg helyben fejleszt; kapcsolja be abban a pillanatban, amikor engedélyezi a LAN hozzáférést.
- Használjon különböző Base URL-eket szolgáltatónként a kliens kódjában, hogy egyetlen konstans módosításával válthasson szolgáltatót.
- A proxy automatikusan elindul, de a főablakból ideiglenesen leállíthatja, ha port ütközés lép fel.
- Ha egy szolgáltató ingyenes csomagja korlátozza a sebességet, az upstream hibaüzenet szó szerint továbbítódik. Semmilyen újrapróbálkozási logika nincs elrejtve a kliens elől.
- A
/v1/providersvégpont hasznos annak felfedezésére, mely szolgáltatók vannak konfigurálva futás közben.
Hibaelhárítás
A proxy nem indul el
- Egy másik folyamat már használhatja a 8421-es portot. Módosítsa a portot a Beállításokban, és indítsa újra a proxyt.
- Ellenőrizze a rendszernaplót az indításkor megjelenített hibaüzenet miatt.
A kérés 401 Unauthorized-ot ad vissza
- A Bearer Token követelmény be van kapcsolva, de a kliens nem küldött megfelelő
Authorization: Bearer ...fejlécet. - A szolgáltató saját API kulcsa érvénytelen lehet — az upstream hiba továbbítva van, ezért ellenőrizze az üzenet törzsét.
A kérés "API key is not configured" választ ad
- Nyissa meg a Providers listát, és kattintson a Set API Key gombra a kérdéses szolgáltatónál.
- Az ERNIE esetén mind az API Key, mind a Secret Key kitöltése szükséges. Az Azure OpenAI esetén az Endpoint Base URL is szükséges.
A mobil eszköz nem éri el a proxyt
- Kapcsolja be az Allow LAN Access opciót a Beállításokban.
- Használja a Base URL mezőben megjelenő LAN IP-címet, ne a
localhost-ot. - Győződjön meg róla, hogy mindkét eszköz ugyanazon a Wi-Fi hálózaton van, és hogy a tűzfal engedélyezi a bejövő kapcsolatokat a proxy portján.
A streaming válaszok egyszerre érkeznek
- Győződjön meg róla, hogy a kliens a
"stream": true-t küldi a JSON törzsben. - Egyes HTTP könyvtárak alapértelmezés szerint bufferelik az SSE-t — tiltsa le a válaszbufferelést a kliens oldalon.
Adatvédelem
- Az API kulcsok Fernet-tel titkosítva vannak tárolva itt:
~/Library/Application Support/AIProxyServer/credentials.enc. A titkosítási kulcs amaster.key-ben 0600 jogosultságokkal rendelkezik. - A Bearer Token, ha engedélyezve van, szintén csak a titkosított széfben tárolódik, és soha nem íródik a normál beállítások fájlba.
- A proxy csak az Ön által kifejezetten konfigurált szolgáltatókhoz továbbítja a kéréseket. Nem végez más kimenő hívásokat.
- Nincs telemetria, nincs analitika, nincs összeomlás-jelentés.
- Az alapértelmezett hálózati kapcsolódás csak a
127.0.0.1. A LAN-ra való kitettség opcionális. - A beszélgetések tartalmát nem tárolja. Az AIProxyServer továbbítja a byte-okat, és azonnal elfelejti őket.