Inglés | Chino
Para uso personal, One/New-API es demasiado complejo con muchas características comerciales que las personas no necesitan. Si no desea una interfaz frontend complicada y prefiere el soporte para más modelos, puede probar UNI-API. Este es un proyecto que unifica la gestión de las API de modelos de idiomas grandes, lo que le permite llamar a múltiples servicios de backend a través de una única interfaz API unificada, convirtiéndolas a todos para formatear OpenAI y admitir el equilibrio de carga. Los servicios de backend actualmente compatibles incluyen: OpenAI, Anthrope, Gemini, Vertex, Cohere, Groq, Cloudflare, OpenRouter y más.
SCHEDULING_ALGORITHM como round_robin ./v1/chat/completions , /v1/images/generations , /v1/audio/transcriptions , /v1/moderations , /v1/models .Para iniciar UNI-API, se debe utilizar un archivo de configuración. Hay dos formas de comenzar con un archivo de configuración:
CONFIG_URL para completar la URL del archivo de configuración, que se descargará automáticamente cuando se inicie UNI-API.api.yaml en el contenedor.api.yaml para iniciar UNI-API Debe completar el archivo de configuración con anticipación para iniciar uni-api , y debe usar un archivo de configuración llamado api.yaml para iniciar uni-api , puede configurar múltiples modelos, cada modelo puede configurar múltiples servicios de backend y admitir el equilibrio de carga. A continuación se muestra un ejemplo del archivo de configuración mínimo api.yaml que se puede ejecutar:
providers :
- provider : provider_name # Service provider name, such as openai, anthropic, gemini, openrouter, can be any name, required
base_url : https://api.your.com/v1/chat/completions # Backend service API address, required
api : sk-YgS6GTi0b4bEabc4C # Provider's API Key, required, automatically uses base_url and api to get all available models through the /v1/models endpoint.
# Multiple providers can be configured here, each provider can configure multiple API Keys, and each API Key can configure multiple models.
api_keys :
- api : sk-Pkj60Yf8JFWxfgRmXQFWyGtWUddGZnmi3KlvowmRWpWpQxx # API Key, user request uni-api requires API key, required
# This API Key can use all models, that is, it can use all models in all channels set under providers, without needing to add available channels one by one. Configuración avanzada detallada de api.yaml :
providers :
- provider : provider_name # Service provider name, such as openai, anthropic, gemini, openrouter, can be any name, required
base_url : https://api.your.com/v1/chat/completions # Backend service API address, required
api : sk-YgS6GTi0b4bEabc4C # Provider's API Key, required
model : # Optional, if model is not configured, all available models will be automatically obtained through base_url and api via the /v1/models endpoint.
- gpt-4o # Usable model name, required
- claude-3-5-sonnet-20240620 : claude-3-5-sonnet # Rename model, claude-3-5-sonnet-20240620 is the provider's model name, claude-3-5-sonnet is the renamed name, you can use a simple name to replace the original complex name, optional
- dall-e-3
- provider : anthropic
base_url : https://api.anthropic.com/v1/messages
api : # Supports multiple API Keys, multiple keys automatically enable polling load balancing, at least one key, required
- sk-ant-api03-bNnAOJyA-xQw_twAA
- sk-ant-api02-bNnxxxx
model :
- claude-3-5-sonnet-20240620 : claude-3-5-sonnet # Rename model, claude-3-5-sonnet-20240620 is the provider's model name, claude-3-5-sonnet is the renamed name, you can use a simple name to replace the original complex name, optional
tools : true # Whether to support tools, such as generating code, generating documents, etc., default is true, optional
- provider : gemini
base_url : https://generativelanguage.googleapis.com/v1beta # base_url supports v1beta/v1, only for Gemini model use, required
api : # Supports multiple API Keys, multiple keys automatically enable polling load balancing, at least one key, required
- AIzaSyAN2k6IRdgw123
- AIzaSyAN2k6IRdgw456
- AIzaSyAN2k6IRdgw789
model :
- gemini-1.5-pro
- gemini-1.5-flash-exp-0827 : gemini-1.5-flash # After renaming, the original model name gemini-1.5-flash-exp-0827 cannot be used, if you want to use the original name, you can add the original name in the model, just add the line below to use the original name
- gemini-1.5-flash-exp-0827 # Add this line, both gemini-1.5-flash-exp-0827 and gemini-1.5-flash can be requested
tools : true
preferences :
api_key_rate_limit : 15/min # Each API Key can request up to 15 times per minute, optional. The default is 999999/min. Supports multiple frequency constraints: 15/min,10/day
# api_key_rate_limit: # You can set different frequency limits for each model
# gemini-1.5-flash: 15/min,1500/day
# gemini-1.5-pro: 2/min,50/day
# default: 4/min # If the model does not set the frequency limit, use the frequency limit of default
api_key_cooldown_period : 60 # Each API Key will be cooled down for 60 seconds after encountering a 429 error. Optional, the default is 0 seconds. When set to 0, the cooling mechanism is not enabled. When there are multiple API keys, the cooling mechanism will take effect.
api_key_schedule_algorithm : round_robin # Set the request order of multiple API Keys, optional. The default is round_robin, and the optional values are: round_robin, random. It will take effect when there are multiple API keys. round_robin is polling load balancing, and random is random load balancing.
model_timeout : # Model timeout, in seconds, default 100 seconds, optional
gemini-1.5-pro : 10 # Model gemini-1.5-pro timeout is 10 seconds
gemini-1.5-flash : 10 # Model gemini-1.5-flash timeout is 10 seconds
default : 10 # Model does not have a timeout set, use the default timeout of 10 seconds, when requesting a model not in model_timeout, the timeout is also 10 seconds, if default is not set, uni-api will use the default timeout set by the environment variable TIMEOUT, the default timeout is 100 seconds
proxy : socks5://[username]:[password]@[ip]:[port] # Proxy address, optional. Supports socks5 and http proxies, default is not used.
- provider : vertex
project_id : gen-lang-client-xxxxxxxxxxxxxx # Description: Your Google Cloud project ID. Format: String, usually composed of lowercase letters, numbers, and hyphens. How to obtain: You can find your project ID in the project selector of the Google Cloud Console.
private_key : " -----BEGIN PRIVATE KEY----- n xxxxx n -----END PRIVATE " # Description: Private key for Google Cloud Vertex AI service account. Format: A JSON formatted string containing the private key information of the service account. How to obtain: Create a service account in Google Cloud Console, generate a JSON formatted key file, and then set its content as the value of this environment variable.
client_email : [email protected] # Description: Email address of the Google Cloud Vertex AI service account. Format: Usually a string like "[email protected]". How to obtain: Generated when creating a service account, or you can view the service account details in the "IAM and Admin" section of the Google Cloud Console.
model :
- gemini-1.5-pro
- gemini-1.5-flash
- gemini-1.5-pro : gemini-1.5-pro-search # Only supports using the gemini-1.5-pro-search model to request uni-api when using the Vertex Gemini API, to automatically use the Google official search tool.
- claude-3-5-sonnet@20240620 : claude-3-5-sonnet
- claude-3-opus@20240229 : claude-3-opus
- claude-3-sonnet@20240229 : claude-3-sonnet
- claude-3-haiku@20240307 : claude-3-haiku
tools : true
notes : https://xxxxx.com/ # You can put the provider's website, notes, official documentation, optional
- provider : cloudflare
api : f42b3xxxxxxxxxxq4aoGAh # Cloudflare API Key, required
cf_account_id : 8ec0xxxxxxxxxxxxe721 # Cloudflare Account ID, required
model :
- ' @cf/meta/llama-3.1-8b-instruct ' : llama-3.1-8b # Rename model, @cf/meta/llama-3.1-8b-instruct is the provider's original model name, must be enclosed in quotes, otherwise yaml syntax error, llama-3.1-8b is the renamed name, you can use a simple name to replace the original complex name, optional
- ' @cf/meta/llama-3.1-8b-instruct ' # Must be enclosed in quotes, otherwise yaml syntax error
- provider : other-provider
base_url : https://api.xxx.com/v1/messages
api : sk-bNnAOJyA-xQw_twAA
model :
- causallm-35b-beta2ep-q6k : causallm-35b
- anthropic/claude-3-5-sonnet
tools : false
engine : openrouter # Force the use of a specific message format, currently supports gpt, claude, gemini, openrouter native format, optional
api_keys :
- api : sk-KjjI60Yf0JFWxfgRmXqFWyGtWUd9GZnmi3KlvowmRWpWpQRo # API Key, required for users to use this service
model : # Models that can be used by this API Key, required. Default channel-level polling load balancing is enabled, and each request model is requested in sequence according to the model configuration. It is not related to the original channel order in providers. Therefore, you can set different request sequences for each API key.
- gpt-4o # Usable model name, can use all gpt-4o models provided by providers
- claude-3-5-sonnet # Usable model name, can use all claude-3-5-sonnet models provided by providers
- gemini/* # Usable model name, can only use all models provided by providers named gemini, where gemini is the provider name, * represents all models
role : admin
- api : sk-pkhf60Yf0JGyJxgRmXqFQyTgWUd9GZnmi3KlvowmRWpWqrhy
model :
- anthropic/claude-3-5-sonnet # Usable model name, can only use the claude-3-5-sonnet model provided by the provider named anthropic. Models with the same name from other providers cannot be used. This syntax will not match the model named anthropic/claude-3-5-sonnet provided by other-provider.
- <anthropic/claude-3-5-sonnet> # By adding angle brackets on both sides of the model name, it will not search for the claude-3-5-sonnet model under the channel named anthropic, but will take the entire anthropic/claude-3-5-sonnet as the model name. This syntax can match the model named anthropic/claude-3-5-sonnet provided by other-provider. But it will not match the claude-3-5-sonnet model under anthropic.
- openai-test/text-moderation-latest # When message moderation is enabled, the text-moderation-latest model under the channel named openai-test can be used for moderation.
- sk-KjjI60Yd0JFWtxxxxxxxxxxxxxxwmRWpWpQRo/* # Support using other API keys as channels
preferences :
SCHEDULING_ALGORITHM : fixed_priority # When SCHEDULING_ALGORITHM is fixed_priority, use fixed priority scheduling, always execute the channel of the first model with a request. Default is enabled, SCHEDULING_ALGORITHM default value is fixed_priority. SCHEDULING_ALGORITHM optional values are: fixed_priority, round_robin, weighted_round_robin, lottery, random.
# When SCHEDULING_ALGORITHM is random, use random polling load balancing, randomly request the channel of the model with a request.
# When SCHEDULING_ALGORITHM is round_robin, use polling load balancing, request the channel of the model used by the user in order.
AUTO_RETRY : true # Whether to automatically retry, automatically retry the next provider, true for automatic retry, false for no automatic retry, default is true. Also supports setting a number, indicating the number of retries.
rate_limit : 15/min # Supports rate limiting, each API Key can request up to 15 times per minute, optional. The default is 999999/min. Supports multiple frequency constraints: 15/min,10/day
# rate_limit: # You can set different frequency limits for each model
# gemini-1.5-flash: 15/min,1500/day
# gemini-1.5-pro: 2/min,50/day
# default: 4/min # If the model does not set the frequency limit, use the frequency limit of default
ENABLE_MODERATION : true # Whether to enable message moderation, true for enable, false for disable, default is false, when enabled, it will moderate the user's message, if inappropriate messages are found, an error message will be returned.
# Channel-level weighted load balancing configuration example
- api : sk-KjjI60Yd0JFWtxxxxxxxxxxxxxxwmRWpWpQRo
model :
- gcp1/* : 5 # The number after the colon is the weight, weight only supports positive integers.
- gcp2/* : 3 # The size of the number represents the weight, the larger the number, the greater the probability of the request.
- gcp3/* : 2 # In this example, there are a total of 10 weights for all channels, and 10 requests will have 5 requests for the gcp1/* model, 2 requests for the gcp2/* model, and 3 requests for the gcp3/* model.
preferences :
SCHEDULING_ALGORITHM : weighted_round_robin # Only when SCHEDULING_ALGORITHM is weighted_round_robin and the above channel has weights, it will request according to the weighted order. Use weighted polling load balancing, request the channel of the model with a request according to the weight order. When SCHEDULING_ALGORITHM is lottery, use lottery polling load balancing, request the channel of the model with a request according to the weight randomly. Channels without weights automatically fall back to round_robin polling load balancing.
AUTO_RETRY : true
preferences : # Global configuration
model_timeout : # Model timeout, in seconds, default 100 seconds, optional
gpt-4o : 10 # Model gpt-4o timeout is 10 seconds, gpt-4o is the model name, when requesting models like gpt-4o-2024-08-06, the timeout is also 10 seconds
claude-3-5-sonnet : 10 # Model claude-3-5-sonnet timeout is 10 seconds, when requesting models like claude-3-5-sonnet-20240620, the timeout is also 10 seconds
default : 10 # Model does not have a timeout set, use the default timeout of 10 seconds, when requesting a model not in model_timeout, the default timeout is 10 seconds, if default is not set, uni-api will use the default timeout set by the environment variable TIMEOUT, the default timeout is 100 seconds
o1-mini : 30 # Model o1-mini timeout is 30 seconds, when requesting models starting with o1-mini, the timeout is 30 seconds
o1-preview : 100 # Model o1-preview timeout is 100 seconds, when requesting models starting with o1-preview, the timeout is 100 seconds
cooldown_period : 300 # Channel cooldown time, in seconds, default 300 seconds, optional. When a model request fails, the channel will be automatically excluded and cooled down for a period of time, and will not request the channel again. After the cooldown time ends, the model will be automatically restored until the request fails again, and it will be cooled down again. When cooldown_period is set to 0, the cooling mechanism is not enabled.
error_triggers : # Error triggers, when the message returned by the model contains any of the strings in the error_triggers, the channel will return an error. Optional
- The bot's usage is covered by the developer
- process this request due to overload or policyMonte el archivo de configuración e inicie el contenedor Docker Uni-API:
docker run --user root -p 8001:8000 --name uni-api -dit
-v ./api.yaml:/home/api.yaml
yym68686/uni-api:latestCONFIG_URL Después de escribir el archivo de configuración de acuerdo con el método uno, cárguelo en el disco en la nube, obtenga el enlace directo del archivo y luego use la variable CONFIG_URL entorno para iniciar el contenedor de docker uni-api:
docker run --user root -p 8001:8000 --name uni-api -dit
-e CONFIG_URL=http://file_url/api.yaml
yym68686/uni-api:latest Después de hacer clic en el botón de implementación de un clic anterior, establezca la variable de entorno CONFIG_URL en el enlace directo del archivo de configuración, DISABLE_DATABASE en true y luego haga clic en Crear para crear el proyecto. Después de la implementación, debe establecer manualmente la duración máxima de la función en 60 segundos en el panel del proyecto Vercel en las funciones -> Funciones, y luego hacer clic en el menú de implementaciones y hacer clic en Redpeploy para redistribuir, lo que establecerá el tiempo de espera en 60 segundos. Si no se vuelve a implicar, el tiempo de espera predeterminado permanecerá en los 10 segundos originales. Tenga en cuenta que no debe eliminar el proyecto Vercel y recrearlo; En su lugar, haga clic en Reconocimiento en el menú Implementaciones dentro del proyecto VERCE implementado actualmente para que la modificación de duración máxima de la función entre en vigencia.
En los lanzamientos de almacén, encuentre la última versión del archivo binario correspondiente, por ejemplo, un archivo llamado UNI-API-LINUX-X86_64-0.0.99.pex. Descargue el archivo binario en el servidor y ejecutarlo:
wget https://github.com/yym68686/uni-api/releases/download/v0.0.99/uni-api-linux-x86_64-0.0.99.pex
chmod +x uni-api-linux-x86_64-0.0.99.pex
./uni-api-linux-x86_64-0.0.99.pexPrimero, inicie sesión en el panel, en servicios adicionales, haga clic en la pestaña Ejecute sus propias aplicaciones para habilitar la opción de ejecutar sus propios programas, luego vaya a la reserva del puerto del panel para abrir aleatoriamente un puerto.
Si no tiene su propio nombre de dominio, vaya a los sitios web del panel www y elimine el nombre de dominio predeterminado proporcionado. Luego cree un nuevo dominio con el dominio que acabas de eliminar. Después de hacer clic en la configuración avanzada, configure el tipo de sitio web en el dominio proxy, y el puerto proxy debe apuntar al puerto que acaba de abrir. No seleccione Use HTTPS.
SSH Iniciar sesión en el servidor Serv00, ejecute el siguiente comando:
git clone --depth 1 -b main --quiet https://github.com/yym68686/uni-api.git
cd uni-api
python -m venv uni-api
tmux new -s uni-api
source uni-api/bin/activate
export CFLAGS= " -I/usr/local/include "
export CXXFLAGS= " -I/usr/local/include "
export CC=gcc
export CXX=g++
export MAX_CONCURRENCY=1
export CPUCOUNT=1
export MAKEFLAGS= " -j1 "
CMAKE_BUILD_PARALLEL_LEVEL=1 cpuset -l 0 pip install -vv -r requirements.txt
cpuset -l 0 pip install -r -vv requirements.txtCtrl+bd para salir de TMUX, espere unas horas para que la instalación se complete, y después de que se complete la instalación, ejecute el siguiente comando:
tmux attach -t uni-api
source uni-api/bin/activate
export CONFIG_URL=http://file_url/api.yaml
export DISABLE_DATABASE=true
# Modify the port, xxx is the port, modify it yourself, corresponding to the port opened in the panel Port reservation
sed -i ' ' ' s/port=8000/port=xxx/ ' main.py
sed -i ' ' ' s/reload=True/reload=False/ ' main.py
python main.pyUse CTRL+BD para salir de TMUX, lo que permite que el programa se ejecute en segundo plano. En este punto, puede usar UNI-API en otros clientes de chat. Script de prueba de curl:
curl -X POST https://xxx.serv00.net/v1/chat/completions
-H ' Content-Type: application/json '
-H ' Authorization: Bearer sk-xxx '
-d ' {"model": "gpt-4o","messages": [{"role": "user","content": "Hello"}]} 'Documento de referencia:
https://docs.serv00.com/python/
https://linux.do/t/topic/201181
https://linux.do/t/topic/218738
Comience el contenedor
docker run --user root -p 8001:8000 --name uni-api -dit
-e CONFIG_URL=http://file_url/api.yaml # If the local configuration file has already been mounted, there is no need to set CONFIG_URL
-v ./api.yaml:/home/api.yaml # If CONFIG_URL is already set, there is no need to mount the configuration file
-v ./uniapi_db:/home/data # If you do not want to save statistical data, there is no need to mount this folder
yym68686/uni-api:latestO si desea usar Docker Compose, aquí hay un ejemplo de Docker-Compose.yml:
services :
uni-api :
container_name : uni-api
image : yym68686/uni-api:latest
environment :
- CONFIG_URL=http://file_url/api.yaml # If a local configuration file is already mounted, there is no need to set CONFIG_URL
ports :
- 8001:8000
volumes :
- ./api.yaml:/home/api.yaml # If CONFIG_URL is already set, there is no need to mount the configuration file
- ./uniapi_db:/home/data # If you do not want to save statistical data, there is no need to mount this folderConfig_url es la URL del archivo de configuración remota que se puede descargar automáticamente. Por ejemplo, si no se siente cómodo modificando el archivo de configuración en una plataforma determinada, puede cargar el archivo de configuración en un servicio de alojamiento y proporcionar un enlace directo a UNI-API para descargar, que es config_url. Si está utilizando un archivo de configuración montada local, no es necesario establecer config_url. Config_url se usa cuando no es conveniente montar el archivo de configuración.
Ejecutar Docker Compose Container en segundo plano
docker-compose pull
docker-compose up -dDocker Build
docker build --no-cache -t uni-api:latest -f Dockerfile --platform linux/amd64 .
docker tag uni-api:latest yym68686/uni-api:latest
docker push yym68686/uni-api:latestReiniciar una imagen de Docker de reinicio de un solo clic
set -eu
docker pull yym68686/uni-api:latest
docker rm -f uni-api
docker run --user root -p 8001:8000 -dit --name uni-api
-e CONFIG_URL=http://file_url/api.yaml
-v ./api.yaml:/home/api.yaml
-v ./uniapi_db:/home/data
yym68686/uni-api:latest
docker logs -f uni-apiPrueba de rizos de descanso
curl -X POST http://127.0.0.1:8000/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer ${API} "
-d ' {"model": "gpt-4o","messages": [{"role": "user", "content": "Hello"}],"stream": true} 'Embalaje de Pex Linux:
VERSION= $( cat VERSION )
pex -D . -r requirements.txt
-c uvicorn
--inject-args ' main:app --host 0.0.0.0 --port 8000 '
--platform linux_x86_64-cp-3.10.12-cp310
--interpreter-constraint ' ==3.10.* '
--no-strip-pex-env
-o uni-api-linux-x86_64- ${VERSION} .pexEmbalaje de macOS:
VERSION= $( cat VERSION )
pex -r requirements.txt
-c uvicorn
--inject-args ' main:app --host 0.0.0.0 --port 8000 '
-o uni-api-macos-arm64- ${VERSION} .pexAgradecemos a los siguientes patrocinadores por su apoyo:
Si desea apoyar nuestro proyecto, puede patrocinarnos de las siguientes maneras:
Paypal
USDT-TRC20, USDT-TRC20 Dirección de billetera: TLFbqSv5pDu5he43mVmK1dNx7yBMFeN7d8
Veloz
Alipay
¡Gracias por su apoyo!
Error processing request or performing moral check: 404: No matching model found ?Configuración de habilitar_moderación en falso solucionará este problema. Cuando habilita_moderation es verdadero, la API debe ser capaz de usar el modelo de extracción de moderación de texto, y si no ha proporcionado el texto de moderación de texto en la configuración del modelo del proveedor, se producirá un error que indica que el modelo no se puede encontrar.
Establezca directamente el orden del canal en el API_Keys. No se requieren otra configuración. Archivo de configuración de muestra:
providers :
- provider : ai1
base_url : https://xxx/v1/chat/completions
api : sk-xxx
- provider : ai2
base_url : https://xxx/v1/chat/completions
api : sk-xxx
api_keys :
- api : sk-1234
model :
- ai2/*
- ai1/*De esta manera, solicite AI2 primero, y si falla, solicite AI1.
Todos los algoritmos de programación deben habilitarse configurando API_Keys. (API) .Preferences.Scheduling_Algorithm en el archivo de configuración en cualquiera de los valores: fijo_priority, peso_round_robin, lotería, aleatoria, redonde_robin.
fijo_priority: programación de prioridad fija. Todas las solicitudes siempre son ejecutadas por el canal del modelo que primero tiene una solicitud de usuario. En caso de un error, cambiará al siguiente canal. Este es el algoritmo de programación predeterminado.
PESUDED_ROUND_ROBIN: equilibrio de carga redondo ponderado, solicita canales con el modelo solicitado del usuario de acuerdo con el pedido de peso establecido en el archivo de configuración API_Keys. (API) .modelo.
Lotería: Dibuje el equilibrio de carga de la round-robin, solicite aleatoriamente el canal del modelo con solicitudes de usuario de acuerdo con el conjunto de peso en el archivo de configuración API_Keys. (API) .modelo.
Round_robin: equilibrio de carga de round-roBin, solicita el canal que posee el modelo solicitado por el usuario de acuerdo con el orden de configuración en el archivo de configuración API_Keys. (API) .model. Puede verificar la pregunta anterior sobre cómo establecer la prioridad de los canales.
Excepto por algunos canales especiales que se muestran en la configuración avanzada, todos los proveedores de formato OpenAI deben completar completamente la base_url, lo que significa que el base_url debe terminar con/v1/chat/completars. Si está utilizando modelos GitHub, el base_url debe completarse como https://models.inference.ai.azure.com/chat/completions, no la URL de Azure.
La configuración de tiempo de espera a nivel de canal tiene mayor prioridad que la configuración de tiempo de espera del modelo global. El orden de prioridad es: Configuración de tiempo de espera del modelo a nivel de canal> Configuración de tiempo de espera predeterminado a nivel de canal> Configuración de tiempo de espera del modelo global> Configuración global de tiempo de espera predeterminado> Tiempo de espera de variable de entorno.
Al ajustar el tiempo de tiempo de espera del modelo, puede evitar el error de algunos canales tiempo fuera. Si encuentra el error {'error': '500', 'details': 'fetch_response_stream Read Response Timeout'} , intente aumentar el tiempo de tiempo de espera del modelo.
Si desea establecer el mismo límite de frecuencia para los cuatro modelos Gemini-1.5-Pro-Latest, Gemini-1.5-Pro, Gemini-1.5-Pro-001, Gemini-1.5-Pro-002 simultáneamente, puede configurarlo así:
api_key_rate_limit :
gemini-1.5-pro : 1000/minEsto coincidirá con todos los modelos que contienen la cadena Gemini-1.5-Pro. El límite de frecuencia para estos cuatro modelos, Gemini-1.5-Pro-Latest, Gemini-1.5-Pro, Géminis-1.5-Pro-001, Gemini-1.5-Pro-002, se establecerá en 1000/min. La lógica para configurar el campo API_KEY_RATE_LIMIT es la siguiente, aquí hay un archivo de configuración de muestra:
api_key_rate_limit :
gemini-1.5-pro : 1000/min
gemini-1.5-pro-002 : 500/minEn este momento, si hay una solicitud que usa el modelo Gemini-1.5-Pro-002.
Primero, el UNI-API intentará hacer coincidir con precisión el modelo en el API_KEY_RATE_LIMIT. Si se establece el límite de velocidad para Gemini-1.5-Pro-002, entonces el límite de velocidad para Gemini-1.5-Pro-002 es de 500/min. Si el modelo solicitado en este momento no es Gemini-1.5-Pro-002, sino Gemini-1.5-Pro-Latest, dado que el API_KEY_RATE_LIMIT no tiene un límite de velocidad establecido para Gemini-1.5-Pro-Latest, buscará cualquier modelo con el mismo prefix que se establecerá Gemini-1.5-Pro-Latest que se ha establecido, por lo tanto, el Límite de tasa de GeMini. 1000/min.