Futtasson helyi, OpenAI-kompatibilis proxyt minden jelentős felhőalapú AI-szolgáltatáshoz. Az API-kulcsokat csak egyszer mentse el, így bármely kliensalkalmazás — asztali, mobil- vagy webalkalmazás — kommunikálhat http://localhost ahelyett, hogy minden eszközben külön regisztrálná a kulcsokat.
Első 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 részből áll:
- Proxykiszolgáló — az aktuális állapot, az alap-URL, valamint a figyelő elindítására vagy leállítására szolgáló gomb
- Bearer token — opcionális hitelesítési kapcsoló és a token megjelenítése
- Szolgáltatók — minden támogatott felhőalapú AI-szolgáltató, mindegyik mellett egy API-kulcs beállítása gombbal
2. Adja hozzá az első API-kulcsát
- Válasszon egy szolgáltatót a Szolgáltatók listájából (például OpenAI (ChatGPT))
- Kattintson az API-kulcs beszerzése gombra a szolgáltató konzoljának böngészőben történő megnyitásához, majd hozzon létre vagy másoljon ki egy kulcsot
- Kattintson az API-kulcs beállítása ugyanabban a sorban, és illessze be az értéket a párbeszédablakba
- Kattintson az Mentés. Az állapotjelző zöld színű Beállítva feliratra vált
3. Csatlakoztasson egy kliensalkalmazást
Irányítson bármely OpenAI-kompatibilis klienst a proxyra. Az alap-URL: http://localhost:8421/<provider>/v1. A szolgáltatói útvonalszakasz határozza meg, melyik felhő kapja meg a kérést.
# Example: OpenAI Python SDK pointed at the proxy
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 a felsőbb szintű szolgáltatás hitelesítő adatait.
A felület áttekintése
Proxykiszolgáló panel
| Mező | Leírás |
|---|---|
| Állapot | Fut ha a figyelő aktív, Leállítva egyébként. |
| Alap-URL | A kliensalkalmazások által használandó cím, az állomásnévvel és a porttal együtt. Kattintson a Másolás gombra a vágólapra másoláshoz. |
| Indítás / Leállítás gomb | A HTTP-figyelő be- és kikapcsolása az alkalmazás bezárása nélkül. |
Bearer token panel
- Bearer tokenes hitelesítés megkövetelése — jelölőnégyzet a hitelesítés be- vagy kikapcsolásához. Alapértelmezés szerint ki van kapcsolva a zökkenőmentes helyi használat érdekében.
- Tokenmező — az aktuális token írásvédett megjelenítése. Pontokkal takarva jelenik meg; használja a Másolás gombot a kimásolásához.
- Újragenerálás — új, véletlenszerű token létrehozása. A meglévő klienseket frissíteni kell az új értékkel.
Szolgáltatók panel
Minden támogatott felhőszolgáltatóhoz egy sor tartozik. Az egyes sorok tartalma:
- A megjelenített név (például Claude (Anthropic))
- Beállítási állapot — zöld Beállítva ha van mentett API-kulcs, szürke Nincs beállítva egyébként
- A kliensek által használt URL-útvonal, például
/anthropic/v1/chat/completions - API-kulcs beállítása — megnyit egy párbeszédablakot a hitelesítő adatok megadásához
- API-kulcs beszerzése — megnyitja a szolgáltató konzolját a böngészőben
Támogatott szolgáltatók
Tizenegy felhőalapú AI-szolgáltatás van beépítve. A legtöbb natívan az OpenAI Chat Completions formátumát használja, és változtatás nélkül kerül proxyzásra. Három szolgáltatás (Anthropic, Gemini, ERNIE) saját protokollt használ; az AIProxyServer menet közben átalakítja a kéréseket és válaszokat, így a kliens mindig csak OpenAI-formátumot lát.
| Szolgáltató | Útvonal-előtag | Szükséges adat |
|---|---|---|
| OpenAI (ChatGPT) | /openai/v1 | API-kulcs innen: platform.openai.com |
| Claude (Anthropic) | /anthropic/v1 | API-kulcs az Anthropic Console felületéről |
| Gemini (Google) | /gemini/v1 | API-kulcs a Google AI Studio felületéről |
| Grok (xAI) | /grok/v1 | API-kulcs az xAI Console felületéről |
| Azure OpenAI (Copilot) | /copilot/v1 | API-kulcs és a telepítés végpontjának URL-je |
| Perplexity | /perplexity/v1 | API-kulcs a Perplexity beállításaiból |
| Groq | /groq/v1 | API-kulcs a Groq Cloud felületéről |
| DeepSeek | /deepseek/v1 | API-kulcs a DeepSeek Platform felületéről |
| Kimi (Moonshot) | /kimi/v1 | API-kulcs a Moonshot Console felületéről |
| Qwen (DashScope) | /qwen/v1 | API-kulcs az Alibaba DashScope felületéről |
| ERNIE (Baidu) | /ernie/v1 | API Key és Secret Key egyaránt a Baidu Qianfan felületérő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-01útvonalat. - ERNIE — a Baidu Qianfan OAuth-hitelesítést használ, ezért az API Key és a Secret Key egyaránt szükséges. Az AIProxyServer a háttérben kéri le é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; ezt a proxy hozzáadja Ön helyett. Az ingyenes csomag percenkénti kvótái továbbra is érvényesek.
API-referencia
Végpontok
| Metódus | Útvonal | Leírás |
|---|---|---|
| GET | /health | Életképességi ellenőrzés. Visszaadja a szolgáltatás állapotát és a szolgáltatók listáját. Nem igényel hitelesítést. |
| GET | /v1/providers | Beállított szolgáltatók és metaadatok. |
| GET | /<provider>/v1/models | A megadott szolgáltató modelljeinek listája OpenAI-formátumban. |
| POST | /<provider>/v1/chat/completions | OpenAI Chat Completions kérés. SSE használatához adja át a stream:true értéket. |
Adatfolyam
Amikor a kliens a "stream": trueértéket küldi, a proxy Server-Sent Events eseményekkel válaszol az OpenAI formátumában:
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 adatfolyamai erre a formára alakulnak át, így minden kliens ugyanazt az elemzőt használhatja.
Hitelesítési fejléc
Amikor a Bearer tokenes hitelesítés megkövetelése beállítás aktív, minden kéréshez küldje el a főablakban látható tokent:
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ával.
| Beállítás | Alapértelmezett érték | Leírás |
|---|---|---|
| Proxyport | 8421 | Az a TCP-port, amelyhez a figyelő kapcsolódik. A módosítás a proxy újraindítását igényli. |
| Kiszolgáló automatikus indítása | Be | A proxy elindítása az alkalmazás indításakor. |
| LAN-hozzáférés engedélyezése | Ki | Kikapcsolt állapotban a proxy csak ehhez kapcsolódik: 127.0.0.1. Bekapcsolt állapotban a Wi-Fi-hálózat más eszközei is elérhetik a proxyt. |
| Bearer token megkövetelése | Ki | Bekapcsolt állapotban minden kérésnek tartalmaznia kell a főablakban megjelenő tokent. Kifejezetten ajánlott, ha a LAN-hozzáférés engedélyezve van. |
Klienspé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 via the same OpenAI shape
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", # ignored when Bearer Token is off
)
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
// Using any OpenAI-compatible Dart client
final client = OpenAIClient(
baseUrl: 'http://localhost:8421/anthropic/v1',
apiKey: '', // unused when Bearer Token is off
);
localhost értéket a Mac LAN-IP-címére (amely az Alap-URL mezőben látható, amikor a LAN-hozzáférés engedélyezése beállítás aktív).Tippek
- Helyi fejlesztés közben hagyja kikapcsolva a Bearer tokent; kapcsolja be, amint engedélyezi a LAN-hozzáférést.
- Használjon szolgáltatónként eltérő alap-URL-t a klienskódban, így egyetlen konstans módosításával válthat szolgáltatót.
- A proxy automatikusan elindul, de portütközés esetén ideiglenesen leállíthatja a főablakból.
- Ha egy szolgáltató ingyenes csomagja sebességkorlátozást alkalmaz, a felsőbb szintű hibaüzenet változtatás nélkül továbbítódik. A kliens elől nincs elrejtve újrapróbálkozási logika.
- A
/v1/providersvégpont segítségével futásidőben megállapítható, mely szolgáltatók vannak beállítva.
Hibaelhárítás
A proxy nem indul el
- Lehet, hogy egy másik folyamat már használja a 8421-es portot. Módosítsa a portot a Beállításokban, majd indítsa újra a proxyt.
- Ellenőrizze a rendszernaplóban az indításkor megjelenített hibaüzenetet.
A kérés 401 Unauthorized választ ad
- A Bearer token megkövetelése be van kapcsolva, de a kliens nem küldött megfelelő
Authorization: Bearer ...fejlécet. - Lehet, hogy a szolgáltató saját API-kulcsa érvénytelen — a felsőbb szintű hiba továbbítódik, ezért ellenőrizze az üzenettörzset.
A kérés „API key is not configured” választ ad
- Nyissa meg a Szolgáltatók listáját, és kattintson a API-kulcs beállítása gombra az érintett szolgáltatónál.
- Az ERNIE esetében az API Key és a Secret Key mezőt is ki kell tölteni. Az Azure OpenAI esetében az Endpoint Base URL is kötelező.
A mobileszköz nem éri el a proxyt
- Kapcsolja be a LAN-hozzáférés engedélyezése beállítást a Beállításokban.
- Az Alap-URL mezőben megjelenő LAN-IP-címet használja, ne a
localhost. - értéket. Győződjön meg arról, hogy mindkét eszköz ugyanahhoz a Wi-Fi-hálózathoz csatlakozik, és hogy a tűzfal engedélyezi a bejövő kapcsolatokat a proxy portján.
Az adatfolyam-válaszok egyszerre érkeznek meg
- Győződjön meg arról, hogy a kliens elküldi a
"stream": trueértéket a JSON-törzsben. - Egyes HTTP-könyvtárak alapértelmezés szerint pufferelik az SSE-adatokat — tiltsa le a válaszpufferelést a kliensoldalon.
Adatvédelem
- Az API-kulcsokat Fernet-titkosítással tárolja a rendszer itt:
~/Library/Application Support/AIProxyServer/credentials.enc. A titkosítási kulcs amaster.keyfájlban 0600 jogosultságokkal rendelkezik. - A Bearer token engedélyezés esetén szintén kizárólag a titkosított tárolóban található, és soha nem kerül a hagyományos beállításfájlba.
- A proxy csak azoknak a szolgáltatóknak továbbít kéréseket, amelyeket Ön kifejezetten beállított. Más kimenő hívást nem végez.
- Nincs telemetria, elemzés vagy összeomlás-jelentés.
- Az alapértelmezett hálózati kötés kizárólag
127.0.0.1. A LAN-on való elérhetőség külön engedélyezhető. - A beszélgetések tartalmát a rendszer nem tárolja. Az AIProxyServer továbbítja a bájtokat, majd azonnal elfelejti őket.