
Konvertieren Sie verschiedene Modell -APIs in das OpenAI -API -Format aus der Box.
10 MB+ Widget, das die Umwandlung verschiedener Modell -APIs in OpenAI -API -Formate ermöglicht.
Aktuelle unterstützte Modelle:
Besuchen Sie die GitHub -Release -Seite, um die Ausführungsdatei herunterzuladen, die zu Ihrem Betriebssystem passt.

Oder verwenden Sie Docker Pull, um die angegebene Version der Bilddatei herunterzuladen:
docker pull soulteary/amazing-openai-api:v0.7.0 AOA muss keine Konfigurationsdateien schreiben und das Anwendungsverhalten anpassen, indem Umgebungsvariablen angegeben werden, einschließlich "Auswahl des Arbeitsmodells", "für den Modellbetrieb erforderliche Parameter erforderlich" und "Einstellung von Modellkompatibilität Alias".
./aoa setzt AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ Programm das Arbeitsmodell auf azure .
AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ ./aoaWenn Sie Docker bevorzugen, können Sie den folgenden Befehl verwenden:
docker run --rm -it -e AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ -p 8080:8080 soulteary/amazing-openai-api:v0.7.0 Nach dem Start des Dienstes können wir auf denselben API -Service wie OpenAI zugreifen, indem wir http://localhost:8080/v1 besuchen.
Sie können curl verwenden, um einen kurzen Test durchzuführen:
curl -v http://127.0.0.1:8080/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer 123 "
-d ' {
"model": "gpt-4",
"messages": [
{
"role": "system",
"content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."
},
{
"role": "user",
"content": "Compose a poem that explains the concept of recursion in programming."
}
]
} 'Sie können auch die offizielle OpenAI-SDK für Anrufe oder jede OpenAI-kompatible Open-Source-Software verwenden (weitere Beispiele siehe Beispiel):
from openai import OpenAI
client = OpenAI (
api_key = "your-key-or-input-something-as-you-like" ,
base_url = "http://127.0.0.1:8080/v1"
)
chat_completion = client . chat . completions . create (
messages = [
{
"role" : "user" ,
"content" : "Say this is a test" ,
}
],
model = "gpt-3.5-turbo" ,
)
print ( chat_completion ) Wenn Sie den API -Schlüssel nicht der Anwendung aussetzen möchten oder sich besorgt darüber machen, ob verschiedene komplexe Open -Source -Software das Risiko einer API -Schlüssel -Leckage haben, können wir eine zusätzliche Variable AZURE_API_KEY=你的API Key konfigurieren, und dann müssen verschiedene Open -Source -Software den API -Schlüssel nicht ausfüllen (oder füllen Sie sie einfach).
Aufgrund einiger Einschränkungen der Azure und der schwierigen Anpassung der Modellanrufnamen in einer Open -Source -Software können wir natürlich die Modelle in der ursprünglichen Anfrage auf folgende Weise auf unseren realen Modellnamen abbilden. Ersetzen Sie beispielsweise GPT 3.5/4 durch yi-34b-chat :
gpt-3.5-turbo:yi-34b-chat,gpt-4:yi-34b-chat Wenn Sie yi-34b-chat oder gemini-pro verwenden möchten, müssen wir AOA_TYPE=yi oder AOA_TYPE=gemini festlegen, außer dass es keinen Unterschied gibt.
Das Projekt example die docker compose docker-compose.yml der drei derzeit unterstützten Modellschnittstellen.
Verwenden Sie dann docker compose up um den Dienst zu starten, und er kann schnell verwendet werden.
Passen Sie das Arbeitsmodell AOA_TYPE an, optionale Parameter, standardmäßig azure :
# 选择一个服务, "azure", "yi", "gemini"
AOA_TYPE: " azure " Programmdienstadresse, optionale Parameter, Standardeinstellungen auf 8080 und 0.0.0.0 :
# 服务端口,默认 `8080`
AOA_PORT: 8080
# 服务地址,默认 `0.0.0.0`
AOA_HOST: " 0.0.0.0 " Wenn wir den auf Azure bereitgestellten OpenAI -Dienst in einen Standard -OpenAI -Anruf konvertieren möchten, können wir den folgenden Befehl verwenden:
AZURE_ENDPOINT=https:// <你的 Endpoint 地址> .openai.azure.com/ AZURE_API_KEY= <你的 API KEY > AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35 ./amazing-openai-api Im obigen Befehl enthalten AZURE_ENDPOINT und AZURE_API_KEY Kernelemente im Azure OpenAI -Dienst, da der Einsatzname für Azure -Bereitstellung GPT 3.5/GPT 4 nicht zulässt, dass wir den Modellnamen in dem Inhalt, den wir mit dem realen Azure -Zulieferungsnamen angefordert haben AZURE_MODEL_ALIAS eingeschlossen werden können . Diese Technik kann sogar verwendet werden, um automatisch Modelle zu kartieren, die von verschiedenen Open-Source- und Closed-Source-Software an die gewünschten Modelle verwendet werden:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35,gpt-4:gpt-35 Da wir AZURE_API_KEY konfiguriert haben, müssen Sie keine Authorization: Bearer <你的API Key> (kann auch beiläufig geschrieben werden), unabhängig davon, ob es sich um Open -Source -Software oder curl -Anrufe handelt.

Wenn Sie immer noch das Hinzufügen von Authentifizierungsinhalten zu den Anforderungsheaderparametern gewohnt sind, können Sie den folgenden Befehl verwenden, der nicht AZURE_API_KEY enthält, und das Programm übergibt die Überprüfung an den Azure -Dienst:
AZURE_ENDPOINT=https:// <你的 Endpoint 地址> .openai.azure.com/ AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35 ./amazing-openai-api Wenn Sie selbst eine spezielle API -Version angeben möchten, können Sie AZURE_IGNORE_API_VERSION_CHECK=true angeben, um die Gültigkeit der API -Version des Programms selbst zu erzwingen.
Wenn Sie bereits über Azure GPT Vision verfügen, können Sie neben SDK -Aufrufen auch dieses Dokument verweisen und curl verwenden, um: GPT Vision zu rufen.
# (必选) Azure Deployment Endpoint URL
AZURE_ENDPOINT
# (必选) Azure API Key
AZURE_API_KEY
# (可选) 模型名称,默认 GPT-4
AZURE_MODEL
# (可选) API Version
AZURE_API_VER
# (可选) 是否是 Vision 实例
ENV_AZURE_VISION
# (可选) 模型映射别名
AZURE_MODEL_ALIAS
# (可选) Azure 网络代理
AZURE_HTTP_PROXY
AZURE_SOCKS_PROXY
# (可选) 忽略 Azure API Version 检查,默认 false,始终检查
AZURE_IGNORE_API_VERSION_CHECKWenn wir die offizielle YI -API in einen Standard -OpenAI -Anruf konvertieren möchten, können wir den folgenden Befehl verwenden:
AOA_TYPE=yi YI_API_KEY= <你的 API KEY > ./amazing-openai-api Ähnlich wie bei der Verwendung von Azure-Diensten können wir einen Trick verwenden, um die von uns gewünschten Modelle automatisch von verschiedenen Open-Source-Software, Closed-Source-Software, automatisch zu kartieren:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
YI_MODEL_ALIAS=gpt-3.5-turbo:yi-34b-chat,gpt-4:yi-34b-chat Wenn wir YI_API_KEY beim Starten des Dienstes konfigurieren, müssen wir keine Authorization: Bearer <你的API Key> (kann ihn auch curl schreiben), die eine strenge Isolation von API -Schlüssel liefert und die Sicherheit des API -Schlüssels verbessert.
Wenn Sie immer noch das Hinzufügen von Authentifizierungsinhalten zu den Anforderungsheaderparametern gewohnt sind, können Sie den folgenden Befehl verwenden, der nicht YI_API_KEY enthält, und das Programm übergibt die Überprüfung an den Yi -API -Dienst:
./amazing-openai-api # (必选) YI API Key
YI_API_KEY
# (可选) 模型名称,默认 yi-34b-chat
YI_MODEL
# (可选) YI Deployment Endpoint URL
YI_ENDPOINT
# (可选) API Version,默认 v1beta,可选 v1
YI_API_VER
# (可选) 模型映射别名
YI_MODEL_ALIAS
# (可选) Azure 网络代理
YI_HTTP_PROXY
YI_SOCKS_PROXYWenn wir die offizielle Gemini -API von Google in einen Standard -OpenAI -Anruf konvertieren möchten, können wir den folgenden Befehl verwenden:
AOA_TYPE=gemini GEMINI_API_KEY= <你的 API KEY > ./amazing-openai-api Ähnlich wie bei der Verwendung von Azure-Diensten können wir einen Trick verwenden, um die von uns gewünschten Modelle automatisch von verschiedenen Open-Source-Software, Closed-Source-Software, automatisch zu kartieren:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
GEMINI_MODEL_ALIAS=gpt-3.5-turbo:gemini-pro,gpt-4:gemini-pro Wenn wir beim Starten des Dienstes GEMINI_API_KEY konfigurieren, müssen wir nicht Authorization: Bearer <你的API Key> (kann ihn auch curl schreiben), die eine strenge Isolation von API -Schlüssel liefert und die Sicherheit des API -Schlüssels verbessert.
Wenn Sie immer noch das Hinzufügen von Authentifizierungsinhalten zu den Anforderungsheaderparametern gewohnt sind, können Sie den folgenden Befehl verwenden, der nicht GEMINI_API_KEY enthält, und das Programm übergibt die Überprüfung an Google AI -Dienste:
./amazing-openai-api # (必选) Gemini API Key
GEMINI_API_KEY
# (可选) Gemini 安全设置,可选 `BLOCK_NONE` / `BLOCK_ONLY_HIGH` / `BLOCK_MEDIUM_AND_ABOVE` / `BLOCK_LOW_AND_ABOVE` / `HARM_BLOCK_THRESHOLD_UNSPECIFIED`
GEMINI_SAFETY
# (可选) Gemini 模型 版本,默认 `gemini-pro`
GEMINI_MODEL
# (可选) Gemini API 版本,默认 `v1beta`
GEMINI_API_VER
# (可选) Gemini API 接口地址
GEMINI_ENDPOINT
# (可选) 模型映射别名
GEMINI_MODEL_ALIAS
# (可选) Gemini 网络代理
GEMINI_HTTP_PROXY
GEMINI_SOCKS_PROXY