นี่คือเลเยอร์ Lambda AWS ที่ให้การอ้างอิงสำหรับแพ็คเกจ OpenAI ซึ่งช่วยให้คุณสามารถพัฒนาบริการ OpenAI ที่ไม่มีเซิร์ฟเวอร์ได้อย่างง่ายดายลดราคาอย่างมากและลบความซับซ้อนของการจัดการการพึ่งพา OpenAI ด้วยตัวเอง
นี่คือซิปเลเยอร์ที่สร้างไว้ล่วงหน้าซึ่งคุณสามารถปรับใช้กับ AWS Lambda ได้อย่างง่ายดายผ่านคอนโซลการจัดการหรือ AWS CLI:
Openai 0.27.4 (Python 3.7)
Openai 0.27.4 (Python 3.8)
Openai 0.27.4 (Python 3.9)
คุณสามารถสร้าง OpenAI Layer ด้วยตัวเอง (ต้องใช้ Docker) และรับเวอร์ชันล่าสุดและปรับแต่งเวอร์ชัน Python ที่คุณกำลังสร้างขึ้น:
$ cd openai-aws-lambda-layer
$ ./build/build.sh
# or specify Python version
$ ./build/build.sh 3.9นี่เป็นตัวอย่างที่จะใช้งานได้กับ Lambda Function URL หรือ API Gateway ตรวจสอบให้แน่ใจว่าคุณเปิดใช้งานหนึ่งในนั้นก่อนที่จะปรับใช้ฟังก์ชั่นของคุณ นอกจากนี้ยังแนะนำให้เพิ่มค่าการหมดเวลาให้น้อยที่สุด 30 วินาทีในการกำหนดค่าทั่วไปเนื่องจาก OpenAI ยังไม่เร็ว (ยัง) หลังจากสร้างเลเยอร์โดยใช้ไฟล์ zip ที่นี่หรือไฟล์ที่คุณเพิ่งสร้างคัดลอกและวางตัวอย่างด้านล่างในตัวแก้ไขรหัส Lambda:
import openai
import json
import datetime
def query_completion ( prompt : str , engine : str = 'gpt-3.5-turbo' , temperature : float = 0.2 , max_tokens : int = 1500 , top_p : int = 1 , frequency_penalty : float = 0.2 , presence_penalty : float = 0 ) -> object :
"""
Function for querying GPT-3.5 Turbo.
"""
estimated_prompt_tokens = int ( len ( prompt . split ()) * 1.6 )
estimated_answer_tokens = 2049 - estimated_prompt_tokens
response = openai . ChatCompletion . create (
model = engine ,
messages = [{ "role" : "user" , "content" : prompt }],
temperature = temperature ,
max_tokens = min ( 4096 - estimated_prompt_tokens - 150 , max_tokens ),
top_p = top_p ,
frequency_penalty = frequency_penalty ,
presence_penalty = presence_penalty
)
return response
def lambda_handler ( event , context ):
'''Provide an event that contains the following keys:
- prompt: text of an open ai prompt
'''
openai . api_key = "YOUR_KEY_HERE"
print ( "Init:" )
print ( datetime . datetime . now ())
print ( "Event:" )
print ( event )
body = json . loads ( event [ 'body' ])
prompt = body [ 'prompt' ]
max_tokens = 1500
response = query_completion ( prompt )
response_text = response [ 'choices' ][ 0 ][ 'message' ][ 'content' ]. strip ()
response = {
"statusCode" : 200 ,
"headers" : {},
"body" : response_text
}
return responseตรวจสอบให้แน่ใจว่าคุณไม่ลืมใส่คีย์ OpenAI ของคุณเอง เมื่อใช้งานฟังก์ชั่นแล้วคุณสามารถทดสอบได้โดยทำคำขอ CURL เช่นเดียวกับที่ด้านล่าง (แทนที่ URL ด้วย URL ฟังก์ชั่นของคุณเอง):
$ curl --request POST ' https://your.lambda-url.us-west-1.on.aws/ ' --header ' Content-Type: application/json ' --data-raw ' {"prompt": "Generate a paragraph about if deploying OpenAI on AWS Lambda makes sense"} 'นี่คือคำตอบ:
การปรับใช้ OpenAI บน AWS Lambda อาจเป็นการเคลื่อนไหวที่ชาญฉลาดสำหรับธุรกิจที่ต้องการใช้ประโยชน์จากพลังของปัญญาประดิษฐ์โดยไม่ต้องลงทุนในฮาร์ดแวร์หรือโครงสร้างพื้นฐานที่มีราคาแพง AWS Lambda เป็นแพลตฟอร์มการประมวลผลแบบไม่มีเซิร์ฟเวอร์ที่อนุญาตให้นักพัฒนาเรียกใช้รหัสโดยไม่ต้องจัดการเซิร์ฟเวอร์ ซึ่งหมายความว่าธุรกิจสามารถปรับใช้โมเดล OpenAI บน AWS Lambda และปรับขนาดขึ้นหรือลงได้ตามต้องการโดยไม่ต้องกังวลเกี่ยวกับการบำรุงรักษาเซิร์ฟเวอร์หรือการวางแผนความสามารถ นอกจากนี้ AWS Lambda ยังเสนอราคาแบบจ่ายต่อการใช้งานซึ่งหมายความว่าธุรกิจจ่ายเฉพาะทรัพยากรคอมพิวเตอร์ที่ใช้เท่านั้นทำให้เป็นโซลูชันที่คุ้มค่าสำหรับการปรับใช้โมเดล OpenAI โดยรวมแล้วการปรับใช้ OpenAI บน AWS Lambda สามารถช่วยให้ธุรกิจปรับปรุงความคิดริเริ่ม AI ของพวกเขาและบรรลุเวลาสู่การตลาดที่เร็วขึ้นด้วยการลงทุนน้อยที่สุด