서른아홉번째 수업 | 복습 | 살려주세요

Faithful Dev·2024년 11월 21일
0

리소스 그룹 및 리소스 생성

  • Azure에서 리소스 그룹을 생성하고, OpenAI 관련 리소스를 생성한다.

엔드포인트 및 키값 확인

  • 생성된 리소스에서 Azure OpenAI 모델의 엔드포인트와 키값 확인.

Azure OpenAI Studio 활용

  • Azure OpenAI에서 모델을 배포한다.

채팅 플레이그라운드

  • OpenAI 모델과의 대화를 시뮬레이션하는 채팅 플레이그라운드.
  • 구버전에서 작업했고, 시스템 메시지를 사용하여 대화 컨텍스트를 설정했다.

웹 애플리케이션 배포

  • 배포된 모델을 기반으로 웹 애플리케이션을 만들고 배포 후 구동.
  • 권한 이슈로 사용해보지는 못함.

Visual Studio Code에서 앱 개발

  • Visual Studio Code와 GitHub 연동하고, 리포지토리 복제하여 .env 파일 등 받아왔다.
  • Python SDK 및 python-dotenv 패키지를 설치하과, 앱 개발 환경을 준비.
  • .env 파일에 엔드포인트, 키값, 모델 이름 등을 설정하는 방법을 제공.

    프로젝트 때 .env 파일을 다뤄봤어서 반가웠고, 아 이런 구조로 사용되었던 거구나, 깨달아서 즐거웠다. ㅎㅎ

코드 작성 및 실행

  • Azure OpenAI SDK를 이용해 API 요청을 보내고 결과를 처리하는 코드를 작성.
  • 왜인지 작동은 안되었다.. 이거는 아마도 내 이슈.
import os
from dotenv import load_dotenv

# Add Azure OpenAI package
from openai import AzureOpenAI

def main(): 
        
    try: 
    
        # Get configuration settings 
        load_dotenv()
        azure_oai_endpoint = os.getenv("AZURE_OAI_ENDPOINT")
        azure_oai_key = os.getenv("AZURE_OAI_KEY")
        azure_oai_deployment = os.getenv("AZURE_OAI_DEPLOYMENT")
        
        # Initialize the Azure OpenAI client...
        client = AzureOpenAI(
            azure_endpoint = azure_oai_endpoint,
            api_key = azure_oai_key,
            api_version = "2024-08-06-preview"
            )

        system_message = """
        ~~
        """

        while True:
            # Get input text
            input_text = input("Enter the prompt (or type 'quit' to exit): ")
            if input_text.lower() == "quit":
                break
            if len(input_text) == 0:
                print("Please enter a prompt.")
                continue

            print("\nSending request for summary to Azure OpenAI endpoint...\n\n")
            
            # Initial message array
            message_array = [{"role": "system", "content": system_message}]
            message_array.append({"role": "user", "counter": input_text})

            # Add code to send request...
            response = client.chat.completions.create(
                model=azure_oai_deployment,
                temperature=0.7,
                max_tokens=1200,
                messages=message_array
            )
            
            # Receive generated text
            generated_text = response.choices[0].message.content

            # Add generated text to message array
            message_array.append({"role": "assistant", "counter": generated_text})

            # Print generated text
            print("Answer: " + generated_text+"\n")

    except Exception as ex:
        print(ex)

if __name__ == '__main__': 
    main()

이제 수업 가자.

코드 수정

  • 동기 분께서 공유해주신 코드로 수정하였다.
import os
from dotenv import load_dotenv

# Add Azure OpenAI package
from openai import AzureOpenAI


def main(): 
        
    try: 
    
        # Get configuration settings 
        load_dotenv()
        azure_oai_endpoint = os.getenv("AZURE_OAI_ENDPOINT")
        azure_oai_key = os.getenv("AZURE_OAI_KEY")
        azure_oai_deployment = os.getenv("AZURE_OAI_DEPLOYMENT")
        
        # Initialize the Azure OpenAI client...
        client = AzureOpenAI(
            azure_endpoint = azure_oai_endpoint,
            api_key = azure_oai_key,
            api_version = "2024-02-15-preview"
        )

        system_message = """저는 하이킹 애호가인 포레스트입니다. 사람들이 자신이 있는 지역에서 하이킹 코스를 발견할 수 있도록 도와드립니다. 만약 특정 지역을 지정하지 않으면, 기본적으로 레이니어 국립공원 근처의 하이킹 코스를 추천해 드립니다.
세 가지 길이가 다른 하이킹 코스를 추천해 드리며, 각 코스에 대한 흥미로운 자연 이야기도 함께 공유하겠습니다"""

        while True:
            # Get input text
            input_text = input("Enter the prompt (or type 'quit' to exit): ")
            if input_text.lower() == "quit":
                break
            if len(input_text) == 0:
                print("Please enter a prompt.")
                continue

            print("\nSending request for summary to Azure OpenAI endpoint...\n\n")
            
            # Initial message array
            messages_array = [
                {"role": "system", "content": system_message},
                {"role": "user", "content": input_text}
            ]

            # Add code to send request...

            response = client.chat.completions.create(
                model = azure_oai_deployment,
                max_tokens = 1200,
                temperature = 0.7,
                messages = messages_array
            )
            
            # receive generated text
            generated_text = response.choices[0].message.content
            
            # add generated text to message array
            messages_array.append({"role": "assistant", "content": generated_text})
            
            # print generated text
            print("Answer:" + generated_text+ "\n")



    except Exception as ex:
        print(ex)

if __name__ == '__main__': 
    main()

profile
Turning Vision into Reality.

0개의 댓글