Chinês simplificado |
Recursos |
Importante
Haverá grandes ajustes na configuração após v0.7.0 e será incompatível com versões anteriores. É mais conveniente configurar através da interface do usuário e fornece opções de configuração mais poderosas.
O Openai-Forward é um serviço de encaminhamento eficiente para grandes modelos de idiomas. Suas funções principais incluem controle da taxa de solicitação de usuário, limitação de taxa de token, cache de previsão inteligente, gerenciamento de logs e gerenciamento de chaves da API etc., com o objetivo de fornecer serviços de encaminhamento de modelos eficientes e convenientes. Seja um modelo de idioma local proxy ou um modelo de linguagem em nuvem, como localai ou OpenAI, ele pode ser facilmente implementado pelo OpenAi Forward. Graças ao apoio de bibliotecas como Uvicorn, Aiohttp e Asyncio, o OpenAi-Forward alcança excelente desempenho assíncrono.
O endereço de serviço do agente construído por este projeto:
Endereço de serviço OpenAI original
https://api.openai-forward.com
https://render.openai-forward.com
O endereço de serviço que permite o cache (o resultado da solicitação do usuário será salvo por um período de tempo)
https://smart.openai-forward.com
Implantar a documentação
Instalar
pip install openai-forward
# 或安装webui版本:
pip install openai-forward[webui]Inicie o serviço
aifd run
# 或启动带webui的服务
aifd run --webui Se você ler a configuração .env do caminho raiz, verá as seguintes informações de inicialização
❯ aifd run
╭────── ? openai-forward is ready to serve ! ───────╮
│ │
│ base url https://api.openai.com │
│ route prefix / │
│ api keys False │
│ forward keys False │
│ cache_backend MEMORY │
╰────────────────────────────────────────────────────╯
╭──────────── ⏱️ Rate Limit configuration ───────────╮
│ │
│ backend memory │
│ strategy moving-window │
│ global rate limit 100/minute (req) │
│ /v1/chat/completions 100/2minutes (req) │
│ /v1/completions 60/minute ; 600/hour (req) │
│ /v1/chat/completions 60/second (token) │
│ /v1/completions 60/second (token) │
╰────────────────────────────────────────────────────╯
INFO: Started server process [191471]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) A opção padrão para aifd run é proxy https://api.openai.com
A seguir, é apresentado um exemplo do endereço de serviço estabelecido https://api.openai-forward.com
Python
from openai import OpenAI # pip install openai>=1.0.0
client = OpenAI(
+ base_url="https://api.openai-forward.com/v1",
api_key="sk-******"
)Cenários aplicáveis: usado com localai, API-For-Open-Llm e outros projetos
Como fazer: Tome FORWARD_CONFIG=[{"base_url":"http://localhost:8080","route":"/localai","type":"openai"}] como exemplo. Você pode usar o localai visitando http: // localhost: 8000/localai.
(Mais)
Configure variáveis de ambiente ou arquivos .env da seguinte forma:
FORWARD_CONFIG = [{"base_url":"https://generativelanguage.googleapis.com","route":"/gemini","type":"general"}] NOTA: Depois que aidf run é iniciada, você pode usar o Gemini Pro, visitando http: // localhost: 8000/Gemini.
Cenário 1: Use o encaminhamento universal para encaminhar serviços de qualquer fonte e você pode obter controle de taxa de solicitação e controle da taxa de token;
Cenário 2: Os formatos da API de muitos modelos em nuvem podem ser convertidos no formato da API do OpenAI através de Litellm e depois encaminhados usando o estilo OpenAi
(Mais)
Execute aifd run --webui para entrar na página de configuração (endereço de serviço padrão http: // localhost: 8001)
Você pode criar um arquivo .env no diretório RUN do projeto para personalizar várias configurações. O arquivo .env.example no diretório raiz pode ser visto na configuração de referência.
Após o cache ser ativado, o conteúdo da rota especificada será armazenada em cache e os tipos general encaminhamento são openai e general , respectivamente, e os comportamentos são ligeiramente diferentes.
Ao usar o encaminhamento openai , após abrir o cache, você pode usar o parâmetro extra_body do OpenAI para controlar o comportamento do cache, como
Python
from openai import OpenAI
client = OpenAI(
+ base_url="https://smart.openai-forward.com/v1",
api_key="sk-******"
)
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "Hello!"}
],
+ extra_body={"caching": True}
)Curl
curl https://smart.openai.com/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer sk-****** "
-d ' {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}],
"caching": true
} '
Veja o arquivo .env
Casos de uso:
import openai
+ openai.api_base = "https://api.openai-forward.com/v1"
- openai.api_key = "sk-******"
+ openai.api_key = "fk-******" Consulte .env.example para usar os casos de uso para encaminhar serviços com diferentes endereços para diferentes rotas para a mesma porta.
O caminho de salvamento está no caminho Log/openai/chat/chat.log no diretório atual.
O formato de registro é
{'messages': [{'role': 'user', 'content': 'hi'}], 'model': 'gpt-3.5-turbo', 'stream': True, 'max_tokens': None, 'n': 1, 'temperature': 1, 'top_p': 1, 'logit_bias': None, 'frequency_penalty': 0, 'presence_penalty': 0, 'stop': None, 'user': None, 'ip': '127.0.0.1', 'uid': '2155fe1580e6aed626aa1ad74c1ce54e', 'datetime': '2023-10-17 15:27:12'}
{'assistant': 'Hello! How can I assist you today?', 'is_tool_calls': False, 'uid': '2155fe1580e6aed626aa1ad74c1ce54e'}
Converter em formato json :
aifd convert Get chat_openai.json :
[
{
"datetime" : " 2023-10-17 15:27:12 " ,
"ip" : " 127.0.0.1 " ,
"model" : " gpt-3.5-turbo " ,
"temperature" : 1 ,
"messages" : [
{
"user" : " hi "
}
],
"tools" : null ,
"is_tool_calls" : false ,
"assistant" : " Hello! How can I assist you today? "
}
]Contribuir para este projeto é bem -vindo enviando uma solicitação de tração ou levantando perguntas no repositório.
O OpenAl-Forward usa uma licença do MIT.