다음을 통해 공유


프롬프트 흐름에서 LangChain 통합

LangChain Python 라이브러리는 LLM(대규모 언어 모델), 에이전트 및 종속성 도구로 구동되는 애플리케이션을 개발하기 위한 프레임워크입니다. 이 문서에서는 Azure Machine Learning 프롬프트 흐름을 사용하여 LangChain 개발을 과급하는 방법을 보여 줍니다.

langchain python 라이브러리가 있는 흐름의 스크린샷.

LangChain과 프롬프트 흐름의 통합은 사용자 지정 언어 모델을 쉽게 빌드하고 테스트하는 데 도움이 되는 강력한 조합입니다. LangChain 모듈을 사용하여 흐름을 빌드한 다음 프롬프트 흐름 프로세스를 사용하여 대량 테스트, 평가 및 최종 배포를 위한 실험 크기를 조정할 수 있습니다. 예를 들어 더 큰 데이터 세트를 기반으로 대규모 실험을 수행할 수 있습니다.

LangChain 코드를 기반으로 하는 로컬 프롬프트 흐름이 이미 있는 경우 추가 실험을 위해 Azure Machine Learning 프롬프트 흐름으로 쉽게 변환할 수 있습니다. 또는 LangChain SDK 클래스 및 함수를 직접 사용하려는 경우 사용자 지정 LangChain 코드를 사용하는 Python 노드를 사용하여 Azure Machine Learning 흐름을 쉽게 빌드할 수 있습니다.

필수 조건

  • 제대로 테스트되고 배포할 준비가 된 로컬 LangChain 흐름입니다.
  • requirements.txt 파일에 langchain나열된 패키지를 추가하여 Machine Learning 프롬프트 흐름을 실행할 수 있는 컴퓨팅 세션입니다. 자세한 내용은 프롬프트 흐름 컴퓨팅 세션 관리를 참조 하세요.

LangChain 코드를 프롬프트 흐름으로 변환

다음 프로세스를 사용하여 로컬 LangChain 코드를 실행 가능한 Azure Machine Learning 프롬프트 흐름으로 변환합니다.

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

LangChain 코드는 AzureOpenAI 모델을 호출하는 데 필요한 AzureOpenAI API 키와 같이 자격 증명을 저장하는 환경 변수를 정의할 수 있습니다. 예를 들어 다음 코드는 OpenAI API 형식, 키, 기본 및 버전에 대해 설정되는 환경 변수를 보여 줍니다.

os.environ["OPENAI_API_TYPE"] = "azure"
os.environ["OPENAI_API_VERSION"] = "2023-05-15"
os.environ["OPENAI_API_BASE"] = "https://contosobamiopenai.openai.azure.com/"
os.environ["OPENAI_API_KEY"] = "abc123abc123abc123abc123abc123ab"

클라우드에서 Azure Machine Learning 프롬프트 흐름을 실행하는 경우 자격 증명을 환경 변수로 노출하지 않는 것이 좋습니다. 코드와 별도로 자격 증명을 안전하게 저장하고 관리하려면 환경 변수를 프롬프트 흐름 연결로 변환해야 합니다.

LLM API 키 또는 기타 필수 키와 같은 사용자 지정 자격 증명을 안전하게 저장하는 연결을 만들려면 다음 지침을 따릅니다.

  1. Azure Machine Learning 작업 영역의 프롬프트 흐름 페이지에서 연결 탭을 선택한 다음 만들기를 선택합니다.

  2. 드롭다운 목록에서 연결 유형을 선택합니다. 이 예제에서는 사용자 지정을 선택합니다.

    프롬프트 흐름 페이지의 연결 탭에서 만들기 및 사용자 지정을 선택하는 스크린샷

  3. 오른쪽 창에서 연결 이름을 정의한 다음 키-값 쌍 추가를 선택하여 자격 증명 및 키를 저장할 키-값 쌍을 추가합니다.

    사용자 지정 연결 키-값 쌍을 추가하는 스크린샷

  4. 키에 대해 암호화된 값을 저장하려면 하나 이상의 키-값 쌍 옆에 있는 비밀 확인란을 선택합니다. 사용자 지정 연결을 성공적으로 만들려면 하나 이상의 값을 비밀로 설정해야 합니다.

  5. 저장을 선택합니다.

사용자 지정 연결은 키와 자격 증명 또는 LangChain 코드에 명시적으로 정의된 해당 환경 변수를 대체할 수 있습니다. 흐름에서 사용자 지정 연결을 사용하려면 연결 구성을 참조하세요.

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

흐름을 만들려면 Azure Machine Learning 스튜디오 프롬프트 흐름 페이지에서 만들기를 선택하고 흐름 유형을 선택합니다. 흐름 작성 페이지에서 흐름을 작성하기 전에 컴퓨팅 세션을 시작합니다. 페이지 맨 위에 있는 도구 유형을 선택하여 해당 노드를 흐름에 삽입합니다. 자세한 흐름 작성 지침은 프롬프트 흐름 개발을 참조하세요.

컴퓨팅 세션에 패키지 종속성이 포함되어 langchain 있는 한 모든 LangChain 코드는 흐름의 Python 노드에서 직접 실행할 수 있습니다.

LangChain 코드를 Azure Machine Learning 프롬프트 흐름으로 변환하는 방법에는 두 가지가 있습니다. 구현할 흐름 유형은 사용 사례에 따라 달라집니다.

  • 더 나은 실험 관리를 위해 흐름에서 Azure Machine Learning Python 및 프롬프트 도구를 사용하도록 코드를 변환할 수 있습니다. 코드에서 프롬프트 템플릿을 프롬프트 노드로 추출하고 나머지 코드를 단일 또는 여러 Python 노드 또는 도구에 넣습니다. 이 옵션을 사용하면 변형을 실행하여 프롬프트를 쉽게 튜닝할 수 있으며 평가 결과에 따라 최적의 프롬프트를 선택할 수 있습니다.

    다음 예제에서는 프롬프트 노드와 Python 노드를 모두 사용하는 흐름을 보여 줍니다.

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

  • 더 간단한 변환 프로세스를 위해 Python 노드 내에서 직접 LangChain LLM 라이브러리를 호출할 수 있습니다. 프롬프트 정의를 포함하여 모든 코드가 Python 노드에서 실행됩니다. 이 옵션은 더 큰 데이터 세트 또는 기타 구성에 따라 더 빠른 일괄 테스트를 지원합니다.

    다음 예제에서는 Python 노드만 사용하는 흐름을 보여 줍니다.

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

연결 구성

흐름을 구성하고 코드를 특정 도구 노드로 이동한 후에는 원래 환경 변수를 연결의 해당 키로 바꿔야 합니다. 만든 사용자 지정 연결을 사용하려면 다음 단계를 수행합니다.

  1. Python 코드에서 입력하여 사용자 지정 연결 라이브러리를 가져옵니다.
    from promptflow.connections import CustomConnection.

    참고 항목

    Azure OpenAI 연결을 가져오려면 .를 사용합니다 from promptflow.connections import AzureOpenAIConnection.

  2. 도구 함수에서 형식 CustomConnection의 입력 매개 변수를 정의합니다.

    사용자 지정 연결을 강조한 문서 검색 체인 노드의 스크린샷.

  3. 원래 키 또는 자격 증명을 정의한 환경 변수를 연결의 해당 키로 바꿉니다.

  4. 입력을 노드 UI의 입력 섹션으로 구문 분석한 다음 UI의 값 드롭다운 목록에서 사용자 지정 연결을 선택합니다.

    연결을 강조한 체인 노드의 스크린샷.

  5. LLM 노드와 같이 필요한 다른 노드에서도 연결 매개 변수를 구성해야 합니다.

입력 및 출력 구성

흐름을 실행하기 전에 노드 입력 및 출력과 전체 흐름 입력 및 출력을 구성합니다. 이 단계는 필요한 모든 데이터가 흐름을 제대로 통과하고 원하는 결과를 생성하도록 하는 데 중요합니다. 자세한 내용은 Flow 입력 및 출력을 참조 하세요.