تبسيط الصينية |
ميزات | دليل المستخدم |
مهم
سيكون هناك تعديلات كبيرة في التكوين بعد V0.7.0 وسيكون غير متوافق مع الإصدارات السابقة. من المفيد التكوين من خلال واجهة المستخدم ويوفر خيارات تكوين أكثر قوة.
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 والمشاريع الأخرى
كيفية القيام بذلك: FORWARD_CONFIG=[{"base_url":"http://localhost:8080","route":"/localai","type":"openai"}]
محليًا كمثال. يمكنك بعد ذلك استخدام Localai عن طريق زيارة http: // localhost: 8000/localai.
(أكثر)
تكوين متغيرات البيئة أو ملفات .env على النحو التالي:
FORWARD_CONFIG = [{"base_url":"https://generativelanguage.googleapis.com","route":"/gemini","type":"general"}]
ملاحظة: بعد بدء aidf run
، يمكنك استخدام Gemini Pro عن طريق زيارة http: // localhost: 8000/gemini.
السيناريو 1: استخدم إعادة التوجيه العالمي لإعادة توجيه الخدمات من أي مصدر ، ويمكنك الحصول على التحكم في معدل الطلب والتحكم في معدل الرمز المميز ؛
السيناريو 2: يمكن تحويل تنسيقات API للعديد من النماذج السحابية إلى تنسيق API من Openai من خلال Litellm ، ثم يتم إعادة توجيهها باستخدام نمط Openai
(أكثر)
تنفيذ aifd run --webui
لإدخال صفحة التكوين (عنوان الخدمة الافتراضية http: // localhost: 8001)
يمكنك إنشاء ملف .env في دليل تشغيل المشروع لتخصيص التكوينات المختلفة. يمكن رؤية ملف .env.example في دليل الجذر في التكوين المرجعي.
بعد تمكين ذاكرة التخزين المؤقت ، سيتم تخزين محتوى المسار general
، وسيكون أنواع إعادة التوجيه openai
و general
، على التوالي ، وتختلف السلوكيات قليلاً.
عند استخدام openai
Townering ، بعد فتح ذاكرة التخزين المؤقت ، يمكنك استخدام معلمة Openai's 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.