단순화 된 중국어 |. 영어
기능 |
중요한
V0.7.0 이후 구성에서 주요 조정이 있으며 이전 버전과 호환되지 않습니다. UI를 통해 구성하는 것이 더 편리하고보다 강력한 구성 옵션을 제공합니다.
Openai-Forward 는 대형 언어 모델을위한 효율적인 전달 서비스입니다. 핵심 기능에는 사용자 요청 속도 제어, 토큰 요율 제한, 지능형 예측 캐싱, 로그 관리 및 API 키 관리 등이 효율적이고 편리한 모델 전달 서비스를 제공하는 것을 목표로합니다. 프록시 로컬 언어 모델이든 LocalAI 또는 OpenAI와 같은 클라우드 언어 모델이든 OpenAI Forward에서 쉽게 구현할 수 있습니다. Uvicorn, Aiohttp 및 Asyncio와 같은 라이브러리의 지원 덕분에 Openai-Forward는 우수한 비동기 성능을 달성합니다.
이 프로젝트에서 구축 한 에이전트 서비스 주소 :
원래 OpenAI 서비스 주소
https://api.openai-forward.com
https://render.openai-forward.com
캐시를 활성화하는 서비스 주소 (사용자 요청 결과는 일정 기간 동안 저장됩니다)
https://smart.openai-forward.com
문서를 배포하십시오
설치하다
pip install openai-forward
# 或安装webui版本:
pip install openai-forward[webui]
서비스를 시작하십시오
aifd run
# 或启动带webui的服务
aifd run --webui
루트 경로의 .env
구성을 읽으면 다음 시작 정보가 표시됩니다.
❯ 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)
aifd run
의 기본 옵션은 프록시 https://api.openai.com
입니다
다음은 기존 서비스 주소 https://api.openai-forward.com
의 예입니다.
파이썬
from openai import OpenAI # pip install openai>=1.0.0
client = OpenAI(
+ base_url="https://api.openai-forward.com/v1",
api_key="sk-******"
)
해당 시나리오 : LocalAI, API-For-Open-LLM 및 기타 프로젝트와 함께 사용됩니다
수행 방법 : http : // localhost : 8080에 Localai 서비스를 배치 한 경우, FORWARD_CONFIG=[{"base_url":"http://localhost:8080","route":"/localai","type":"openai"}]
설정하면 환경을 정하십시오. 그런 다음 http : // localhost : 8000/localai를 방문하여 localai를 사용할 수 있습니다.
(더)
다음과 같이 환경 변수 또는 .env 파일을 구성하십시오.
FORWARD_CONFIG = [{"base_url":"https://generativelanguage.googleapis.com","route":"/gemini","type":"general"}]
참고 : aidf run
시작된 후 http : // localhost : 8000/gemini를 방문하여 Gemini Pro를 사용할 수 있습니다.
시나리오 1 : 모든 소스에서 서비스를 전달하기 위해 Universal Forwarding을 사용하면 요청 속도 제어 및 토큰 속도 제어를 얻을 수 있지만 범용 전달은 사용자 정의 키를 지원하지 않습니다.
시나리오 2 : 많은 클라우드 모델의 API 형식은 Litellm을 통해 OpenAI의 API 형식으로 변환 한 다음 OpenAI 스타일을 사용하여 전달할 수 있습니다.
(더)
구성 페이지를 입력하려면 aifd run --webui
(기본 서비스 주소 http : // localhost : 8001)를 입력하십시오.
프로젝트 실행 디렉토리에서 .env 파일을 만들어 다양한 구성을 사용자 정의 할 수 있습니다. 루트 디렉토리의 .env.example 파일은 참조 구성에서 볼 수 있습니다.
캐시가 활성화되면 지정된 general
의 내용이 캐시되고 전달 유형은 각각 openai
및 general
이며 동작은 약간 다릅니다.
openai
전달을 사용하는 경우 캐시를 열면 OpenAi의 extra_body
매개 변수를 사용하여 캐시 동작을 제어 할 수 있습니다.
파이썬
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 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
} '
.env 파일을 참조하십시오
사용 사례 :
import openai
+ openai.api_base = "https://api.openai-forward.com/v1"
- openai.api_key = "sk-******"
+ openai.api_key = "fk-******"
동일한 포트의 다른 경로로 주소가 다른 서비스를 전달하기 위해 사용 사례를 사용하려면 .env.example
참조하십시오.
저장 경로는 현재 디렉토리의 Log/openai/chat/chat.log
경로에 있습니다.
레코드 형식은입니다
{'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'}
json
형식으로 변환 :
aifd convert
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? "
}
]
이 프로젝트에 기여하는 것은 풀 요청을 제출하거나 저장소에서 질문을 제기하여 환영합니다.
OpenAi-Forward는 MIT 라이센스를 사용합니다.