
تحويل واجهات برمجة تطبيقات نموذج مختلفة إلى تنسيق API Openai خارج الصندوق.
عنصر واجهة مستخدم 10 ميغابايت+ التي تتيح تحويل مختلف واجهات برمجة التطبيقات النموذجية إلى تنسيقات API Openai خارج الصندوق.
النماذج الحالية المدعومة:
تفضل بزيارة صفحة إصدار GitHub لتنزيل ملف التنفيذ الذي يناسب نظام التشغيل الخاص بك.

أو استخدم Docker سحب لتنزيل الإصدار المحدد من ملف الصورة:
docker pull soulteary/amazing-openai-api:v0.7.0 لا تحتاج AOA إلى كتابة أي ملفات تكوين ، ويمكنها ضبط سلوك التطبيق من خلال تحديد متغيرات البيئة ، بما في ذلك "تحديد نموذج العمل" ، "تحديد المعلمات المطلوبة لعملية تشغيل النموذج" ، و "إعداد توافق النموذج".
بشكل ./aoa AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ سيقوم البرنامج بتعيين نموذج العمل على azure .
AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ ./aoaإذا كنت تفضل Docker ، يمكنك استخدام الأمر التالي:
docker run --rm -it -e AZURE_ENDPOINT=https://你的部署名称.openai.azure.com/ -p 8080:8080 soulteary/amazing-openai-api:v0.7.0 بعد بدء الخدمة ، يمكننا الوصول إلى خدمة API نفسها مثل Openai من خلال زيارة http://localhost:8080/v1 .
يمكنك استخدام curl لإجراء اختبار سريع:
curl -v http://127.0.0.1:8080/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer 123 "
-d ' {
"model": "gpt-4",
"messages": [
{
"role": "system",
"content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."
},
{
"role": "user",
"content": "Compose a poem that explains the concept of recursion in programming."
}
]
} 'يمكنك أيضًا استخدام Openai SDK الرسمي للمكالمات ، أو استخدام أي برامج مصدر مفتوحة متوافقة مع OpenAI (لمزيد من الأمثلة ، انظر المثال):
from openai import OpenAI
client = OpenAI (
api_key = "your-key-or-input-something-as-you-like" ,
base_url = "http://127.0.0.1:8080/v1"
)
chat_completion = client . chat . completions . create (
messages = [
{
"role" : "user" ,
"content" : "Say this is a test" ,
}
],
model = "gpt-3.5-turbo" ,
)
print ( chat_completion ) إذا كنت لا ترغب في عدم فضح مفتاح API للتطبيق ، أو كنت قلقًا بشأن ما إذا كان لدى العديد من البرامج المعقدة مفتوحة المصدر خطر تسرب مفتاح API ، فيمكننا تكوين AZURE_API_KEY=你的API Key ، ثم لا تحتاج برامج المصدر المفتوحة المختلفة إلى ملء مفتاح API عند الطلب (أو فقط).
بالطبع ، نظرًا لبعض القيود المفروضة على Azure والتعديل الصعب لأسماء مكالمات النماذج في بعض البرامج المفتوحة المصدر ، يمكننا تعيين النماذج في الطلب الأصلي إلى اسم الطراز الحقيقي بالطريقة التالية. على سبيل المثال ، استبدل GPT 3.5/4 بـ yi-34b-chat :
gpt-3.5-turbo:yi-34b-chat,gpt-4:yi-34b-chat إذا كنت ترغب في استخدام yi-34b-chat أو gemini-pro ، فنحن بحاجة إلى تعيين AOA_TYPE=yi أو AOA_TYPE=gemini ، باستثناء ذلك ، لا يوجد فرق.
يحتوي المشروع على عينة docker compose docker-compose.yml واجهات النموذج example حاليًا.
ثم استخدم docker compose up لبدء الخدمة ويمكن استخدامها بسرعة.
اضبط نموذج العمل AOA_TYPE ، معلمات اختيارية ، افتراضيًا إلى azure :
# 选择一个服务, "azure", "yi", "gemini"
AOA_TYPE: " azure " عنوان خدمة البرنامج ، المعلمات الاختيارية ، الافتراضيات إلى 8080 و 0.0.0.0 :
# 服务端口,默认 `8080`
AOA_PORT: 8080
# 服务地址,默认 `0.0.0.0`
AOA_HOST: " 0.0.0.0 " إذا أردنا تحويل خدمة Openai التي تم نشرها على Azure إلى مكالمة Openai القياسية ، فيمكننا استخدام الأمر التالي:
AZURE_ENDPOINT=https:// <你的 Endpoint 地址> .openai.azure.com/ AZURE_API_KEY= <你的 API KEY > AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35 ./amazing-openai-api في الأمر أعلاه ، يتضمن AZURE_ENDPOINT و AZURE_API_KEY العناصر الأساسية في خدمة Azure Openai ، لأن اسم النشر لنشر Azure GPT 3.5/GPT 4 لا يسمح بتضمينه . لذلك استخدمنا AZURE_MODEL_ALIAS لاستبدال اسم النموذج في المحتوى الذي تم طلبه مع Defure Deployment. يمكن استخدام هذه التقنية حتى لتعيين النماذج تلقائيًا المستخدمة من قبل العديد من البرامج المفتوحة والمصادر المغلقة في النماذج التي نريدها:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35,gpt-4:gpt-35 نظرًا لأننا قمنا بتكوين AZURE_API_KEY ، فلا داعي لإضافة Authorization: Bearer <你的API Key> (يمكن أيضًا كتابته بشكل عرضي) سواء كان برنامجًا مفتوحًا أو مكالمات curl .

إذا كنت لا تزال معتادًا على إضافة محتوى المصادقة إلى معلمات رأس الطلب ، فيمكنك استخدام الأمر التالي الذي لا يحتوي على AZURE_API_KEY ، وسيتم تمرير البرنامج من خلال التحقق من خدمة Azure:
AZURE_ENDPOINT=https:// <你的 Endpoint 地址> .openai.azure.com/ AZURE_MODEL_ALIAS=gpt-3.5-turbo:gpt-35 ./amazing-openai-api إذا كنت ترغب في تحديد إصدار خاص لـ API بنفسك ، فيمكنك تحديد AZURE_IGNORE_API_VERSION_CHECK=true لإجبار التحقق من صحة إصدار API للبرنامج نفسه.
إذا كان لديك بالفعل Azure GPT Vision ، بالإضافة إلى استخدام مكالمات SDK ، يمكنك أيضًا الرجوع إلى هذا المستند واستخدام curl للاتصال: GPT Vision.
# (必选) Azure Deployment Endpoint URL
AZURE_ENDPOINT
# (必选) Azure API Key
AZURE_API_KEY
# (可选) 模型名称,默认 GPT-4
AZURE_MODEL
# (可选) API Version
AZURE_API_VER
# (可选) 是否是 Vision 实例
ENV_AZURE_VISION
# (可选) 模型映射别名
AZURE_MODEL_ALIAS
# (可选) Azure 网络代理
AZURE_HTTP_PROXY
AZURE_SOCKS_PROXY
# (可选) 忽略 Azure API Version 检查,默认 false,始终检查
AZURE_IGNORE_API_VERSION_CHECKإذا أردنا تحويل واجهة برمجة تطبيقات YI الرسمية إلى مكالمة Openai القياسية ، فيمكننا استخدام الأمر التالي:
AOA_TYPE=yi YI_API_KEY= <你的 API KEY > ./amazing-openai-api على غرار استخدام خدمات Azure ، يمكننا استخدام خدعة لتعيين النماذج تلقائيًا المستخدمة من قبل العديد من البرامج المفتوحة المصدر المغلقة إلى النموذج الذي نريده:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
YI_MODEL_ALIAS=gpt-3.5-turbo:yi-34b-chat,gpt-4:yi-34b-chat إذا قمنا بتكوين YI_API_KEY عند بدء الخدمة ، فلن نحتاج إلى إضافة Authorization: Bearer <你的API Key> (يمكنه أيضًا كتابته curl ) ، مما سيوفر عزل مفتاح API الصارم وتحسين أمان مفتاح API.
إذا كنت لا تزال معتادًا على إضافة محتوى المصادقة إلى معلمات رأس الطلب ، فيمكنك استخدام الأمر التالي الذي لا يحتوي على YI_API_KEY ، وسيتم تمرير البرنامج من خلال التحقق من خدمة yi API:
./amazing-openai-api # (必选) YI API Key
YI_API_KEY
# (可选) 模型名称,默认 yi-34b-chat
YI_MODEL
# (可选) YI Deployment Endpoint URL
YI_ENDPOINT
# (可选) API Version,默认 v1beta,可选 v1
YI_API_VER
# (可选) 模型映射别名
YI_MODEL_ALIAS
# (可选) Azure 网络代理
YI_HTTP_PROXY
YI_SOCKS_PROXYإذا أردنا تحويل واجهة برمجة تطبيقات Gemini الرسمية من Google إلى مكالمة Openai قياسية ، فيمكننا استخدام الأمر التالي:
AOA_TYPE=gemini GEMINI_API_KEY= <你的 API KEY > ./amazing-openai-api على غرار استخدام خدمات Azure ، يمكننا استخدام خدعة لتعيين النماذج تلقائيًا المستخدمة من قبل العديد من البرامج المفتوحة المصدر المغلقة إلى النموذج الذي نريده:
# 比如不论是 3.5 还是 4 都映射为 `gpt-35`
GEMINI_MODEL_ALIAS=gpt-3.5-turbo:gemini-pro,gpt-4:gemini-pro إذا قمنا بتكوين GEMINI_API_KEY عند بدء الخدمة ، فلن نحتاج إلى إضافة Authorization: Bearer <你的API Key> (يمكنه كتابته أيضًا curl ) ، مما سيوفر عزل مفتاح API صارم وتحسين أمان مفتاح API.
إذا كنت لا تزال معتادًا على إضافة محتوى المصادقة إلى معلمات رأس الطلب ، فيمكنك استخدام الأمر التالي الذي لا يحتوي على GEMINI_API_KEY ، وسيتم تمرير البرنامج من خلال التحقق من خدمات Google AI:
./amazing-openai-api # (必选) Gemini API Key
GEMINI_API_KEY
# (可选) Gemini 安全设置,可选 `BLOCK_NONE` / `BLOCK_ONLY_HIGH` / `BLOCK_MEDIUM_AND_ABOVE` / `BLOCK_LOW_AND_ABOVE` / `HARM_BLOCK_THRESHOLD_UNSPECIFIED`
GEMINI_SAFETY
# (可选) Gemini 模型 版本,默认 `gemini-pro`
GEMINI_MODEL
# (可选) Gemini API 版本,默认 `v1beta`
GEMINI_API_VER
# (可选) Gemini API 接口地址
GEMINI_ENDPOINT
# (可选) 模型映射别名
GEMINI_MODEL_ALIAS
# (可选) Gemini 网络代理
GEMINI_HTTP_PROXY
GEMINI_SOCKS_PROXY