Note
이 문서는 Microsoft Foundry(신규) 포털을 참조합니다.
이 빠른 시작에서는 Microsoft Foundry 를 사용하여 다음을 수행합니다.
- 프로젝트 만들기
- 모델 배포
- 채팅 완료 실행
- 에이전트 만들기 및 실행
- 에이전트에 파일 업로드
이 빠른 시작에서는 Microsoft Foundry 를 사용하여 다음을 수행합니다.
- 프로젝트 만들기
- 모델 배포
- 코드 준비 - 필요한 패키지 설치 및 인증
- 모델과 채팅
- 에이전트 만들기
- 에이전트와 채팅
Microsoft Foundry SDK는 Python, Java, TypeScript 및 C#을 비롯한 여러 언어로 제공됩니다. 이 빠른 시작에서는 이러한 각 언어에 대한 지침을 제공합니다.
Tip
이 문서의 나머지 부분에는 Foundry 프로젝트를 만들고 사용하는 방법이 설명되어 있습니다. 빠른 시작을 참조하세요. 허브 기반 프로젝트를 대신 사용하려면 Microsoft Foundry(허브 프로젝트)를 시작 하세요. 어떤 유형의 프로젝트가 필요한가요?
Prerequisites
- 활성 구독이 있는 Azure 계정. 계정이 없는 경우 평가판 구독을 포함하는 무료 Azure 계정을 만듭니다.
- 프로젝트를 사용하는 데 필요한 적절한 액세스 제어를 얻으려면 구독의 소유자 여야 합니다.
- 개발 환경 준비에 설명된 대로 필요한 언어 런타임, 전역 도구 및 VS Code 확장을 설치합니다.
Important
시작하기 전에 개발 환경이 준비되었는지 확인합니다.
이 빠른 시작에서는 SDK 설치, 인증 및 샘플 코드 실행과 같은 시나리오별 단계에 중점을 둡니다.
리소스 만들기
포털에서 다양한 공급자의 다양한 최첨단 모델 카탈로그를 탐색할 수 있습니다. 이 자습서에서는 gpt-4o 모델을 검색한 다음 선택합니다.
-
Microsoft Foundry에 로그인합니다. New Foundry 토글이 꺼져 있는지 확인합니다. 이러한 단계는 Foundry(클래식)를 참조합니다.
프로젝트에 있는 경우 왼쪽 위 이동 경로에서 Microsoft Foundry 를 선택하여 프로젝트를 종료합니다. 잠시 후에 새 항목을 만듭니다.
방문 페이지 또는 모델 카탈로그에서 gpt-4o (또는 gpt-4o-mini)를 선택합니다.
이 모델 사용을 선택합니다. 메시지가 표시되면 새 프로젝트 이름을 입력하고 만들기를 선택합니다.
배포 이름을 검토하고 만들기를 선택합니다.
그런 다음 배포 유형을 선택한 후 연결 및 배포를 선택합니다.
배포 후 배포 페이지에서 플레이그라운드에서 열기를 선택합니다.
모델이 미리 배포되어 바로 사용할 수 있는 상태로 채팅 플레이그라운드에 접속합니다.
에이전트를 빌드하는 경우 에이전트 만들기로 시작할 수 있습니다. 단계는 비슷하지만 순서는 다릅니다. 프로젝트가 만들어지면 채팅 플레이그라운드 대신 에이전트 놀이터에 도착합니다.
이제 에이전트를 사용하여 코드 내에서 또는 포털에서 상호작용할 수 있습니다.
Microsoft Foundry 포털에서 시작하여 프로젝트를 만들고 모델을 배포합니다. 이 빠른 시작에서는 gpt-4-1-mini 모델을 사용하지만 여러 공급자에서 지원되는 모든 모델을 사용할 수 있습니다.
- Microsoft Foundry에 로그인합니다. New Foundry 토글이 꺼져 있는지 확인합니다. 이러한 단계는 Foundry(클래식)를 참조합니다.
Microsoft Foundry에 로그인합니다. New Foundry 토글이 설정되었는지 확인합니다. 이러한 단계는 Foundry(신규)를 참조합니다.
- 프로젝트는 작업을 구성하는 데 도움이 됩니다. 작업 중인 프로젝트가 왼쪽 위 모서리에 나타납니다.
- 새 프로젝트를 만들려면 프로젝트 이름을 선택한 다음 새 프로젝트를 만듭니다.
- 프로젝트에 이름을 지정하고 프로젝트 만들기를 선택합니다.
- 이제 프로젝트에 모델을 배포합니다.
- 오른쪽 위 탐색에서 검색 을 선택합니다.
- 모델을 선택합니다.
- gpt-4.1-mini 모델을 검색합니다.
- 기본 설정>를 선택하여 프로젝트에 추가합니다.
Foundry 모델을 사용하면 고객이 단일 엔드포인트 및 자격 증명을 사용하여 주력 모델 공급자의 가장 강력한 모델을 사용할 수 있습니다. 즉, 한 줄의 코드를 변경하지 않고 모델 간에 전환하고 애플리케이션에서 사용할 수 있습니다.
이제 모델과 상호 작용하고 에이전트를 만들 준비가 되었습니다.
코드 준비
Tip
코드는 Foundry 프로젝트(클래식) API 를 사용하며 Foundry 프로젝트(새) API(미리 보기)와 호환되지 않습니다. Foundry 프로젝트의 새 API(미리 보기) 버전에 대한 Foundry 새 설명서로 전환하십시오.
다음 패키지를 설치합니다.
pip install openai azure-identity azure-ai-projects==1.0.0-
Microsoft Foundry 모델을 사용하면 고객이 단일 엔드포인트 및 자격 증명을 사용하여 주력 모델 공급자의 가장 강력한 모델을 사용할 수 있습니다. 즉, 한 줄의 코드를 변경하지 않고 모델 간에 전환하고 애플리케이션에서 사용할 수 있습니다.
프로젝트의 개요 섹션에서 Foundry 프로젝트 엔드포인트를 복사합니다. 잠시 후에 당신이 사용할 거예요.
Tip
Foundry 프로젝트 엔드포인트가 표시되지 않으면 허브 기반 프로젝트를 사용하는 것입니다. ( 프로젝트 유형 참조). Foundry 프로젝트로 전환하거나 이전 단계를 사용하여 프로젝트를 만듭니다.
- 오른쪽 위 탐색 영역에서 홈 을 선택합니다.
- 키를 선택하고 엔드포인트를 복사합니다. 잠시 후에 당신이 사용할 거예요.
Python 스크립트를 실행하기 전에 CLI
az login(또는az login --use-device-code) 명령을 사용하여 로그인하여 인증해야 합니다.
아래를 따르거나 코드를 가져옵니다.
Important
이 문서의 코드는 현재 미리 보기로 제공되는 패키지를 사용합니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.
환경 변수 설정
엔드포인트를 환경 변수로 저장합니다. 또한 스크립트에서 사용하기 위해 이러한 값을 설정합니다.
-
환영 화면에서 엔드포인트를 복사하세요. 다음 단계에서 사용합니다.
스크립트에서 사용할 환경 변수를 설정합니다.
AZURE_AI_FOUNDRY_PROJECT_ENDPOINT=<endpoint copied from welcome screen> AZURE_AI_FOUNDRY_AGENT_NAME="MyAgent" AZURE_AI_FOUNDRY_MODEL_DEPLOYMENT_NAME="gpt-4.1-mini"
설치 및 인증
Tip
코드는 Foundry 프로젝트(새) API(미리 보기) 를 사용하며 Foundry 프로젝트(클래식) API 버전과 호환되지 않습니다. Foundry(클래식) 설명서로 전환하여 Foundry 프로젝트(클래식) API 버전을 확인하세요.
azure-ai-projects의 미리 보기 버전을 포함하여 이러한 패키지를 설치하십시오. 이 버전은 Foundry 프로젝트(새) API (미리 보기)를 사용합니다.pip install azure-ai-projects --pre pip install openai azure-identity python-dotenvPython 스크립트를 실행하기 전에 CLI
az login(또는az login --use-device-code) 명령을 사용하여 로그인하여 인증해야 합니다.
아래를 따르거나 코드를 가져옵니다.
모델과 채팅
채팅 완성은 AI 애플리케이션의 기본 구성 요소입니다. 채팅 완료를 사용하여 메시지 목록을 보내고 모델에서 응답을 받을 수 있습니다.
Tip
코드는 Foundry 프로젝트(클래식) API 를 사용하며 Foundry 프로젝트(새) API(미리 보기)와 호환되지 않습니다. Foundry 프로젝트의 새 API(미리 보기) 버전에 대한 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)
모델과 상호 작용하는 것은 AI 애플리케이션의 기본 구성 요소입니다. 입력을 보내고 모델에서 응답을 받습니다.
Tip
코드는 Foundry 프로젝트(새) API(미리 보기) 를 사용하며 Foundry 프로젝트(클래식) API 버전과 호환되지 않습니다. Foundry(클래식) 설명서로 전환하여 Foundry 프로젝트(클래식) API 버전을 확인하세요.
import os
from dotenv import load_dotenv
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
load_dotenv()
print(f"Using AZURE_AI_FOUNDRY_PROJECT_ENDPOINT: {os.environ['AZURE_AI_FOUNDRY_PROJECT_ENDPOINT']}")
print(f"Using AZURE_AI_FOUNDRY_MODEL_DEPLOYMENT_NAME: {os.environ['AZURE_AI_FOUNDRY_MODEL_DEPLOYMENT_NAME']}")
project_client = AIProjectClient(
endpoint=os.environ["AZURE_AI_FOUNDRY_PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
)
openai_client = project_client.get_openai_client()
response = openai_client.responses.create(
model=os.environ["AZURE_AI_FOUNDRY_MODEL_DEPLOYMENT_NAME"],
input="What is the size of France in square miles?",
)
print(f"Response output: {response.output_text}")
에이전트 만들기
배포된 모델을 사용하여 에이전트를 만듭니다.
에이전트는 핵심 동작을 정의합니다. 만든 후에는 매번 명령을 반복하지 않고 사용자 상호 작용에서 일관된 응답을 보장합니다. 언제든지 에이전트를 업데이트하거나 삭제할 수 있습니다.
Tip
코드는 Foundry 프로젝트(새) API(미리 보기) 를 사용하며 Foundry 프로젝트(클래식) API 버전과 호환되지 않습니다. Foundry(클래식) 설명서로 전환하여 Foundry 프로젝트(클래식) API 버전을 확인하세요.
import os
from dotenv import load_dotenv
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import PromptAgentDefinition
load_dotenv()
project_client = AIProjectClient(
endpoint=os.environ["AZURE_AI_FOUNDRY_PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
)
agent = project_client.agents.create_version(
agent_name=os.environ["AZURE_AI_FOUNDRY_AGENT_NAME"],
definition=PromptAgentDefinition(
model=os.environ["AZURE_AI_FOUNDRY_MODEL_DEPLOYMENT_NAME"],
instructions="You are a helpful assistant that answers general questions",
),
)
print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")
에이전트와 채팅
에이전트를 만들고 채팅합니다.
Tip
코드는 Foundry 프로젝트(클래식) API 를 사용하며 Foundry 프로젝트(새) API(미리 보기)와 호환되지 않습니다. Foundry 프로젝트의 새 API(미리 보기) 버전에 대한 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")
"MyAgent"라는 이전에 만든 에이전트를 사용하여 질문 및 관련 후속 작업을 요청하여 상호 작용합니다. 대화는 이러한 상호 작용 간에 기록을 유지 관리합니다.
Tip
코드는 Foundry 프로젝트(새) API(미리 보기) 를 사용하며 Foundry 프로젝트(클래식) API 버전과 호환되지 않습니다. Foundry(클래식) 설명서로 전환하여 Foundry 프로젝트(클래식) API 버전을 확인하세요.
import os
from dotenv import load_dotenv
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
load_dotenv()
project_client = AIProjectClient(
endpoint=os.environ["AZURE_AI_FOUNDRY_PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
)
agent_name = os.environ["AZURE_AI_FOUNDRY_AGENT_NAME"]
openai_client = project_client.get_openai_client()
# Optional Step: Create a conversation to use with the agent
conversation = openai_client.conversations.create()
print(f"Created conversation (id: {conversation.id})")
# Chat with the agent to answer questions
response = openai_client.responses.create(
conversation=conversation.id, #Optional conversation context for multi-turn
extra_body={"agent": {"name": agent_name, "type": "agent_reference"}},
input="What is the size of France in square miles?",
)
print(f"Response output: {response.output_text}")
# Optional Step: Ask a follow-up question in the same conversation
response = openai_client.responses.create(
conversation=conversation.id,
extra_body={"agent": {"name": agent_name, "type": "agent_reference"}},
input="And what is the capital city?",
)
print(f"Response output: {response.output_text}")
에이전트에 파일 추가
에이전트는 도구를 사용하여 강력한 기능을 제공합니다. 지식 검색을 수행할 수 있는 파일 검색 도구를 추가해 보겠습니다.
- product_info_1.md를 다운로드하여 에이전트에 제공합니다.
Tip
코드는 Foundry 프로젝트(클래식) API 를 사용하며 Foundry 프로젝트(새) API(미리 보기)와 호환되지 않습니다. Foundry 프로젝트의 새 API(미리 보기) 버전에 대한 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)
자원을 정리하세요
만든 리소스가 더 이상 필요하지 않은 경우 프로젝트와 연결된 리소스 그룹을 삭제합니다.
Microsoft Foundry 포털의 오른쪽 위 모서리에서 프로젝트 이름을 선택합니다. 그런 다음, 리소스 그룹에 대한 링크를 선택하여 Azure Portal에서 엽니다. 리소스 그룹을 선택한 다음 삭제를 선택합니다. 리소스 그룹을 삭제할지 확인합니다.
Azure Portal에서 리소스 그룹을 찾아 선택합니다. 삭제를 선택하고 리소스 그룹 및 관련된 모든 리소스를 삭제하도록 확인합니다.