
Convierta diferentes API del modelo en el formato API Operai fuera de la caja.
Widget de 10 MB+ que permite la conversión de varias API del modelo en formatos de API Operai fuera de la caja.
Modelos compatibles actuales:
Visite la página de lanzamiento de GitHub para descargar el archivo de ejecución que se adapte a su sistema operativo.

O use Docker Pull para descargar la versión especificada del archivo de imagen:
docker pull soulteary/amazing-openai-api:v0.7.0 AOA no necesita escribir ningún archivo de configuración, y puede ajustar el comportamiento de la aplicación especificando variables de entorno, incluida "seleccionar el modelo de trabajo", "Configuración de parámetros requeridos para la operación del modelo" y "Configuración del alias de compatibilidad del modelo".
Por ./aoa , el programa establecerá el modelo AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ trabajo en azure .
AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ ./aoaSi prefiere Docker, puede usar el siguiente comando:
docker run --rm -it -e AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ -p 8080:8080 soulteary/amazing-openai-api:v0.7.0 Una vez que se inicia el servicio, podemos acceder al mismo servicio API que OpenAI visitando http://localhost:8080/v1 .
Puede usar curl para realizar una prueba rápida:
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."
}
]
} 'También puede usar el SDK oficial de OpenAI para llamadas, o usar cualquier software de código abierto compatible con Openai (para más ejemplos, ver ejemplo):
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 no desea exponer la clave API a la aplicación, o está preocupado por si varios software complejo de código abierto tienen el riesgo de una fuga de la tecla API, podemos configurar una variable adicional de entorno AZURE_API_KEY=你的API Key , y luego varios software de código abierto no necesitan completar la tecla API al solicitar (o simplemente completarla).
Por supuesto, debido a algunas limitaciones de Azure y el ajuste difícil de los nombres de las llamadas del modelo en algún software de código abierto, podemos mapear los modelos en la solicitud original a nuestro nombre de modelo real de la siguiente manera. Por ejemplo, reemplace GPT 3.5/4 con yi-34b-chat :
gpt-3.5-turbo:yi-34b-chat,gpt-4:yi-34b-chat Si desea usar yi-34b-chat , o gemini-pro , necesitamos establecer AOA_TYPE=yi o AOA_TYPE=gemini , excepto que no hay diferencia.
El proyecto contiene el archivo de muestra docker compose example las tres interfaces de modelo actualmente docker-compose.yml .
Luego use docker compose up para iniciar el servicio y se puede usar rápidamente.
Ajuste el modelo de trabajo AOA_TYPE , parámetros opcionales, predeterminado a azure :
# 选择一个服务, "azure", "yi", "gemini"
AOA_TYPE: " azure " Dirección de servicio del programa, parámetros opcionales, valores predeterminados a 8080 y 0.0.0.0 :
# 服务端口,默认 `8080`
AOA_PORT: 8080
# 服务地址,默认 `0.0.0.0`
AOA_HOST: " 0.0.0.0 " Si queremos convertir el servicio OpenAI implementado en Azure a una llamada estándar de OpenAI, podemos usar el siguiente comando:
AZURE_ENDPOINT=https:// <你的 Endpoint 地址> .openai.azure.com/ AZURE_API_KEY= <你的 API KEY > AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35 ./amazing-openai-api En el comando anterior, AZURE_ENDPOINT y AZURE_API_KEY incluyen elementos centrales en el servicio Azure OpenAI, porque el nombre de implementación para la implementación de . GPT 3.5/GPT 4 no permite que se incluya el nombre de AZURE_MODEL_ALIAS para reemplazar el nombre del modelo en el contenido de que solicitamos con el nombre real de expedición de Azure. Esta técnica se puede utilizar para mapear automáticamente los modelos utilizados por varios software de código abierto y de código cerrado a los modelos que queremos:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35,gpt-4:gpt-35 Debido a que hemos configurado AZURE_API_KEY , no es necesario agregar Authorization: Bearer <你的API Key> (también se puede escribir casualmente) si se trata de software de código abierto o llamadas curl .

Si todavía está acostumbrado a agregar contenido de autenticación a los parámetros del encabezado de solicitud, puede usar el siguiente comando que no contiene AZURE_API_KEY , y el programa pasará a través de la verificación al servicio Azure:
AZURE_ENDPOINT=https:// <你的 Endpoint 地址> .openai.azure.com/ AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35 ./amazing-openai-api Si desea especificar una versión API especial usted mismo, puede especificar AZURE_IGNORE_API_VERSION_CHECK=true para forzar la verificación de validez de la versión API del programa en sí.
Si ya tiene Azure GPT Vision, además de usar llamadas SDK, también puede consultar este documento y usar curl para llamar: Visión GPT.
# (必选) 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 queremos convertir la API YI oficial en una llamada estándar de OpenAI, podemos usar el siguiente comando:
AOA_TYPE=yi YI_API_KEY= <你的 API KEY > ./amazing-openai-api Similar al uso de servicios de Azure, podemos usar un truco para asignar automáticamente los modelos utilizados por varios software de código cerrado y de código cerrado al modelo que queremos:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
YI_MODEL_ALIAS=gpt-3.5-turbo:yi-34b-chat,gpt-4:yi-34b-chat Si configuramos YI_API_KEY al comenzar el servicio, no necesitamos agregar Authorization: Bearer <你的API Key> (también puede escribirlo curl ), lo que proporcionará un aislamiento estricto de la tecla API y mejorará la seguridad de la tecla API.
Si todavía está acostumbrado a agregar contenido de autenticación a los parámetros del encabezado de solicitud, puede usar el siguiente comando que no contiene YI_API_KEY , y el programa pasará a través de la verificación al servicio 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 queremos convertir la API oficial de Gemini de Google a una llamada estándar de OpenAI, podemos usar el siguiente comando:
AOA_TYPE=gemini GEMINI_API_KEY= <你的 API KEY > ./amazing-openai-api Similar al uso de servicios de Azure, podemos usar un truco para asignar automáticamente los modelos utilizados por varios software de código cerrado y de código cerrado al modelo que queremos:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
GEMINI_MODEL_ALIAS=gpt-3.5-turbo:gemini-pro,gpt-4:gemini-pro Si configuramos GEMINI_API_KEY al comenzar el servicio, no necesitamos agregar Authorization: Bearer <你的API Key> (también puede escribirlo curl ), lo que proporcionará un aislamiento estricto de la tecla API y mejorará la seguridad de la tecla API.
Si todavía está acostumbrado a agregar contenido de autenticación a los parámetros del encabezado de solicitud, puede usar el siguiente comando que no contiene GEMINI_API_KEY , y el programa pasará a través de la verificación a los servicios de Google AI:
./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