다음을 통해 공유


Microsoft Foundry 빠른 시작(클래식)

비고

이 문서는 Microsoft Foundry(클래식) 포털을 참조합니다.

🔍새 포털에 대해 알아보려면 Microsoft Foundry(새) 설명서를 참조하세요.

이 빠른 시작에서는 Microsoft Foundry 를 사용하여 다음을 수행합니다.

  • 프로젝트 만들기
  • 모델 배포
  • 채팅 완료 실행
  • 에이전트 만들기 및 실행
  • 에이전트에 파일 업로드

Microsoft Foundry SDK는 Python, Java, TypeScript 및 C#을 비롯한 여러 언어로 제공됩니다. 이 빠른 시작에서는 이러한 각 언어에 대한 지침을 제공합니다.

팁 (조언)

이 문서의 나머지 부분에는 Foundry 프로젝트를 만들고 사용하는 방법이 설명되어 있습니다. 빠른 시작을 참조하세요. 허브 기반 프로젝트를 대신 사용하려면 Microsoft Foundry(허브 프로젝트)를 시작 하세요. 어떤 유형의 프로젝트가 필요한가요?

필수 조건

중요합니다

시작하기 전에 개발 환경이 준비되었는지 확인합니다.
이 빠른 시작에서는 SDK 설치, 인증 및 샘플 코드 실행과 같은 시나리오별 단계에 중점을 둡니다.

포털에서 다양한 공급자의 다양한 최첨단 모델 카탈로그를 탐색할 수 있습니다. 이 자습서에서는 gpt-4o 모델을 검색한 다음 선택합니다.

  1. Microsoft Foundry에 로그인합니다. New Foundry 토글이 꺼져 있는지 확인합니다. 이러한 단계는 Foundry(클래식)를 참조합니다.

  2. 프로젝트에 있는 경우 왼쪽 위 이동 경로에서 Microsoft Foundry 를 선택하여 프로젝트를 종료합니다. 잠시 후에 새 항목을 만듭니다.

  3. 방문 페이지 또는 모델 카탈로그에서 gpt-4o (또는 gpt-4o-mini)를 선택합니다.

    스크린샷은 Foundry 포털에서 모델을 시작하는 방법을 보여 줍니다.

  4. 이 모델 사용을 선택합니다. 메시지가 표시되면 새 프로젝트 이름을 입력하고 만들기를 선택합니다.

  5. 배포 이름을 검토하고 만들기를 선택합니다.

  6. 그런 다음 배포 유형을 선택한 후 연결 및 배포를 선택합니다.

  7. 배포 후 배포 페이지에서 플레이그라운드에서 열기를 선택합니다.

  8. 모델이 미리 배포되어 바로 사용할 수 있는 상태로 채팅 플레이그라운드에 접속합니다.

에이전트를 빌드하는 경우 에이전트 만들기로 시작할 수 있습니다. 단계는 비슷하지만 순서는 다릅니다. 프로젝트가 만들어지면 채팅 플레이그라운드 대신 에이전트 놀이터에 도착합니다.

코드 준비

팁 (조언)

코드는 Azure AI Projects 1.x SDK 를 사용하며 Azure AI Projects 2.x와 호환되지 않습니다. Azure AI Projects 2.x 버전에 대한 Foundry(새) 설명서를 참조하세요.

  1. 다음 패키지를 설치합니다.

    pip install openai azure-identity azure-ai-projects==1.0.0
    
  2. 프로젝트의 시작 화면에서 프로젝트 엔드포인트를 찾습니다.

    엔드포인트 URL 및 복사 단추를 보여 주는 Microsoft Foundry 모델 시작 화면의 스크린샷

  3. Python 스크립트를 실행하기 전에 CLI az login (또는 az login --use-device-code) 명령을 사용하여 로그인하여 인증해야 합니다.

아래를 따르거나 코드를 가져옵니다.

모델과 채팅

채팅 완성은 AI 애플리케이션의 기본 구성 요소입니다. 채팅 완료를 사용하여 메시지 목록을 보내고 모델에서 응답을 받을 수 있습니다.

팁 (조언)

코드는 Azure AI Projects 1.x SDK 를 사용하며 Azure AI Projects 2.x와 호환되지 않습니다. Azure AI Projects 2.x 버전에 대한 Foundry(새) 설명서를 참조하세요.

이 코드에서 endpoint를 사용자의 엔드포인트로 바꿉니다.

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential

project = AIProjectClient(
    endpoint="https://your-foundry-resource-name.ai.azure.com/api/projects/project-name",
    credential=DefaultAzureCredential(),
)

models = project.get_openai_client(api_version="2024-10-21")
response = models.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful writing assistant"},
        {"role": "user", "content": "Write me a poem about flowers"},
    ],
)

print(response.choices[0].message.content)

에이전트와 채팅

에이전트를 만들고 채팅합니다.

팁 (조언)

코드는 Azure AI Projects 1.x SDK 를 사용하며 Azure AI Projects 2.x와 호환되지 않습니다. Azure AI Projects 2.x 버전에 대한 Foundry(새) 설명서를 참조하세요.

이 코드에서 endpoint를 사용자의 엔드포인트로 바꿉니다.

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import ListSortOrder, FilePurpose

project = AIProjectClient(
    endpoint="https://your-foundry-resource-name.ai.azure.com/api/projects/project-name",
    credential=DefaultAzureCredential(),
)

agent = project.agents.create_agent(
    model="gpt-4o",
    name="my-agent",
    instructions="You are a helpful writing assistant")

thread = project.agents.threads.create()
message = project.agents.messages.create(
    thread_id=thread.id, 
    role="user", 
    content="Write me a poem about flowers")

run = project.agents.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)
if run.status == "failed":
    # Check if you got "Rate limit is exceeded.", then you want to get more quota
    print(f"Run failed: {run.last_error}")

# Get messages from the thread
messages = project.agents.messages.list(thread_id=thread.id)

# Get the last message from the sender
messages = project.agents.messages.list(thread_id=thread.id, order=ListSortOrder.ASCENDING)
for message in messages:
    if message.run_id == run.id and message.text_messages:
        print(f"{message.role}: {message.text_messages[-1].text.value}")

# Delete the agent once done
project.agents.delete_agent(agent.id)
print("Deleted agent")

에이전트에 파일 추가

에이전트는 도구를 사용하여 강력한 기능을 제공합니다. 지식 검색을 수행할 수 있는 파일 검색 도구를 추가해 보겠습니다.

팁 (조언)

코드는 Azure AI Projects 1.x SDK 를 사용하며 Azure AI Projects 2.x와 호환되지 않습니다. Azure AI Projects 2.x 버전에 대한 Foundry(새) 설명서를 참조하세요.

이 코드에서 endpoint를 사용자의 엔드포인트로 바꿉니다.

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import ListSortOrder, FileSearchTool

project = AIProjectClient(
    endpoint="https://your-foundry-resource-name.ai.azure.com/api/projects/project-name",
    credential=DefaultAzureCredential(),
)

# Upload file and create vector store
file = project.agents.files.upload(file_path="./product_info_1.md", purpose=FilePurpose.AGENTS)
vector_store = project.agents.vector_stores.create_and_poll(file_ids=[file.id], name="my_vectorstore")

# Create file search tool and agent
file_search = FileSearchTool(vector_store_ids=[vector_store.id])
agent = project.agents.create_agent(
    model="gpt-4o",
    name="my-assistant",
    instructions="You are a helpful assistant and can search information from uploaded files",
    tools=file_search.definitions,
    tool_resources=file_search.resources,
)

# Create thread and process user message
thread = project.agents.threads.create()
project.agents.messages.create(thread_id=thread.id, role="user", content="Hello, what Contoso products do you know?")
run = project.agents.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)

# Handle run status
if run.status == "failed":
    print(f"Run failed: {run.last_error}")

# Print thread messages
messages = project.agents.messages.list(thread_id=thread.id, order=ListSortOrder.ASCENDING)
for message in messages:
    if message.run_id == run.id and message.text_messages:
        print(f"{message.role}: {message.text_messages[-1].text.value}")

# Cleanup resources
project.agents.vector_stores.delete(vector_store.id)
project.agents.files.delete(file_id=file.id)
project.agents.delete_agent(agent.id)

자원을 정리하세요

만든 리소스가 더 이상 필요하지 않은 경우 프로젝트와 연결된 리소스 그룹을 삭제합니다.

  • Azure Portal에서 리소스 그룹을 선택한 다음 삭제를 선택합니다. 리소스 그룹을 삭제할지 확인합니다.