다음을 통해 공유


LangChain과 통합

프롬프트 흐름은 LLM, 에이전트 및 종속성 도구로 구동되는 애플리케이션 개발을 위한 프레임워크인 LangChain Python 라이브러리와 함께 사용할 수도 있습니다. 이 문서에서는 프롬프트 흐름에서 LangChain 개발을 강화하는 방법을 보여 드리겠습니다.

LangChain Python 라이브러리 흐름의 스크린샷.

다음 섹션을 소개합니다.

LangChain 통합의 이점

Microsoft는 LangChain과 Prompt 흐름의 통합을 사용자 지정 언어 모델을 쉽게 빌드하고 테스트하는 데 도움이 될 수 있는 강력한 조합으로 간주합니다. 특히 LangChain 모듈을 사용하여 처음에 흐름을 빌드한 다음 프롬프트 흐름을 사용하여 대량 테스트를 위한 실험을 쉽게 크기 조정하고 평가한 다음 최종적으로 배포하려는 경우에 그렇습니다.

  • 대규모 실험의 경우 - 기존 LangChain 개발을 몇 초 만에 변환합니다. 로컬에서 LangChain 코드를 기반으로 데모 프롬프트 흐름을 이미 개발한 경우 프롬프트 흐름의 간소화된 통합을 통해 추가 실험을 위해 이를 흐름으로 쉽게 변환할 수 있습니다. 예를 들어, 더 큰 데이터 세트를 기반으로 더 큰 규모의 실험을 수행할 수 있습니다.
  • 보다 친숙한 흐름 엔지니어링을 위해 - 익숙한 Python SDK를 기반으로 쉽게 프롬프트 흐름을 빌드합니다. LangChain SDK에 이미 익숙하고 해당 클래스와 함수를 직접 사용하려는 경우 직관적인 흐름 빌드 Python 노드를 사용하면 사용자 지정 Python 코드를 기반으로 흐름을 쉽게 빌드할 수 있습니다.

LangChain 코드를 흐름으로 변환하는 방법

로컬에서 사용할 수 있는 자체 LangChain 코드가 이미 있고 적절하게 테스트되어 배포 준비가 되어 있다고 가정합니다. Microsoft 플랫폼에서 실행 가능한 흐름으로 변환하려면 아래 단계를 따라야 합니다.

환경 및 컴퓨팅 세션의 필수 조건

흐름 폴더의 requirements.txt 파일에 패키지를 추가하여 이 흐름을 실행하는 데 사용하는 환경을 사용자 지정할 수 있습니다. 컴퓨팅 세션에 대한 자세한 정보

자격 증명을 프롬프트 흐름 연결로 변환

LangChain 코드를 개발할 때 AzureOpenAI 모델을 호출하는 데 필요한 AzureOpenAI API KEY와 같은 자격 증명을 저장하기 위한 환경 변수를 정의했을 수 있습니다.

LangChain의 Azure OpenAI 예 스크린샷.

클라우드에서 LangChain 코드를 실행할 때 코드에 자격 증명을 직접 코딩하고 환경 변수로 노출하는 대신 환경 변수의 자격 증명을 프롬프트 흐름의 연결로 변환하는 것이 좋습니다. 이를 통해 코드와 별도로 자격 증명을 안전하게 저장하고 관리할 수 있습니다.

연결 만들기

LLM API KEY 또는 기타 필수 자격 증명과 같은 자격 증명을 안전하게 저장하는 연결을 만듭니다.

  1. 작업 영역에서 프롬프트 흐름으로 이동한 다음 연결 탭으로 이동합니다.
  2. 만들기를 선택하고 자격 증명을 저장할 연결 형식을 선택합니다. (사용자 지정 연결을 예로 들어 보겠습니다.) 만들기 드롭다운 메뉴에서 사용자 지정 단추가 강조 표시된 연결 탭의 흐름 스크린샷.
  3. 오른쪽 패널에서 연결 이름을 정의할 수 있으며, 키-값 쌍 추가를 선택하여 여러 키-값 쌍을 추가하여 자격 증명과 키를 저장할 수 있습니다. 키-값 쌍 추가 단추에 사용자 지정 연결점 추가 스크린샷.

참고 항목

  • 비밀임을 선택하여 하나의 키-값 쌍을 비밀로 설정할 수 있으며, 이는 암호화되어 키 값에 저장됩니다.
  • 하나 이상의 키-값 쌍이 비밀로 설정되어 있는지 확인합니다. 그렇지 않으면 연결이 성공적으로 만들어지지 않습니다.

그런 다음 이 사용자 지정 연결은 LangChain 코드에서 명시적으로 정의한 키와 자격 증명을 바꾸는 데 사용됩니다. 이미 LangChain 통합 프롬프트 흐름이 있는 경우​​​​​​​ 연결, 입력 및 출력 구성으로 이동할 수 있습니다.

LangChain 코드를 실행 가능한 흐름으로 변환

컴퓨팅 세션에 종속성 패키지가 포함되어 있는 한 모든 LangChain 코드는 흐름의 Python 도구에서 직접 실행될 수 있습니다. 아래 단계에 따라 LangChain 코드를 흐름으로 쉽게 변환할 수 있습니다.

LangChain 코드를 흐름 구조로 변환

참고 항목

LangChain 코드를 흐름으로 변환하는 방법에는 두 가지가 있습니다.

  • 변환 프로세스를 간소화하기 위해 LangChain 통합 LLM 라이브러리를 활용하여 Python 노드에서 호출할 LLM 모델을 직접 초기화할 수 있습니다.
  • 또 다른 방식은 더 나은 추가 실험 관리를 위해 LLM 소비를 LangChain 코드에서 흐름의 LLM 도구로 변환하는 것입니다.

LangChain 코드를 흐름으로 빠르게 변환하려면 사용 사례에 따라 두 가지 형식의 흐름 구조를 권장합니다.

유형 Desc 케이스
형식 A 프롬프트 노드Python 노드를 모두 포함하는 흐름 코드에서 프롬프트 템플릿을 프롬프트 노드로 추출한 다음 나머지 코드를 단일 Python 노드 또는 여러 Python 도구에 결합할 수 있습니다. 이 구조는 흐름 변형을 실행하여 쉽게 프롬프트를 조정하고 평가 결과에 따라 최적의 것을 선택하려는 사용자에게 이상적입니다.
형식 B Python 노드만 포함하는 흐름 Python 노드로만 새 흐름을 만들 수 있으며 프롬프트 정의를 포함한 모든 코드는 Python 노드에서 실행됩니다. 이 구조는 작업 영역에서 프롬프트를 명시적으로 조정할 필요는 없지만 대규모 데이터 세트를 기반으로 더 빠른 일괄 처리 테스트가 필요한 사용자에게 적합합니다.

예를 들어, 차트의 형식 A 흐름은 다음과 같습니다.

프롬프트 단추와 시스템 템플릿을 강조 표시하는 흐름의 스크린샷.

튜닝 완료 단추가 강조 표시된 변형 1과 0을 보여 주는 시스템 템플릿의 스크린샷.

형식 B 흐름은 다음과 같습니다.

LangChain 코드 노드와 그래프를 보여 주는 흐름의 스크린샷.

Azure Machine Learning에서 흐름을 만들려면 작업 영역으로 이동한 다음, 왼쪽 탐색 메뉴에서 프롬프트 흐름을 선택한 다음 만들기를 선택하여 새 흐름을 만듭니다. 흐름을 만드는 방법에 대한 자세한 지침은 흐름 만들기에 소개되어 있습니다.

연결, 입력 및 출력 구성

흐름이 적절하게 구조화되고 코드를 특정 도구 노드로 이동한 후에는 원래 환경 변수를 연결의 해당 키로 바꾸고 흐름의 입력 및 출력을 구성해야 합니다.

연결 구성

LangChain 코드에서 원래 정의한 환경 변수를 바꾸는 연결을 활용하려면 Python 노드에서 프롬프트흐름 연결 라이브러리 promptflow.connections를 가져와야 합니다.

예시:

AzureOpenAI 모델을 사용하는 LangChain 코드가 있는 경우 환경 변수를 Azure OpenAI 연결의 해당 키로 바꿀 수 있습니다.

라이브러리 from promptflow.connections import AzureOpenAIConnection 가져오기

프롬프트 흐름의 LangChain 코드 스크린샷.

사용자 지정 연결을 위해서는 다음 단계를 따라야 합니다.

  1. 라이브러리 from promptflow.connections import CustomConnection을 가져오고 도구 함수에서 CustomConnection 형식의 입력 매개 변수를 정의합니다. 사용자 지정 연결을 강조한 문서 검색 체인 노드의 스크린샷.
  2. 입력 섹션에 대한 입력을 구문 분석한 다음 값 드롭다운에서 대상 사용자 지정 연결을 선택합니다. 연결을 강조한 체인 노드의 스크린샷.
  3. 원래 키와 자격 증명을 정의한 환경 변수를 연결에 추가된 해당 키로 바꿉니다.
  4. 저장하고 작성 페이지로 돌아가서 노드 입력에서 연결 매개 변수를 구성합니다.

입력 및 출력 구성

흐름을 실행하기 전에 노드 입력 및 출력은 물론 전체 흐름 입력 및 출력도 구성합니다. 이 단계는 필요한 모든 데이터가 흐름을 통해 적절하게 전달되고 원하는 결과를 가져오도록 하는 데 중요합니다.

다음 단계