
Converta diferentes APIs de modelo no formato da API do OpenAI.
Widget 10MB+ que permite a conversão de várias APIs de modelo em formatos de API do OpenAI.
Modelos suportados atuais:
Visite a página de lançamento do Github para baixar o arquivo de execução que se adapta ao seu sistema operacional.

Ou use o Docker Pull para baixar a versão especificada do arquivo de imagem:
docker pull soulteary/amazing-openai-api:v0.7.0 AOA não precisa gravar arquivos de configuração e pode ajustar o comportamento do aplicativo especificando variáveis de ambiente, incluindo "selecionando o modelo de trabalho", "Definindo parâmetros necessários para a operação do modelo" e "Configurando o alias de compatibilidade do modelo".
Por ./aoa , o programa definirá o modelo de trabalho para AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ azure .
AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ ./aoaSe você preferir o Docker, pode usar o seguinte comando:
docker run --rm -it -e AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ -p 8080:8080 soulteary/amazing-openai-api:v0.7.0 Após o início do serviço, podemos acessar o mesmo serviço de API do OpenAI, visitando http://localhost:8080/v1 .
Você pode usar curl para realizar um teste rápido:
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."
}
]
} 'Você também pode usar o SDK oficial do OpenAI para chamadas ou usar qualquer software de código aberto compatível com o OpenAI (para mais exemplos, consulte o exemplo):
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 ) Se você não deseja expor a chave da API para o aplicativo ou estiver preocupado se vários softwares de código aberto complexos têm o risco de vazamento de chaves da API, podemos configurar uma variável adicional AZURE_API_KEY=你的API Key e, em seguida, vários softwares de código aberto não precisam preencher a chave da API ao solicitar (ou apenas preencher).
Obviamente, devido a algumas limitações do Azure e ao difícil ajuste de nomes de chamadas de modelo em algum software de código aberto, podemos mapear os modelos na solicitação original para o nosso nome de modelo real da seguinte maneira. Por exemplo, substitua o GPT 3.5/4 por yi-34b-chat :
gpt-3.5-turbo:yi-34b-chat,gpt-4:yi-34b-chat Se você deseja usar yi-34b-chat ou gemini-pro , precisamos definir AOA_TYPE=yi ou AOA_TYPE=gemini , exceto que, não há diferença.
O projeto contém o arquivo de amostra docker-compose.yml docker compose das três interfaces example modelo suportadas atualmente.
Em seguida, use docker compose up para iniciar o serviço e ele pode ser usado rapidamente.
Ajuste o modelo de trabalho AOA_TYPE , parâmetros opcionais, padrão para azure :
# 选择一个服务, "azure", "yi", "gemini"
AOA_TYPE: " azure " Endereço de serviço do programa, parâmetros opcionais, padrão para 8080 e 0.0.0.0 :
# 服务端口,默认 `8080`
AOA_PORT: 8080
# 服务地址,默认 `0.0.0.0`
AOA_HOST: " 0.0.0.0 " Se queremos converter o serviço OpenAI implantado no Azure em uma chamada OpenAI padrão, podemos usar o seguinte 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 No comando acima, AZURE_ENDPOINT e AZURE_MODEL_ALIAS AZURE_API_KEY incluem elementos principais no serviço Azure OpenAi, porque o nome da implantação para a implantação do Azure GPT 3.5/GPT 4 não permite que ele seja incluído . Essa técnica pode até ser usada para mapear automaticamente os modelos usados por vários softwares de código aberto e de código fechado para os modelos que queremos:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35,gpt-4:gpt-35 Como configuramos AZURE_API_KEY , não há necessidade de adicionar Authorization: Bearer <你的API Key> (também pode ser escrita casualmente) se é um software de código aberto ou chamadas curl .

Se você ainda estiver acostumado a adicionar conteúdo de autenticação aos parâmetros do cabeçalho da solicitação, poderá usar o seguinte comando que não contém AZURE_API_KEY , e o programa passará pela verificação para o serviço do Azure:
AZURE_ENDPOINT=https:// <你的 Endpoint 地址> .openai.azure.com/ AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35 ./amazing-openai-api Se você deseja especificar uma versão especial da API, pode especificar AZURE_IGNORE_API_VERSION_CHECK=true para forçar a verificação de validade da versão da API do próprio programa.
Se você já possui o Azure GPT Vision, além de usar chamadas SDK, também pode consultar este documento e usar curl para chamar: 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_CHECKSe queremos converter a API YI oficial em uma chamada OpenAI padrão, podemos usar o seguinte comando:
AOA_TYPE=yi YI_API_KEY= <你的 API KEY > ./amazing-openai-api Semelhante ao uso de serviços do Azure, podemos usar um truque para mapear automaticamente os modelos usados por vários softwares de código fechado e de código fechado para o modelo que desejamos:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
YI_MODEL_ALIAS=gpt-3.5-turbo:yi-34b-chat,gpt-4:yi-34b-chat Se configurarmos YI_API_KEY Ao iniciar o serviço, não precisamos adicionar Authorization: Bearer <你的API Key> (também pode escrevê -lo curl ), que fornecerá o isolamento estrito da chave da API e melhorará a segurança da chave da API.
Se você ainda estiver acostumado a adicionar conteúdo de autenticação aos parâmetros do cabeçalho da solicitação, poderá usar o seguinte comando que não contém YI_API_KEY , e o programa passará pela verificação para o serviço da 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_PROXYSe quisermos converter a API oficial de Gemini do Google em uma chamada OpenAI padrão, podemos usar o seguinte comando:
AOA_TYPE=gemini GEMINI_API_KEY= <你的 API KEY > ./amazing-openai-api Semelhante ao uso de serviços do Azure, podemos usar um truque para mapear automaticamente os modelos usados por vários softwares de código fechado e de código fechado para o modelo que desejamos:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
GEMINI_MODEL_ALIAS=gpt-3.5-turbo:gemini-pro,gpt-4:gemini-pro Se configurarmos GEMINI_API_KEY ao iniciar o serviço, não precisamos adicionar Authorization: Bearer <你的API Key> (também pode escrevê -lo curl ), o que fornecerá o isolamento estrito da chave da API e melhorará a segurança da chave da API.
Se você ainda estiver acostumado a adicionar conteúdo de autenticação aos parâmetros do cabeçalho da solicitação, poderá usar o seguinte comando que não contém GEMINI_API_KEY , e o programa passará pela verificação para o Google AI Services:
./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