AIProxyServer - Útmutató

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

  1. Válasszon egy szolgáltatót a Szolgáltatók listájából (például OpenAI (ChatGPT))
  2. 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
  3. Kattintson az API-kulcs beállítása ugyanabban a sorban, és illessze be az értéket a párbeszédablakba
  4. 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
ÁllapotFut ha a figyelő aktív, Leállítva egyébként.
Alap-URLA 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 gombA 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.
Figyelem: Ha engedélyezi a LAN-hozzáférés engedélyezése beállítást anélkül, hogy bekapcsolná a tokent, az azonos Wi-Fi-hálózaton bárki használhatja a proxyt és az API-kulcsait. A tokenpanel alatti súgószöveg figyelmezteti, ha ilyen állapot áll fenn.

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őtagSzükséges adat
OpenAI (ChatGPT)/openai/v1API-kulcs innen: platform.openai.com
Claude (Anthropic)/anthropic/v1API-kulcs az Anthropic Console felületéről
Gemini (Google)/gemini/v1API-kulcs a Google AI Studio felületéről
Grok (xAI)/grok/v1API-kulcs az xAI Console felületéről
Azure OpenAI (Copilot)/copilot/v1API-kulcs és a telepítés végpontjának URL-je
Perplexity/perplexity/v1API-kulcs a Perplexity beállításaiból
Groq/groq/v1API-kulcs a Groq Cloud felületéről
DeepSeek/deepseek/v1API-kulcs a DeepSeek Platform felületéről
Kimi (Moonshot)/kimi/v1API-kulcs a Moonshot Console felületéről
Qwen (DashScope)/qwen/v1API-kulcs az Alibaba DashScope felületéről
ERNIE (Baidu)/ernie/v1API 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ÚtvonalLeí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/providersBeállított szolgáltatók és metaadatok.
GET/<provider>/v1/modelsA megadott szolgáltató modelljeinek listája OpenAI-formátumban.
POST/<provider>/v1/chat/completionsOpenAI 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ásAlapértelmezett értékLeírás
Proxyport8421Az 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ásaBeA proxy elindítása az alkalmazás indításakor.
LAN-hozzáférés engedélyezéseKiKikapcsolt á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éseKiBekapcsolt á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
);
Wi-Fi-hálózaton lévő mobileszközök: cserélje le a 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/providers vé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 a master.key fá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.