中文
واجهات برمجة التطبيقات المريحة المتوافقة مع Openai لصالح Amazon Bedrock
تم إعادة تمثيل الكود المصدري مع واجهة برمجة تطبيقات Converse الجديدة بواسطة Bedrock والتي توفر الدعم الأصلي مع مكالمات الأدوات.
إذا كنت تواجه أي مشاكل ، فيرجى إثارة مشكلة.
يقدم Amazon Bedrock مجموعة واسعة من نماذج الأساس (مثل Claude 3 Opus/Sonnet/Haiku ، Llama 2/3 ، Mistral/Mixtral ، وما إلى ذلك) ومجموعة واسعة من القدرات لك لبناء تطبيقات AI التوليدية. تحقق من صفحة Amazon Bedrock المقصودة للحصول على معلومات إضافية.
في بعض الأحيان ، قد يكون لديك تطبيقات تم تطويرها باستخدام Openai APIs أو SDKs ، وتريد تجربة Strock Amazon دون تعديل قاعدة الشفرة الخاصة بك. أو قد ترغب ببساطة في تقييم إمكانيات هذه النماذج الأساسية في أدوات مثل Autogen وما إلى ذلك ، حسنًا ، يتيح لك هذا المستودع الوصول إلى نماذج Amazon Bedrock بسلاسة من خلال Apis و SDKs ، مما يتيح لك اختبار هذه النماذج دون تغييرات رمز.
إذا وجدت مستودع GitHub مفيدًا ، فيرجى التفكير في منحه نجمة مجانية لإظهار تقديرك ودعمك للمشروع.
سمات:
يرجى التحقق من دليل الاستخدام لمزيد من التفاصيل حول كيفية استخدام واجهات برمجة التطبيقات الجديدة.
ملاحظة: لا يتم دعم واجهة برمجة تطبيقات إكمال النص القديم ، يجب عليك التغيير لاستخدام API لإكمال الدردشة.
مدعوم من عائلة نماذج الأمازون الأساس:
يمكنك استدعاء API models
للحصول على القائمة الكاملة لمعرفات النموذج المدعومة.
ملاحظة: يتم تعيين النموذج الافتراضي على
anthropic.claude-3-sonnet-20240229-v1:0
والتي يمكن تغييرها عبر متغيرات بيئة Lambda (DEFAULT_MODEL
).
يرجى التأكد من أنك قد قابلت المتطلبات المسبقة أدناه:
لمزيد من المعلومات حول كيفية طلب الوصول إلى النموذج ، يرجى الرجوع إلى دليل مستخدم Amazon Bedrock (إعداد> وصول النموذج)
يوضح الرسم البياني التالي الهندسة المعمارية المرجعية. لاحظ أنه يتضمن أيضًا VPC جديدًا مع شبكات فرعية عامة فقط لموازن تحميل التطبيق (ALB).
يمكنك أيضًا اختيار استخدام AWS Fargate خلف ALB بدلاً من AWS Lambda ، والفرق الرئيسي هو الكمون في البايت الأول لاستجابة البث (Fargate أقل).
بدلاً من ذلك ، يمكنك استخدام عنوان URL لدالة Lambda لاستبدال ALB ، انظر المثال
يرجى اتباع الخطوات أدناه لنشر واجهات برمجة تطبيقات وكيل الأساس في حساب AWS الخاص بك. يدعم فقط المناطق التي تتوفر فيها صدمة Amazon Bedrock (مثل us-west-2
). سيستغرق النشر حوالي 3-5 دقائق .
الخطوة 1: إنشاء مفتاح API المخصص الخاص بك (اختياري)
ملاحظة: هذه الخطوة هي استخدام أي سلسلة (بدون مسافات) ترغب في إنشاء مفتاح API مخصص (بيانات الاعتماد) التي سيتم استخدامها للوصول إلى واجهة برمجة تطبيقات الوكيل لاحقًا. لا يتعين على هذا المفتاح مطابقة مفتاح Openai الفعلي الخاص بك ، ولا تحتاج إلى الحصول على مفتاح Openai API. يوصى بأن تأخذ هذه الخطوة والتأكد من الحفاظ على المفتاح آمنًا وخاصًا.
الخطوة 2: نشر مكدس السحاب
ALB + Lambda
ALB + Fargate
BedrockProxyAPIKey
). إذا لم تقم بإعداد مفتاح API ، فاترك هذا الحقل فارغًا. انقر فوق "التالي". هذا هو! ؟ بمجرد نشرها ، انقر فوق "مكدس CloudFormation" وانتقل إلى علامة التبويب المخرجات ، يمكنك العثور على عنوان URL الأساسي API من APIBaseUrl
، يجب أن تبدو القيمة مثل http://xxxx.xxx.elb.amazonaws.com/api/v1
.
كل ما تحتاجه هو مفتاح API وعنوان UPI BASE. إذا لم تقم بإعداد المفتاح الخاص بك ، فسيتم استخدام مفتاح API الافتراضي ( bedrock
).
الآن ، يمكنك تجربة واجهات برمجة تطبيقات الوكيل. دعنا نقول أنك تريد اختبار نموذج كلود 3 Sonnet (معرف النموذج: anthropic.claude-3-sonnet-20240229-v1:0
.
مثال استخدام API
export OPENAI_API_KEY= < API key >
export OPENAI_BASE_URL= < API base url >
# For older versions
# https://github.com/openai/openai-python/issues/624
export OPENAI_API_BASE= < API base url >
curl $OPENAI_BASE_URL /chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer $OPENAI_API_KEY "
-d ' {
"model": "anthropic.claude-3-sonnet-20240229-v1:0",
"messages": [
{
"role": "user",
"content": "Hello!"
}
]
} '
مثال استخدام SDK
from openai import OpenAI
client = OpenAI ()
completion = client . chat . completions . create (
model = "anthropic.claude-3-sonnet-20240229-v1:0" ,
messages = [{ "role" : "user" , "content" : "Hello!" }],
)
print ( completion . choices [ 0 ]. message . content )
يرجى التحقق من دليل الاستخدام لمزيد من التفاصيل حول كيفية استخدام API التضمين و API متعددة الوسائط ومكالمة الأدوات.
يدعم الاستدلال عبر المنطقة الوصول إلى نماذج الأساس عبر المناطق ، مما يسمح للمستخدمين باستدعاء النماذج المستضافة في مناطق AWS مختلفة للاستدلال. المزايا الرئيسية:
يرجى التحقق من استنتاج الأساس المتقاطع
القيد: حاليًا ، تدعم بوابة الوصول إلى الأساس فقط الاستدلال المتقاطع للنماذج التالية:
المتطلبات الأساسية:
مثال استخدام API:
us.anthropic.claude-3-5-sonnet-20240620-v1:0
curl $OPENAI_BASE_URL /chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer $OPENAI_API_KEY "
-d ' {
"model": "us.anthropic.claude-3-5-sonnet-20240620-v1:0",
"max_tokens": 2048,
"messages": [
{
"role": "user",
"content": "Hello!"
}
]
} '
فيما يلي صورة لإعداد النموذج في Autogen Studio.
تأكد من استخدام ChatOpenAI(...)
بدلاً من OpenAI(...)
# pip install langchain-openai
import os
from langchain . chains import LLMChain
from langchain . prompts import PromptTemplate
from langchain_openai import ChatOpenAI
chat = ChatOpenAI (
model = "anthropic.claude-3-sonnet-20240229-v1:0" ,
temperature = 0 ,
openai_api_key = os . environ [ 'OPENAI_API_KEY' ],
openai_api_base = os . environ [ 'OPENAI_BASE_URL' ],
)
template = """Question: {question}
Answer: Let's think step by step."""
prompt = PromptTemplate . from_template ( template )
llm_chain = LLMChain ( prompt = prompt , llm = chat )
question = "What NFL team won the Super Bowl in the year Justin Beiber was born?"
response = llm_chain . invoke ( question )
print ( response )
هذا التطبيق لا يجمع أي من بياناتك. علاوة على ذلك ، لا يسجل أي طلبات أو ردود افتراضيًا.
الإجابة المختصرة هي أن API Gateway لا تدعم أحداث SENT SENT (SSE) لاستجابة البث.
يدعم هذا الحل فقط المناطق التي تتوفر فيها الأساس الأمازون ، كما هو الحال في الوقت الحالي ، فيما يلي القائمة.
بشكل عام ، سيتم أيضًا دعم جميع المناطق التي تدعمها Amazon Bedrock ، إن لم يكن ، في إرجاع مشكلة في GitHub.
لاحظ أنه لا تتوفر جميع النماذج في تلك المناطق.
نعم ، يمكنك استنساخ الريبو وبناء صورة الحاوية بنفسك ( src/Dockerfile
) ثم الضغط على repo ECR. يمكنك استخدام scripts/push-to-ecr.sh
استبدل عنوان URL Repo في قالب CloudFormation قبل النشر.
نعم ، يمكنك تشغيل هذا محليًا.
يجب أن يبدو عنوان URL الأساسي API مثل http://localhost:8000/api/v1
.
مقارنةً بمكالمة AWS SDK ، ستجلب الهندسة المعمارية المرجعية زمنًا إضافيًا للاستجابة ، ويمكنك محاولة اختبار ذلك.
أيضًا ، يمكنك استخدام URL Lambda Web Adapter + وظيفة (انظر المثال) لاستبدال ALB أو AWS Fargate لاستبدال Lambda للحصول على أداء أفضل على استجابة البث.
حاليا ، لا توجد خطة لدعم نماذج Sagemaker. قد يتغير هذا شريطة أن يكون هناك طلب من العملاء.
لا يتم دعم النماذج والنماذج التي يتم ضبطها مع الإنتاجية المحددة حاليًا. يمكنك استنساخ الريبو وجعل التخصيص إذا لزم الأمر.
لاستخدام أحدث الميزات ، لا تحتاج إلى إعادة نشر مكدس CloudFormation. تحتاج ببساطة لسحب أحدث صورة.
للقيام بذلك ، يعتمد على الإصدار الذي نشرته:
Deploy new image
وانقر فوق حفظ.Tasks
، وحدد المهمة الوحيدة التي يتم تشغيلها ، ثم انقر فوق Stop selected
. ستبدأ مهمة جديدة مع أحدث الصور تلقائيًا. انظر المساهمة لمزيد من المعلومات.
هذه المكتبة مرخصة بموجب ترخيص MIT-0. انظر ملف الترخيص.