유진의 코딩스토리
Rest API를 사용한 GPT4 모델 배포 본문
리소스 그룹
리소스 만들기
Azure OpenAI 리소스 클릭
만들었던 리소스 그룹에 openAI 리소스를 만들어준다.
Azure OpenAI Studio
Azure OpenAI Studio는 모델 관리, 배포, 실험, 사용자 지정 및 학습 리소스에 대한 액세스를 제공한다.
왼쪽 사이드바에 배포로 들어가서 기본 모델 배포 선택
배포된 모델을 Azure OpenAI Studio의 플레이그라운드에서 모델을 테스트 해 볼 수 있다.
완료 플레이그라운드의 사용
• 텍스트 입력, 텍스트 출력 인터페이스를 통해 배포된 모델을 호출하고 매개 변수를 조정 가능
모델의 배포 이름 선택
• 배포에서 모델의 배포 이름을 선택
제공된 예제 사용
• 필요에 따라 제공된 예제를 사용하여 시작할 수 있습니다.
사용자 고유의 프롬프트 입력
• 사용자 고유의 프롬프트를 입력할 수 있습니다.
모델에게 역할을 제공한다.
위 코드보기를 누르면 모델을 사용하는 전체 python 코드도 작성해준다.
위 코드를 그대로 사용해서 python으로도 채팅 가능!
안전 시스템 메세지
해로운 텍스트 등을 피할 수 있는 옵션 지정이 가능하다!
퓨샷 러닝
예시 프롬프트를 작성해서 넣으면 원하는 질문에 더 잘 대답하게 된다.
매개변수
지난 메세지 포함
새 API 요청에 포함할 과저 메세지 수 선택
과거 메세지는 새 사용자 쿼리에 대한 context제공에 도움을 준다.
숫자 10으로 설정할 시 사용자 쿼리 5개와 시스템 응답 5개 포함한다.
최대 응답
모델 응답 당 토큰 수에 대한 제한을 설정하는 것으로 API는 프롬프트와 모델 응답 간에 공유되는 최대 4000개의 토큰을 지원한다.
영어 텍스트의 경우 한 코튼은 4개이다.
최대 응답이 높을수록 응답이 끊기지 않고 길게 대답하는 특징이 있다.
온도
온도가 0일 경우 3번의 같은 질문에 같은 대답을 내놓는다.
온도가 1인 경우 같은 질문에 대해 다 다른 답을 내놓는다.
앱에 Azure OpenAI 통합 방법
모델 배포
REST API
REST API(Representational State Transfer Application Programming Interface)는 REST 아키텍처 스타일을 기반으로 설계된 API로, 주로 웹 애플리케이션 간 데이터 교환에 사용한다.
REST API는 HTTP 메서드를 사용하여 리소스와 상호작용
- GET: 리소스 읽기.
- POST: 리소스 생성.
- PUT: 리소스 전체 업데이트.
- PATCH: 리소스 부분 업데이트.
- DELETE: 리소스 삭제.
위 엔드포인트와 key값을 복사한다.
위 postman은 API(Application Programming Interface) 개발, 테스트, 배포 및 협업을 위한 도구와 리소스를 제공하는 플랫폼으로 API 요청을 테스트 및 디버깅 할 수 있는 사이트이다.
위 부분을 클릭
POST(리소스 생성) 요청을 사용하여 Azure OpenAI 서비스에 프롬프트를 보낼 수 있다.
해당 부분에 엔드포인트 URL 붙여넣는다.
header에서 API key를 붙여넣는다.
다음 body 부분을 채워줄건데 payload 부분의 message를 작성한다.
모델에 보낼 프롬프트를 작성한다.
import requests
from IPython.display import Markdown as md
def request_gpt(user_text, temperature=0.7, top_p=0.95, max_tokens=800):
endpoint= "https://5b037-openai.openai.azure.com/openai/deployments/gpt-4o-mini/chat/completions?api-version=2024-02-15-preview"
headers = {
"Content-Type" : "application/json",
"api-key": "Your API Key"
}
payload={
"messages": [
{
"role": "system",
"content": [
{
"type": "text",
"text": "넌 각 나라의 전통음식 전문가야.각 나라의 유명한 음식을 잘 설명해줘야해"
}
]
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "키르키스스탄의 전통음식을 알려줘."
}
]
},
{
"role": "assistant",
"content": [{
"type": "text",
"text": "키르기스스탄의 전통 음식은 유목민 문화를 반영하여 고기, 유제품, 곡물이 주재료입니다. 대표 요리로는 손으로 먹는 양고기와 국수 요리 베슈바르마크, 진한 국물과 면 요리 라그만, 감자와 고기를 볶은 쿠르닥이 있습니다. 간식으로는 기름에 튀긴 빵 보르수크가 인기이며, 전통 음료로는 발효된 말젖 키미즈가 유명합니다. 만두 요리 만티는 고기와 양파를 속으로 채워 쪄낸 음식으로 자주 먹습니다. 풍부한 향신료와 전통 조리법으로 키르기스스탄만의 독특한 맛을 자랑합니다."
}]
},
{
"role": "user",
"content": [
{
"type": "text",
"text": user_text
}
]
}
],
"temperature": temperature,
"top_p": top_p,
"max_tokens": max_tokens,
"frequency_penalty":2.0,
"presence_penalty":2.0
}
response=requests.post(endpoint, headers=headers, json=payload)
#print(response.status_code)
#print(response.text)
if response.status_code == 200:
responses_json = response.json()
content_text = responses_json['choices'][0]['message']['content']
return content_text
else:
return ""
response_text = request_gpt("칠레 남부의 유명한 음식을 알려줘.",temperature=0)
md(response_text)
다음으로 vscode에서 python으로 모델의 api를 호출하여 모델을 사용한 코드이다.
temperature, max_tokens등과 같은 매개변수를 지정할 수 있다.
'Azure 실습 > Azure Open AI' 카테고리의 다른 글
Azure AI servies - Document Intelligence (0) | 2024.12.02 |
---|