Bahasa Inggris yang disederhanakan |
Fitur |
Penting
Akan ada penyesuaian besar dalam konfigurasi setelah v0.7.0 dan tidak akan kompatibel dengan versi sebelumnya. Lebih nyaman untuk dikonfigurasi melalui UI dan menyediakan opsi konfigurasi yang lebih kuat.
Openai-Forward adalah layanan penerusan yang efisien untuk model bahasa besar. Fungsi intinya meliputi kontrol tingkat permintaan pengguna, pembatasan tingkat token, caching prediksi cerdas, manajemen log dan manajemen kunci API, dll., Bertujuan untuk menyediakan layanan penerusan model yang efisien dan nyaman. Apakah itu model bahasa lokal proxy atau model bahasa cloud, seperti localai atau openai, itu dapat dengan mudah diimplementasikan oleh openai ke depan. Berkat dukungan perpustakaan seperti Uvicorn, Aiohttp, dan Asyncio, Openai-Forward mencapai kinerja asinkron yang sangat baik.
Alamat layanan agen yang dibangun oleh proyek ini:
Alamat Layanan Openai Asli
https://api.openai-forward.com
https://render.openai-forward.com
Alamat layanan yang memungkinkan cache (hasil permintaan pengguna akan disimpan untuk jangka waktu tertentu)
https://smart.openai-forward.com
Menyebarkan dokumentasi
Memasang
pip install openai-forward
# 或安装webui版本:
pip install openai-forward[webui]
Mulailah layanan
aifd run
# 或启动带webui的服务
aifd run --webui
Jika Anda membaca konfigurasi .env
dari jalur root, Anda akan melihat informasi startup berikut
❯ 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)
Opsi default untuk aifd run
adalah proxy https://api.openai.com
Berikut ini adalah contoh alamat layanan yang ditetapkan 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-******"
)
Skenario yang berlaku: Digunakan dengan Localai, API-For-Open-Llm dan Proyek Lainnya
Cara Melakukan: Ambil FORWARD_CONFIG=[{"base_url":"http://localhost:8080","route":"/localai","type":"openai"}]
sebagai contoh. Anda kemudian dapat menggunakan localai dengan mengunjungi http: // localhost: 8000/localai.
(Lagi)
Konfigurasikan variabel lingkungan atau file .env sebagai berikut:
FORWARD_CONFIG = [{"base_url":"https://generativelanguage.googleapis.com","route":"/gemini","type":"general"}]
Catatan: Setelah aidf run
dimulai, Anda dapat menggunakan Gemini Pro dengan mengunjungi http: // localhost: 8000/Gemini.
Skenario 1: Gunakan penerusan universal untuk meneruskan layanan dari sumber apa pun, dan Anda dapat memperoleh kontrol tingkat permintaan dan kontrol tarif token;
Skenario 2: Format API dari banyak model cloud dapat dikonversi menjadi format API Openai melalui litellm, dan kemudian diteruskan menggunakan gaya openai
(Lagi)
Jalankan aifd run --webui
untuk memasukkan halaman konfigurasi (alamat layanan default http: // localhost: 8001)
Anda dapat membuat file .env di direktori menjalankan proyek untuk menyesuaikan berbagai konfigurasi. File .env.example di direktori root dapat dilihat dalam konfigurasi referensi.
Setelah cache general
, konten dari rute yang ditentukan akan di -cache, dan tipe penerusan masing -masing adalah openai
dan general
, dan perilaku sedikit berbeda.
Saat menggunakan penerusan openai
, setelah membuka cache, Anda dapat menggunakan parameter extra_body
Openai untuk mengontrol perilaku cache, seperti
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}
)
Keriting
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
} '
Lihat file .env
Gunakan kasus:
import openai
+ openai.api_base = "https://api.openai-forward.com/v1"
- openai.api_key = "sk-******"
+ openai.api_key = "fk-******"
Lihat .env.example
untuk menggunakan kasus penggunaan untuk layanan penerusan dengan alamat yang berbeda ke rute yang berbeda ke port yang sama.
Jalur Simpan ada di jalur Log/openai/chat/chat.log
di direktori saat ini.
Format catatannya adalah
{'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'}
Konversi ke format json
:
aifd convert
Dapatkan 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? "
}
]
Berkontribusi pada proyek ini dipersilakan dengan mengirimkan permintaan tarik atau mengajukan pertanyaan di repositori.
Openai-Forward menggunakan lisensi MIT.