Средство Python

Средство Python позволяет предлагать настраиваемые фрагменты кода в виде автономных исполняемых узлов в потоке запросов. Вы можете легко создавать средства Python, изменять код и проверять результаты.

Входные данные

Имя. Тип Описание Обязательное поле
Код строка Фрагмент кода на Python Да
Входные данные - Список параметров функции средства и его назначений -

Типы

Тип Пример на Python Description
INT param: int Целочисленный тип
bool param: bool Тип Boolean
строка param: str Тип строки
двойной точности param: float Тип double
список param: list или param: List[T] Тип списка
объект param: dict или param: Dict[K, V] Тип объекта
Соединение param: Custom Подключение ion тип Подключение ion обрабатывается специально

Параметры с Connection заметкой типа обрабатываются как входные данные подключения. Это означает:

  • Расширение потока запроса показывает селектор для выбора подключения.
  • Во время выполнения поток запроса пытается найти соединение с тем же именем из значения параметра, переданного в.

Примечание.

Заметка Union[...] типа поддерживается только для типа подключения, например param: Union[CustomConnection, OpenAIConnection].

Выходные данные

Выходные данные — это возврат функции средства Python.

Запись с помощью средства Python

Используйте следующие рекомендации для записи с помощью средства Python.

Рекомендации

  • Код средства Python должен состоять из полного кода Python, включая любой необходимый импорт модуля.

  • Код инструмента Python должен содержать функцию, @tool декорированную (функцией инструмента), которая служит точкой входа для выполнения. @tool Примените декоратор только один раз в фрагменте кода.

    Пример в следующем разделе определяет средство my_python_toolPython, которое украшено @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

Входные данные

Имя. Тип Пример значения в потоке YAML Значение, переданное функции
message строка world world
my_conn CustomConnection my_conn Объект CustomConnection.

Поток запроса пытается найти соединение с именем my_conn во время выполнения.

Выходные данные

"hello world"

Настраиваемое подключение в средстве Python

Если вы разрабатываете средство Python, требующее вызова внешних служб с проверкой подлинности, используйте настраиваемое подключение в потоке запросов. Его можно использовать для безопасного хранения ключа доступа, а затем получить его в коде Python.

Создание настраиваемого подключения

Создайте настраиваемое подключение, которое хранит все ключ API большой языковой модели или другие необходимые учетные данные.

  1. Перейдите к потоку запросов в рабочей области и перейдите на вкладку Подключение ions.

  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.

Примечание.

Чтобы задать одну пару "ключ-значение" в качестве секрета, выберите секрет проверка box. Этот параметр шифрует и сохраняет значение ключа. Убедитесь, что по крайней мере одна пара "ключ-значение" имеет значение секрета. В противном случае подключение не создается успешно.

Использование настраиваемого подключения в 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