Средство 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: CustomConnection | Тип подключения обрабатывается специально |
Параметры с Connection
заметкой типа обрабатываются как входные данные подключения. Это означает:
- Расширение потока запроса показывает селектор для выбора подключения.
- Во время выполнения поток запроса пытается найти соединение с тем же именем из значения параметра, переданного в.
Примечание.
Заметка Union[...]
типа поддерживается только для типа подключения, например param: Union[CustomConnection, OpenAIConnection]
.
Выходные данные
Выходные данные — это возврат функции средства Python.
Запись с помощью средства Python
Используйте следующие рекомендации для записи с помощью средства Python.
Рекомендации
Код средства Python должен состоять из полного кода Python, включая любой необходимый импорт модуля.
Код инструмента Python должен содержать функцию,
@tool
декорированную (функцией инструмента), которая служит точкой входа для выполнения.@tool
Примените декоратор только один раз в фрагменте кода.Пример в следующем разделе определяет средство
my_python_tool
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
Входные данные
Имя. | Тип | Пример значения в потоке YAML | Значение, переданное функции |
---|---|---|---|
message | строка | world |
world |
my_conn | CustomConnection |
my_conn |
Объект CustomConnection . |
Поток запроса пытается найти соединение с именем my_conn
во время выполнения.
Выходные данные
"hello world"
Настраиваемое подключение в средстве Python
Если вы разрабатываете средство Python, требующее вызова внешних служб с проверкой подлинности, используйте настраиваемое подключение в потоке запросов. Его можно использовать для безопасного хранения ключа доступа, а затем получить его в коде Python.
Создание настраиваемого подключения
Создайте настраиваемое подключение, которое хранит все ключ API большой языковой модели или другие необходимые учетные данные.
Перейдите к потоку запросов в рабочей области и перейдите на вкладку "Подключения ".
Выберите "Создать>настраиваемую".
В правой области можно определить имя подключения. Вы можете добавить несколько пар "ключ-значение" для хранения учетных данных и ключей, выбрав "Добавить пары "ключ-значение".
Примечание.
Чтобы задать одну пару "ключ-значение" в качестве секрета, установите флажок "Секрет ". Этот параметр шифрует и сохраняет значение ключа. Убедитесь, что по крайней мере одна пара "ключ-значение" имеет значение секрета. В противном случае подключение не создается успешно.
Использование настраиваемого подключения в Python
Чтобы использовать настраиваемое подключение в коде Python, выполните следующие действия.
В разделе кода на узле Python импортируйте пользовательскую библиотеку
from promptflow.connections import CustomConnection
подключений. Определите входной параметр типаCustomConnection
в функции средства.Анализ входных данных в разделе входных данных и выбор целевого настраиваемого подключения в раскрывающемся списке "Значение ".
Например:
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