이것은 OpenAI 패키지의 종속성을 제공하는 AWS Lambda 레이어로 서버리스 오픈 라이 서비스를 쉽게 개발할 수 있으며 가격을 크게 줄이고 OpenAI 의존성을 직접 관리하는 복잡성을 제거 할 수 있습니다.
이것은 관리 콘솔 또는 AWS CLI를 통해 AWS Lambda에 쉽게 배포 할 수있는 사전 제작 된 레이어 Zip입니다.
Openai 0.27.4 (Python 3.7)
Openai 0.27.4 (Python 3.8)
Openai 0.27.4 (Python 3.9)
Openai 계층을 직접 구축하고 최신 버전을 가져 와서 건축 할 Python 버전을 사용자 정의 할 수 있습니다.
$ cd openai-aws-lambda-layer
$ ./build/build.sh
# or specify Python version
$ ./build/build.sh 3.9이것은 Lambda Function URL 또는 API 게이트웨이에서 작동하는 예입니다. 기능을 배포하기 전에 그 중 하나를 활성화해야합니다. OpenAI가 아직 빠르지 않기 때문에 일반 구성에서 시간 초과 값을 최소 30 초로 높이는 것이 좋습니다. 여기에 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 키를 넣는 것을 잊지 마십시오. 함수가 배포되면 아래와 같은 컬 요청을 수행하여 테스트 할 수 있습니다 (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"} '다음은 응답입니다.
AWS Lambda에 OpenAI를 배포하는 것은 값 비싼 하드웨어 나 인프라에 투자하지 않고 인공 지능의 힘을 활용하려는 비즈니스에 현명한 움직임이 될 수 있습니다. AWS Lambda는 개발자가 서버를 관리하지 않고도 코드를 실행할 수있는 서버리스 컴퓨팅 플랫폼입니다. 이는 기업이 서버 유지 보수 또는 용량 계획에 대해 걱정하지 않고 AWS Lambda에 OpenAI 모델을 쉽게 배포하고 필요에 따라 확장 또는 아래로 쉽게 확장 할 수 있음을 의미합니다. 또한 AWS Lambda는 사용시 가격을 제공하는 가격을 제공합니다. 즉, 기업은 사용하는 컴퓨팅 리소스에 대해서만 비용을 지불하므로 OpenAI 모델을 배포하기위한 비용 효율적인 솔루션입니다. 전반적으로 AWS Lambda에 OpenAI를 배포하면 기업이 AI 이니셔티브를 간소화하고 최소한의 투자로 더 빠른 시장 마켓을 달성 할 수 있습니다.