다음을 통해 공유


Python 도구

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

입력

이름 종류 설명 필수
코드 string Python 코드 조각
입력 - 도구 함수 매개 변수 및 해당 할당 목록 -

유형

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: Custom커넥트ion 커넥트ion 형식은 특별히 처리됩니다.

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

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

참고 항목

Union[...] 형식 주석은 연결 형식에 대해서만 지원됩니다(예: .)param: Union[CustomConnection, OpenAIConnection].

출력

출력은 Python 도구 함수의 반환입니다.

Python 도구를 사용하여 쓰기

다음 지침을 사용하여 Python 도구를 사용하여 작성합니다.

지침

  • Python 도구 코드는 필요한 모듈 가져오기를 포함하여 전체 Python 코드로 구성되어야 합니다.

  • Python 도구 코드는 실행의 진입점 역할을 하는 (도구 함수)로 데코레이팅된 @tool 함수를 포함해야 합니다. @tool 코드 조각 내에서 한 번만 데코레이터를 적용합니다.

    다음 섹션의 샘플은 로 데코레이팅되는 @toolPython 도구를 my_python_tool정의합니다.

  • Python 도구 함수 매개 변수는 섹션에서 할당 Inputs 해야 합니다.

    다음 섹션의 샘플은 입력 message 을 정의하고 할당합니다 world.

  • Python 도구 함수에는 반환이 있습니다.

    다음 섹션의 샘플은 연결된 문자열을 반환합니다.

코드

다음 코드 조각은 도구 함수의 기본 구조를 보여줍니다. 프롬프트 흐름은 함수를 읽고 함수 매개 변수 및 형식 주석에서 입력을 추출합니다.

from promptflow import tool
from promptflow.connections import CustomConnection

# The inputs section will change based on the arguments of the tool function, after you save the code
# Adding type to arguments and return value will help the system show the types properly
# Please update the function name/signature per need
@tool
def my_python_tool(message: str, my_conn: CustomConnection) -> str:
    my_conn_dict = dict(my_conn)
    # Do some function call with my_conn_dict...
    return 'hello ' + message

입력

이름 Type 흐름 YAML의 샘플 값 함수에 전달된 값
message string world world
my_conn CustomConnection my_conn CustomConnection 개체

프롬프트 흐름은 실행 시간 동안 명명된 my_conn 연결을 찾으려고 시도합니다.

출력

"hello world"

Python 도구의 사용자 지정 연결

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

사용자 지정 연결 만들기

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

  1. 작업 영역에서 프롬프트 흐름으로 이동한 다음 커넥트 탭으로 이동합니다.

  2. 사용자 지정 만들기>를 선택합니다.

    Screenshot that shows flows on the Connections tab highlighting the Custom button in the drop-down menu.

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

    Screenshot that shows adding a custom connection point and the Add key-value pairs button.

참고 항목

하나의 키-값 쌍을 비밀로 설정하려면 비밀 검사 상자를 선택합니다 . 이 옵션은 키 값을 암호화하고 저장합니다. 하나 이상의 키-값 쌍이 비밀로 설정되어 있는지 확인합니다. 그렇지 않으면 연결이 성공적으로 만들어지지 않습니다.

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

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

  1. Python 노드의 코드 섹션에서 사용자 지정 연결 라이브러리 from promptflow.connections import CustomConnection를 가져옵니다. 도구 함수에서 형식 CustomConnection 의 입력 매개 변수를 정의합니다.

    Screenshot that shows the doc search chain node highlighting the custom connection.

  2. 입력 섹션에 대한 입력을 구문 분석한 다음 값 드롭다운에서 대상 사용자 지정 연결을 선택합니다.

    Screenshot that shows the chain node highlighting the connection.

예시:

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