다음에만 적용됩니다:Foundry(클래식) 포털. 이 문서는 새 Foundry 포털에서 사용할 수 없습니다.
새 포털에 대해 자세히 알아봅니다.
참고
이 문서의 링크는 현재 보고 있는 Foundry(클래식) 설명서 대신 새 Microsoft Foundry 설명서의 콘텐츠를 열 수 있습니다.
경고
프롬프트 흐름 기능 개발은 2026년 4월 20일에 종료되었습니다. 이 기능은 2027년 4월 20일에 완전히 사용 중지됩니다. 사용 중지 날짜에 프롬프트 흐름이 읽기 전용 모드로 전환됩니다. 기존 흐름은 해당 날짜까지 계속 작동합니다.
권장 조치: 2027년 4월 20일 이전에 프롬프트 흐름 작업 부하를 Microsoft 에이전트 프레임워크로 마이그레이션하세요.
프롬프트 흐름은 LLM(큰 언어 모델)으로 구동되는 AI 애플리케이션의 전체 개발 주기를 간소화하도록 설계된 개발 도구입니다. 프롬프트 흐름은 AI 애플리케이션의 프로토타입 생성, 실험, 반복 및 배포 프로세스를 간소화하는 포괄적인 솔루션을 제공합니다.
프롬프트 흐름을 사용하면 다음을 수행할 수 있습니다.
- 시각화된 그래프를 통해 LLM, 프롬프트 및 Python 도구를 사용하여 실행 파일 흐름을 오케스트레이션합니다.
- 흐름 작업을 쉽고 편리하게 테스트하고 디버그하며 반복하세요.
- 프롬프트 변형을 만들고 성능을 비교합니다.
이 문서에서는 Microsoft Foundry 포털에서 첫 번째 프롬프트 흐름을 만들고 개발하는 방법을 알아봅니다.
필수 구성 요소
중요
이 문서에서는 허브 기반 프로젝트에 대한 레거시 지원을 제공합니다. Foundry 프로젝트에는 작동하지 않습니다. 어떤 유형의 프로젝트를 가지고 있는지 어떻게 알 수 있나요?
SDK 호환성 참고: 코드 예제에는 특정 Microsoft Foundry SDK 버전이 필요합니다. 호환성 문제가 발생하는 경우 허브 기반에서 Foundry 프로젝트로 마이그레이션하는 것이 좋습니다.
- 활성 구독이 있는 Azure 계정입니다. 계정이 없는 경우, 무료 평가판 구독이 포함된 무료 Azure 계정을 만드세요.
- 없는 경우 허브 기반 프로젝트를 만듭니다.
- 프롬프트 흐름에는 컴퓨팅 세션이 필요합니다. 런타임이 없는 경우 Foundry 포털에서 만들 수 있습니다.
- 배포된 모델이 필요합니다.
- 프로젝트에서 Blob Storage 계정에 대한 액세스 제어를 구성합니다. 사용자 계정에 Storage Blob 데이터 기여자 역할을 할당합니다.
- Foundry 포털의 왼쪽 아래에서 관리 센터를 선택합니다.
- 허브에 대한 연결 리소스에서 Azure Blob Storage 형식에 해당하는 링크를 선택합니다.
- Azure 포털에서 보기를 선택합니다.
- Azure 포털에서 AAM(액세스 제어) 선택합니다.
- 역할 할당 추가를> 선택합니다.
- Storage Blob 데이터 참가자를 검색한 다음 선택합니다.
- 역할 할당 추가 페이지를 사용하여 자신을 구성원으로 추가합니다.
- 검토 + 할당을 선택하여 할당을 검토합니다.
- 검토 + 할당을 선택하여 역할을 할당합니다.
프롬프트 흐름 만들기 및 개발
갤러리에서 제공되는 샘플을 복제하거나 처음부터 직접 흐름을 생성할 수 있습니다. 로컬 또는 파일 공유에 흐름 파일이 이미 있는 경우 파일을 가져와 흐름을 만들 수도 있습니다.
Foundry 포털의 갤러리에서 프롬프트 흐름을 만들려면 다음을 수행합니다.
팁
Microsoft Foundry 포털에서 왼쪽 창을 사용할 수 있으므로 이러한 단계와 다른 항목이 표시될 수 있습니다. 원하는 항목이 표시되지 않으면, 왼쪽 창 하단에서 ... 더 보기를 선택하십시오.
Microsoft Foundry 로그인합니다. New Foundry 토글이 꺼져 있는지 확인합니다. 이러한 단계는 Foundry(클래식)를 참조합니다.
프로젝트를 선택합니다.
관리 센터에 있는 경우 프로젝트로 이동을 선택하여 프로젝트 로 돌아갑니다.
축소 가능한 왼쪽 메뉴에서 프롬프트 흐름을 선택합니다.
+만들기를 선택합니다.
표준 흐름 타일에서 만들기를 선택합니다.
새 흐름 만들기 페이지에서 폴더 이름을 입력한 다음 만들기를 선택합니다.
프롬프트 흐름 작성 페이지가 열립니다. 컴퓨팅 세션 시작을 선택하여 흐름에 대해 컴퓨팅 세션을 실행합니다.
이제 흐름 작성을 시작할 수 있습니다. 기본적으로 샘플 흐름이 표시됩니다. 이 예제 흐름에는 LLM 및 Python 도구에 대한 노드가 있습니다.
참고
시각화 전용 그래프 보기입니다. 개발 중인 흐름 구조를 보여줍니다. 그래프 보기를 직접 편집할 수는 없지만 확대, 축소 및 스크롤할 수 있습니다. 그래프 보기에서 노드를 선택하여 도구 편집 보기에서 노드를 강조 표시하고 탐색할 수 있습니다.
필요에 따라 흐름에 더 많은 도구를 추가할 수 있습니다. 표시되는 도구 옵션은 LLM, Prompt 및 Python입니다. 더 많은 도구를 보려면 + 추가 도구를 선택합니다.
LLM 도구 편집기에서 연결 및 배포를 선택합니다.
입력 섹션에서 토픽의 값을 추가합니다. 예를 들어 "원자"입니다.
실행을 선택하여 흐름을 실행합니다.
흐름 실행 상태가 실행 중으로 표시됩니다.
흐름 실행이 완료되면 출력 보기를 선택하여 흐름 결과를 봅니다.
출력 섹션에서 흐름 실행 상태 및 출력을 볼 수 있습니다 .
흐름 작성
각 흐름은 'flow.dag.yaml'' 파일, 소스 코드 파일 및 시스템 폴더가 포함된 폴더로 표시됩니다. 새 파일을 추가하고, 기존 파일을 편집하고, 파일을 삭제할 수 있습니다. 로컬로 파일을 내보내거나 로컬에서 파일을 가져올 수도 있습니다.
기본 보기에서 노드를 인라인 편집하는 것 외에도 원시 파일 모드 토글을 켜고 파일 이름을 선택하여 파일 열기 탭에서 파일을 편집할 수도 있습니다.
흐름 입력 및 출력
흐름 입력은 흐름 전체에 전달되는 데이터입니다. 이름과 형식을 지정하여 입력 스키마를 정의합니다. 각 입력의 입력 값을 설정하여 흐름을 테스트합니다. 흐름 노드에서 ${inputs.[input name]} 구문을 사용하여 나중에 흐름 입력을 참조할 수 있습니다.
흐름 출력은 흐름 전체에서 생성된 데이터로, 흐름 실행 결과를 요약합니다. 흐름 실행 또는 일괄 처리 실행이 완료된 후 출력 테이블을 보고 내보낼 수 있습니다. 구문 ${[node name].output} 또는 ${[node name].output.[field name]}를 사용하여 흐름 단일 노드 출력을 참조하여 흐름 출력 값을 정의합니다.
노드를 함께 연결
노드 출력을 참조하여 노드를 함께 연결할 수 있습니다. 예를 들어 Python 노드 입력에서 LLM 노드 출력을 참조할 수 있으므로 Python 노드에서 LLM 노드 출력을 사용할 수 있으며 그래프 보기에서 두 노드가 함께 연결되어 있음을 확인할 수 있습니다.
흐름에 조건부 제어 사용
프롬프트 흐름은 흐름을 실행하는 간소화된 방법뿐만 아니라 사용자가 흐름에서 노드를 실행하기 위한 조건을 설정할 수 있는 조건부 제어라는 개발자를 위한 강력한 기능을 제공합니다.
조건부 제어의 핵심은 흐름의 각 노드를 활성화 구성과 연결하는 기능을 제공합니다. 이 구성은 기본적으로 노드를 실행해야 하는 시기를 결정하는 "when" 문입니다. 이 기능의 힘은 특정 작업의 실행이 이전 작업의 결과에 따라 달라지는 복잡한 흐름이 있을 때 실현됩니다. 조건부 컨트롤을 사용하여 지정된 조건이 충족되는 경우에만 실행되도록 특정 노드를 구성할 수 있습니다.
특히 노드 카드에서 구성 활성화 단추를 선택하여 노드에 대한 활성화 구성 을 설정할 수 있습니다. "when" 문을 추가하고 조건을 설정할 수 있습니다.
흐름 입력 또는 노드 출력을 참조하여 조건을 설정할 수 있습니다. 예를 들어 조건을 ${inputs.[input name]} 특정 값 또는 ${[node name].output} 특정 값으로 설정할 수 있습니다.
조건을 충족하지 못하면 해당 노드는 처리하지 않고 건너뜁니다. 노드 상태는 "무시됨"으로 표시됩니다.
흐름 테스트
다음 두 가지 방법으로 흐름을 테스트할 수 있습니다.
단일 노드 실행:
- 단일 노드를 실행하려면 기본 보기의 노드에서 실행 아이콘을 선택합니다. 실행이 완료되면 노드 출력 섹션에서 결과를 빠르게 확인할 수 있습니다.
n
- 단일 노드를 실행하려면 기본 보기의 노드에서 실행 아이콘을 선택합니다. 실행이 완료되면 노드 출력 섹션에서 결과를 빠르게 확인할 수 있습니다.
n
전체 흐름을 실행합니다.
- 전체 흐름을 실행하려면 오른쪽 위에 있는 실행 단추를 선택합니다.
테스트 결과 및 추적 보기(미리 보기)
추적은 기본적으로 비활성화되어 추적을 사용하도록 설정하려면 환경 변수 PF_DISABLE_TRACINGfalse를 .로 설정해야 합니다. 이 작업을 수행할 수 있는 한 가지 방법은 Python 노드에 다음을 추가하는 것입니다.
import os
os.environ["PF_DISABLE_TRACING"] = "false"
전체 흐름 실행의 경우 흐름을 실행한 후 실행 배너에서 실행 상태를 볼 수 있습니다. 결과를 확인하고 흐름 실행을 관찰하기 위한 추적을 보려면 출력 보기를 선택한 다음 추적 탭을 선택할 수 있습니다. 디버깅에 대한 자세한 정보와 함께 전체 흐름 및 각 노드의 입력 및 출력을 볼 수 있습니다. 실행 중 및 실행이 완료된 후에 사용할 수 있습니다.
추적 보기 이해하기
출력 화면에서 추적 탭을 선택하여 흐름의 기간 및 관련 토큰 비용에 대한 정보를 제공하는 그래프를 확인합니다. 노드 이름 아래에서 흐름을 선택하여 오른쪽 창에서 자세한 흐름 개요 정보를 확인합니다.
참고
프롬프트 흐름 SDK에서는 LLM, 함수, 임베딩, 검색, 흐름을 포함한 여러 유형의 범위를 정의했습니다. 또한 시스템은 지정된 특성 및 이벤트에서 실행 정보를 사용하여 범위를 자동으로 만듭니다.
범위 유형에 대한 자세한 내용은 추적 범위를 참조하세요.
채팅 흐름 개발
채팅 흐름은 표준 흐름의 기능을 바탕으로 대화형 애플리케이션 개발을 위해 설계되었으며 채팅 입력/출력 및 채팅 기록 관리에 대한 향상된 지원을 제공합니다. 채팅 흐름을 사용하면 채팅 입력 및 출력을 처리하는 챗봇을 쉽게 만들 수 있습니다.
채팅 흐름 작성 페이지에서 채팅 흐름은 표준 흐름 및 평가 흐름과 구분하기 위해 "채팅" 레이블로 태그가 지정됩니다. 채팅 흐름을 테스트하려면 "채팅" 단추를 선택하여 대화에 대한 채팅 상자를 트리거합니다.
채팅 입력/출력 및 채팅 기록
채팅 흐름을 표준 흐름과 구별하는 가장 중요한 요소는 채팅 입력, 채팅 기록 및 채팅 출력입니다.
- 채팅 입력: 채팅 입력은 사용자가 챗봇에 제출한 메시지 또는 쿼리를 나타냅니다. 채팅 입력을 효과적으로 처리하는 것은 사용자 의도 이해, 관련 정보 추출 및 적절한 응답 트리거를 포함하므로 성공적인 대화에 매우 중요합니다.
- 채팅 기록: 채팅 기록은 사용자 입력 및 AI 생성 출력을 포함하여 사용자와 챗봇 간의 모든 상호 작용에 대한 기록입니다. 대화 기록을 유지 관리하는 것은 대화 컨텍스트를 추적하고 AI가 상황에 맞는 관련 응답을 생성할 수 있도록 하는 데 필수적입니다.
- 채팅 출력: 채팅 출력은 입력에 대한 응답으로 사용자에게 전송되는 AI 생성 메시지를 나타냅니다. 긍정적인 사용자 환경을 위해서는 상황에 맞는 적절한 매력적인 채팅 출력을 생성하는 것이 중요합니다.
채팅 흐름은 여러 입력을 가질 수 있으며, 채팅 기록과 채팅 입력은 필수입니다.
채팅 흐름 입력 섹션에서 흐름 입력을 채팅 입력으로 표시할 수 있습니다. 그런 다음 채팅 상자에 입력하여 채팅 입력 값을 채울 수 있습니다.
프롬프트 흐름은 사용자가 채팅 기록을 관리하는 데 도움이 될 수 있습니다. 입력 섹션의
chat_history는 채팅 기록을 나타내기 위해 예약되어 있습니다. 사용자 채팅 입력, 생성된 채팅 출력 및 기타 흐름 입력 및 출력을 비롯한 채팅 상자의 모든 상호 작용은 채팅 기록에 자동으로 저장됩니다. 사용자는 입력 섹션에서 값을chat_history수동으로 설정할 수 없습니다. 입력 및 출력 목록으로 구성됩니다.[ { "inputs": { "<flow input 1>": "xxxxxxxxxxxxxxx", "<flow input 2>": "xxxxxxxxxxxxxxx", "<flow input N>""xxxxxxxxxxxxxxx" }, "outputs": { "<flow output 1>": "xxxxxxxxxxxx", "<flow output 2>": "xxxxxxxxxxxxx", "<flow output M>": "xxxxxxxxxxxxx" } }, { "inputs": { "<flow input 1>": "xxxxxxxxxxxxxxx", "<flow input 2>": "xxxxxxxxxxxxxxx", "<flow input N>""xxxxxxxxxxxxxxx" }, "outputs": { "<flow output 1>": "xxxxxxxxxxxx", "<flow output 2>": "xxxxxxxxxxxxx", "<flow output M>": "xxxxxxxxxxxxx" } } ]
참고
채팅 기록을 자동으로 저장하거나 관리하는 기능은 채팅 상자에서 테스트를 수행할 때 작성 페이지의 기능입니다. 일괄 처리 실행의 경우 사용자가 일괄 처리 실행 데이터 세트 내에 채팅 기록을 포함해야 합니다. 테스트에 사용할 수 있는 채팅 기록이 없는 경우 일괄 처리 실행 데이터 세트 내의 빈 목록 [] 으로 chat_history 설정합니다.
채팅 기록이 포함된 작성자 프롬프트
채팅 기록을 프롬프트에 통합하는 것은 컨텍스트 인식 및 매력적인 챗봇 응답을 만드는 데 필수적입니다. 프롬프트에서 과거 상호 작용을 참조하여 가져오려면 chat_history를 사용할 수 있습니다. 이렇게 하면 이전 입력 및 출력을 참조하여 상황에 맞는 응답을 만들 수 있습니다.
Jinja 언어의 for 루프 문법 을 사용해 chat_history에서 입력과 출력 목록을 표시하세요.
{% for item in chat_history %}
user:
{{item.inputs.question}}
assistant:
{{item.outputs.answer}}
{% endfor %}
채팅 상자로 테스트
채팅 상자는 챗봇과의 대화를 시뮬레이션하여 채팅 흐름을 테스트하는 대화형 방법을 제공합니다. 채팅 상자를 사용하여 채팅 흐름을 테스트하려면 다음 단계를 수행합니다.
- "채팅" 단추를 선택하여 채팅 상자를 엽니다.
- 채팅 상자에 테스트 입력을 입력하고 Enter 키를 눌러 챗봇으로 보냅니다.
- 챗봇의 응답을 검토하여 컨텍스트에 적절하고 정확한지 확인합니다.
- 제자리에서 추적을 바로 보기를 통해 빠르게 관찰하고 디버깅할 수 있습니다.