
Convertissez différentes API de modèle en format API OpenAI hors de la boîte.
Widget de 10 Mo + qui permet la conversion de diverses API de modèle en formats API OpenAI hors de la boîte.
Modèles pris en charge actuels:
Visitez la page de version GitHub pour télécharger le fichier d'exécution qui convient à votre système d'exploitation.

Ou utilisez Docker Pull pour télécharger la version spécifiée du fichier image:
docker pull soulteary/amazing-openai-api:v0.7.0 AOA n'a pas besoin d'écrire de fichiers de configuration et peut ajuster le comportement de l'application en spécifiant les variables d'environnement, y compris la "sélection du modèle de travail", "Réglage des paramètres requis pour le fonctionnement du modèle" et "Réglage des alias de compatibilité du modèle".
Par ./aoa , le programme définira le modèle AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ travail sur azure .
AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ ./aoaSi vous préférez Docker, vous pouvez utiliser la commande suivante:
docker run --rm -it -e AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ -p 8080:8080 soulteary/amazing-openai-api:v0.7.0 Une fois le service démarré, nous pouvons accéder au même service API qu'Openai en visitant http://localhost:8080/v1 .
Vous pouvez utiliser curl pour effectuer un test rapide:
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."
}
]
} 'Vous pouvez également utiliser le SDK OpenAI officiel pour les appels, ou utiliser n'importe quel logiciel open source compatible OpenAI (pour plus d'exemples, voir l'exemple):
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 ) Si vous souhaitez ne pas exposer la clé API à l'application, ou si vous vous inquiétez de savoir si divers logiciels open source complexes ont le risque de fuite de clé de l'API, nous pouvons configurer un AZURE_API_KEY=你的API Key , puis divers logiciels open source n'ont pas besoin de remplir la clé API lors de la demande (ou simplement le remplir).
Bien sûr, en raison de certaines limites d'Azure et de l'ajustement difficile des noms d'appels de modèle dans certains logiciels open source, nous pouvons cartographier les modèles dans la demande d'origine à notre vrai nom de modèle de la manière suivante. Par exemple, remplacez GPT 3.5 / 4 par yi-34b-chat :
gpt-3.5-turbo:yi-34b-chat,gpt-4:yi-34b-chat Si vous souhaitez utiliser yi-34b-chat ou gemini-pro , nous devons définir AOA_TYPE=yi ou AOA_TYPE=gemini , sauf cela, il n'y a pas de différence.
Le projet contient le fichier docker compose docker-compose.yml trois interfaces example modèle actuellement prises en charge.
Ensuite, utilisez docker compose up pour démarrer le service et il peut être utilisé rapidement.
Ajustez le modèle de travail AOA_TYPE , paramètres facultatifs, par défaut à azure :
# 选择一个服务, "azure", "yi", "gemini"
AOA_TYPE: " azure " Adresse du service du programme, paramètres facultatifs, par défaut en 8080 et 0.0.0.0 :
# 服务端口,默认 `8080`
AOA_PORT: 8080
# 服务地址,默认 `0.0.0.0`
AOA_HOST: " 0.0.0.0 " Si nous souhaitons convertir le service OpenAI déployé sur Azure en un appel OpenAI standard, nous pouvons utiliser la commande suivante:
AZURE_ENDPOINT=https:// <你的 Endpoint 地址> .openai.azure.com/ AZURE_API_KEY= <你的 API KEY > AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35 ./amazing-openai-api Dans la commande ci-dessus, AZURE_ENDPOINT et AZURE_API_KEY incluent les éléments principaux du service AZURE_MODEL_ALIAS Openai, car le nom de déploiement pour Azure Deployment GPT 3.5 / GPT 4 ne lui permet pas d'être inclus . Cette technique peut même être utilisée pour cartographier automatiquement les modèles utilisés par divers logiciels open source et source fermée aux modèles que nous voulons:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35,gpt-4:gpt-35 Parce que nous avons configuré AZURE_API_KEY , pas besoin d'ajouter Authorization: Bearer <你的API Key> (peut également être écrite avec désinvolture), qu'il s'agisse de logiciels open source ou de curl .

Si vous êtes toujours habitué à ajouter du contenu d'authentification aux paramètres d'en-tête de demande, vous pouvez utiliser la commande suivante qui ne contient pas AZURE_API_KEY , et le programme passera par vérification au service Azure:
AZURE_ENDPOINT=https:// <你的 Endpoint 地址> .openai.azure.com/ AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35 ./amazing-openai-api Si vous souhaitez spécifier une version API spéciale vous-même, vous pouvez spécifier AZURE_IGNORE_API_VERSION_CHECK=true pour forcer la vérification de validité de la version API du programme lui-même.
Si vous avez déjà Azure GPT Vision, en plus d'utiliser les appels SDK, vous pouvez également vous référer à ce document et utiliser curl pour appeler: GPT Vision.
# (必选) 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_CHECKSi nous voulons convertir l'API YI officielle en un appel OpenAI standard, nous pouvons utiliser la commande suivante:
AOA_TYPE=yi YI_API_KEY= <你的 API KEY > ./amazing-openai-api Semblable à l'utilisation des services Azure, nous pouvons utiliser une astuce pour cartographier automatiquement les modèles utilisés par divers logiciels open source et source fermée au modèle que nous voulons:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
YI_MODEL_ALIAS=gpt-3.5-turbo:yi-34b-chat,gpt-4:yi-34b-chat Si nous configurons YI_API_KEY lors du démarrage du service, nous n'avons pas besoin d'ajouter Authorization: Bearer <你的API Key> (peut également l'écrire curl ), ce qui fournira une isolation de clé API stricte et améliorera la sécurité de la clé API.
Si vous avez toujours l'habitude d'ajouter du contenu d'authentification aux paramètres d'en-tête de demande, vous pouvez utiliser la commande suivante qui ne contient pas YI_API_KEY , et le programme passera par vérification du service API YI:
./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_PROXYSi nous voulons convertir l'API officielle Gemini officielle de Google en un appel OpenAI standard, nous pouvons utiliser la commande suivante:
AOA_TYPE=gemini GEMINI_API_KEY= <你的 API KEY > ./amazing-openai-api Semblable à l'utilisation des services Azure, nous pouvons utiliser une astuce pour cartographier automatiquement les modèles utilisés par divers logiciels open source et source fermée au modèle que nous voulons:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
GEMINI_MODEL_ALIAS=gpt-3.5-turbo:gemini-pro,gpt-4:gemini-pro Si nous configurons GEMINI_API_KEY lors du démarrage du service, nous n'avons pas besoin d'ajouter Authorization: Bearer <你的API Key> (peut également l'écrire curl ), qui fournira une isolation de clé d'API stricte et améliorera la sécurité de la clé API.
Si vous êtes toujours habitué à ajouter du contenu d'authentification aux paramètres d'en-tête de demande, vous pouvez utiliser la commande suivante qui ne contient pas GEMINI_API_KEY , et le programme passera par vérification des services IA Google:
./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