Share via


Azure AI 스튜디오의 흐름을 위한 Python 도구

Important

이 문서에 설명된 기능 중 일부는 미리 보기로만 제공될 수 있습니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

프롬프트 흐름 Python 도구는 자체 포함 실행 가능 노드로 사용자 지정 코드 조각을 제공합니다. 쉽게 Python 도구를 만들고, 코드를 편집하고, 결과를 확인할 수 있습니다.

Python 도구를 사용하여 빌드

  1. Azure AI 스튜디오 흐름을 만들거나 엽니다. 자세한 내용은 흐름 만들기를 참조하세요.

  2. + Python을 선택하여 흐름에 Python 도구를 추가합니다.

    Azure AI 스튜디오의 흐름에 추가된 Python 도구를 보여 주는 스크린샷.

  3. 입력 테이블에 설명된 Python 도구 입력 매개 변수의 값을 입력합니다. 예를 들어 코드 입력 텍스트 상자에 다음 Python 코드를 입력할 수 있습니다.

    from promptflow import tool
    
    @tool
    def my_python_tool(message: str) -> str:
        return 'hello ' + message
    

    자세한 내용은 Python 코드 입력 요구 사항을 참조하세요.

  4. 필요에 따라 흐름에 도구를 더 추가합니다. 또는 실행하여 흐름을 실행합니다.

  5. 출력은 Outputs 테이블에 설명되어 있습니다. 이전 예제 Python 코드 입력에 따라 입력 메시지가 "world"이면 출력은 hello world입니다.

입력

코드를 저장한 후 입력 목록은 도구 함수의 인수에 따라 변경됩니다. 인수 및 return 값에 형식을 추가하면 도구에서 형식을 올바르게 표시하는 데 도움이 됩니다.

속성 형식 설명 필수
코드 string Python 코드 조각.
입력 - 도구 함수 매개 변수 및 해당 할당 목록. -

출력

출력은 Python 도구 함수의 return 값입니다. 예를 들어 다음 Python 도구 함수를 고려하세요.

from promptflow import tool

@tool
def my_python_tool(message: str) -> str:
    return 'hello ' + message

입력 메시지가 "world"이면 출력은 hello world입니다.

유형

Type Python 예시 설명
int param: int 정수 형식
bool param: bool 부울 형식
string param: str 문자열 유형
double param: float Double 형식
list param: list 또는 param: List[T] 목록 유형
개체 param: dict 또는 param: Dict[K, V] Object type
Connection param: CustomConnection 연결 형식은 특별히 처리됩니다

Connection 형식 주석이 있는 매개 변수는 연결 입력으로 처리됩니다. 즉, 다음을 의미합니다.

  • 프롬프트 흐름 확장에 연결을 선택하는 선택기가 표시됩니다.
  • 실행 시간 동안 프롬프트 흐름은 전달된 매개 변수 값에서 동일한 이름의 연결을 찾으려고 합니다.

참고 항목

Union[...] 형식 주석은 연결 형식에만 지원됩니다. 예제는 param: Union[CustomConnection, OpenAIConnection]입니다.

Python 코드 입력 요구 사항

이 섹션에서는 Python 도구의 Python 코드 입력 요구 사항을 설명합니다.

  • Python 도구 코드는 필요한 모듈 가져오기를 포함하여 완전한 Python 코드로 구성되어야 합니다.
  • Python 도구 코드에는 실행 진입점 역할을 하는 @tool(도구 함수)로 데코레이트된 함수가 포함되어야 합니다. @tool 데코레이터는 코드 조각 내에서 한 번만 적용되어야 합니다.
  • Python 도구 함수 매개 변수는 Inputs 섹션에 할당되어야 합니다.
  • Python 도구 함수에는 도구의 출력인 return 문과 값이 있어야 합니다.

다음 Python 코드는 모범 사례의 예입니다.

from promptflow import tool

@tool
def my_python_tool(message: str) -> str:
    return 'hello ' + message

Python 도구에서 사용자 지정 연결 사용

인증을 통해 외부 서비스를 호출해야 하는 Python 도구를 개발하는 경우 프롬프트 흐름에서 사용자 지정 연결을 사용할 수 있습니다. 이를 통해 액세스 키를 안전하게 저장한 다음 Python 코드에서 검색할 수 있습니다.

사용자 지정 연결 만들기

모든 큰 언어 모델 API 키 또는 기타 필수 자격 증명을 저장하는 사용자 지정 연결을 만듭니다.

  1. 프로젝트 설정으로 이동합니다. 그런 다음 새 연결을 선택합니다.

  2. 사용자 지정 서비스를 선택합니다. 연결 이름을 정의할 수 있습니다. 키-값 쌍 추가를 선택하여 여러 키-값 쌍을 추가하여 자격 증명과 키를 저장할 수 있습니다.

    참고 항목

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

    AI 스튜디오에서 연결 만들기를 보여 주는 스크린샷.

  3. 연결에 다음 사용자 지정 키를 추가합니다.

    • azureml.flow.connection_type: Custom
    • azureml.flow.module: promptflow.connections

    AI 스튜디오에서 사용자 지정 연결에 추가 정보를 추가하는 것을 보여 주는 스크린샷.

Python에서 사용자 지정 연결 사용

Python 코드에서 사용자 지정 연결을 사용하려면 다음을 수행합니다.

  1. Python 노드의 코드 섹션에서 사용자 지정 연결 라이브러리 from promptflow.connections import CustomConnection을 가져옵니다. 도구 함수에서 CustomConnection 형식의 입력 매개 변수를 정의합니다.
  2. 입력 섹션에 대한 입력을 구문 분석합니다. 그런 다음 값 드롭다운 목록에서 대상 사용자 지정 연결을 선택합니다.

예시:

from promptflow import tool
from promptflow.connections import CustomConnection

@tool
def my_python_tool(message: str, myconn: CustomConnection) -> str:
    # Get authentication key-values from the custom connection
    connection_key1_value = myconn.key1
    connection_key2_value = myconn.key2

다음 단계