中文
APIs ที่เข้ากันได้กับ OpenAI สำหรับอเมซอน
ซอร์สโค้ดถูก refactored ด้วย Converse API ใหม่โดย Bedrock ซึ่งให้การสนับสนุนแบบดั้งเดิมพร้อมการเรียกใช้เครื่องมือ
หากคุณกำลังเผชิญกับปัญหาใด ๆ โปรดเพิ่มปัญหา
Amazon Bedrock นำเสนอแบบจำลองพื้นฐานที่หลากหลาย (เช่น Claude 3 Opus/Sonnet/Haiku, Llama 2/3, Mistral/Mixtral ฯลฯ ) และความสามารถในวงกว้างสำหรับคุณในการสร้างแอพพลิเคชั่น AI ตรวจสอบหน้า Landing Page Amazon Bedrock สำหรับข้อมูลเพิ่มเติม
บางครั้งคุณอาจมีแอปพลิเคชันที่พัฒนาขึ้นโดยใช้ OpenAI API หรือ SDK และคุณต้องการทดลองกับอเมซอนบดโดยไม่ต้องแก้ไขรหัสเบสของคุณ หรือคุณอาจต้องการประเมินความสามารถของโมเดลรากฐานเหล่านี้ในเครื่องมือเช่น Autogen ฯลฯ ที่เก็บข้อมูลนี้ช่วยให้คุณสามารถเข้าถึงโมเดลของอเมซอนได้อย่างราบรื่นผ่าน OpenAI APIs และ SDKs ช่วยให้คุณสามารถทดสอบโมเดลเหล่านี้ได้โดยไม่ต้องเปลี่ยนรหัส
หากคุณพบว่าพื้นที่เก็บข้อมูลของ GitHub นี้มีประโยชน์โปรดพิจารณาให้ดาวฟรีเพื่อแสดงความขอบคุณและการสนับสนุนสำหรับโครงการ
คุณสมบัติ:
โปรดตรวจสอบคู่มือการใช้งานสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการใช้ API ใหม่
หมายเหตุ: ไม่รองรับ API Text Completion LEGACY คุณควรเปลี่ยนเพื่อใช้ API การแชทเสร็จสมบูรณ์
รองรับ Amazon Bedrock Models Family:
คุณสามารถโทรไปที่ models
API เพื่อรับรายการทั้งหมดของ ID รุ่นที่รองรับ
หมายเหตุ: รุ่นเริ่มต้นถูกตั้งค่าเป็น
anthropic.claude-3-sonnet-20240229-v1:0
ซึ่งสามารถเปลี่ยนแปลงได้ผ่านตัวแปรสภาพแวดล้อม Lambda (DEFAULT_MODEL
)
โปรดตรวจสอบให้แน่ใจว่าคุณได้พบกับสิ่งที่จำเป็นต้องมีด้านล่าง:
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอการเข้าถึงแบบจำลองโปรดดูคู่มือผู้ใช้ Amazon Bedrock (ตั้งค่า> Model Access)
แผนภาพต่อไปนี้แสดงสถาปัตยกรรมอ้างอิง โปรดทราบว่ายังมี VPC ใหม่ที่มีสองซับเน็ตสาธารณะเฉพาะสำหรับแอปพลิเคชันโหลดบัลแลนเซอร์ (ALB)
นอกจากนี้คุณยังสามารถเลือกใช้ AWS Fargate ที่อยู่ด้านหลัง AlB แทน AWS Lambda ความแตกต่างที่สำคัญคือเวลาแฝงของไบต์แรกสำหรับการตอบสนองการสตรีม (Fargate ต่ำกว่า)
หรือคุณสามารถใช้ URL ฟังก์ชั่นแลมบ์ดาเพื่อแทนที่อัลดูตัวอย่าง
โปรดทำตามขั้นตอนด้านล่างเพื่อปรับใช้ API พร็อกซีของข้อเท็จจริงในบัญชี AWS ของคุณ รองรับเฉพาะภูมิภาคที่มีพื้นหินอเมซอน (เช่น us-west-2
) การปรับใช้จะใช้เวลาประมาณ 3-5 นาที
ขั้นตอนที่ 1: สร้างคีย์ API ที่กำหนดเองของคุณเอง (ไม่บังคับ)
หมายเหตุ: ขั้นตอนนี้คือการใช้สตริงใด ๆ (ไม่มีช่องว่าง) ที่คุณต้องการสร้างคีย์ API ที่กำหนดเอง (ข้อมูลรับรอง) ที่จะใช้ในการเข้าถึงพร็อกซี API ในภายหลัง คีย์นี้ไม่จำเป็นต้องตรงกับคีย์ OpenAI ที่แท้จริงของคุณและคุณไม่จำเป็นต้องมีคีย์ OpenAI API ขอแนะนำให้คุณทำตามขั้นตอนนี้และตรวจสอบให้แน่ใจว่าคุณรักษาความปลอดภัยและความเป็นส่วนตัว
ขั้นตอนที่ 2: ปรับใช้สแต็ก CloudFormation
Alb + Lambda
Alb + Fargate
BedrockProxyAPIKey
) หากคุณไม่ได้ตั้งค่าคีย์ API ให้ปล่อยให้ฟิลด์นี้ว่าง คลิก "ถัดไป" นั่นคืออะไร! - เมื่อปรับใช้แล้วให้คลิกที่แท็บ CloudFormation และไปที่แท็บ Outputs คุณสามารถค้นหา URL ฐาน API จาก APIBaseUrl
ค่าควรดูเหมือน http://xxxx.xxx.elb.amazonaws.com/api/v1
สิ่งที่คุณต้องการคือคีย์ API และ URL ฐาน API หากคุณไม่ได้ตั้งค่าคีย์ของคุณเองจะใช้คีย์ API เริ่มต้น ( bedrock
)
ตอนนี้คุณสามารถลองพร็อกซี API สมมติว่าคุณต้องการทดสอบ claude 3 Sonnet Model (ID รุ่น: 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 )
โปรดตรวจสอบคู่มือการใช้งานสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการใช้ Embedding API, API หลายรูปแบบและการโทรเครื่องมือ
การอนุมานข้ามภูมิภาครองรับการเข้าถึงแบบจำลองพื้นฐานในภูมิภาคทำให้ผู้ใช้สามารถเรียกใช้โมเดลที่โฮสต์ในภูมิภาค AWS ที่แตกต่างกันเพื่อการอนุมาน ข้อดีหลัก:
โปรดตรวจสอบข้อเท็จจริงเกี่ยวกับการอนุมานข้ามภูมิภาค
ข้อ จำกัด : ปัจจุบันเกตเวย์ Access Bedrock รองรับการอนุมานข้ามภูมิภาคสำหรับรุ่นต่อไปนี้เท่านั้น:
ข้อกำหนดเบื้องต้น:
ตัวอย่างการใช้ 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 ไม่รองรับเหตุการณ์เซิร์ฟเวอร์ (SSE) สำหรับการตอบสนองการสตรีม
โซลูชันนี้รองรับเฉพาะภูมิภาคที่มีพื้นหินอเมซอนให้บริการในตอนนี้ด้านล่างเป็นรายการ
โดยทั่วไปแล้วทุกภูมิภาคที่อเมซอนบดสนับสนุนจะได้รับการสนับสนุนหากไม่ได้โปรดยกประเด็นใน GitHub
โปรดทราบว่าไม่ใช่ทุกรุ่นที่มีอยู่ในภูมิภาคเหล่านั้น
ใช่คุณสามารถโคลน repo และสร้างภาพคอนเทนเนอร์ด้วยตัวเอง ( src/Dockerfile
) จากนั้นผลักดันไปยัง repo ECR ของคุณ คุณสามารถใช้ scripts/push-to-ecr.sh
แทนที่ repo url ในเทมเพลต CloudFormation ก่อนที่คุณจะปรับใช้
ใช่คุณสามารถเรียกใช้งานนี้ได้
URL ฐาน API ควรมีลักษณะเหมือน http://localhost:8000/api/v1
เมื่อเปรียบเทียบกับการโทร AWS SDK สถาปัตยกรรมอ้างอิงจะนำความล่าช้าเพิ่มเติมในการตอบกลับคุณสามารถลองและทดสอบสิ่งนั้นด้วยตัวคุณเอง
นอกจากนี้คุณสามารถใช้ URL ฟังก์ชัน Lambda Web + Function URL (ดูตัวอย่าง) เพื่อแทนที่ ALB หรือ AWS Fargate เพื่อแทนที่ Lambda เพื่อให้ได้ประสิทธิภาพที่ดีขึ้นในการตอบสนองการสตรีม
ปัจจุบันยังไม่มีแผนที่จะสนับสนุนโมเดล Sagemaker สิ่งนี้อาจเปลี่ยนแปลงได้หากมีความต้องการจากลูกค้า
รุ่นที่ปรับแต่งและโมเดลที่มีปริมาณงานจัดเตรียมไม่ได้รับการสนับสนุนในขณะนี้ คุณสามารถโคลน repo และทำการปรับแต่งได้หากจำเป็น
ในการใช้คุณสมบัติล่าสุดคุณไม่จำเป็นต้องใช้งานสแต็ก CloudFormation คุณเพียงแค่ต้องดึงภาพล่าสุด
ในการทำเช่นนั้นขึ้นอยู่กับรุ่นที่คุณปรับใช้:
Deploy new image
แล้วคลิกบันทึกTasks
, เลือกงานเดียวที่กำลังทำงานอยู่และเพียงคลิกเมนู Stop selected
งานใหม่ที่มีภาพล่าสุดจะเริ่มโดยอัตโนมัติ ดูข้อมูลเพิ่มเติม
ห้องสมุดนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT-0 ดูไฟล์ใบอนุญาต