promptflow.core Modul#
- class promptflow.core.AsyncFlow(*, data: dict, code: Path, path: Path, **kwargs)#
Basiert auf:
FlowBaseAsync Flow basiert auf Flow und wird verwendet, um Flows asynchron aufzurufen.
Beispiel
from promptflow.core import class AsyncFlow flow = AsyncFlow.load(source="path/to/flow.yaml") result = await flow(input_a=1, input_b=2)
- async __call__(*args, **kwargs) Mapping[str, Any]#
Aufrufen eines Flows als Funktion im asynchronen Modus. Die Eingaben müssen als Schlüsselwortargumente übergeben werden. Gibt die Ausgabe des Flows zurück. Der Funktionsaufruf löst UserErrorException aus: wenn der Flow nicht gültig ist oder die Eingaben nicht gültig sind. SystemErrorException: wenn die Flow-Ausführung aufgrund eines unerwarteten Executor-Fehlers fehlgeschlagen ist.
- Parameter:
args – Positionsargumente werden nicht unterstützt.
kwargs – Flow-Eingaben als Schlüsselwortargumente.
- Gibt zurück:
- async invoke(inputs: dict, *, connections: dict = None, **kwargs) LineResult#
Ruft einen Flow auf und gibt ein LineResult-Objekt zurück.
- class promptflow.core.AsyncPrompty(path: Union[str, PathLike], model: Optional[dict] = None, **kwargs)#
Basiert auf:
PromptyAsync Prompty basiert auf Prompty und wird verwendet, um Promtys asynchron aufzurufen.
Einfaches Beispiel
import asyncio from promptflow.core import AsyncPrompty prompty = AsyncPrompty.load(source="path/prompty.prompty") result = await prompty(input_a=1, input_b=2)
- async __call__(*args, **kwargs) Mapping[str, Any]#
Aufrufen eines Prompty als Funktion im asynchronen Modus. Die Eingaben müssen als Schlüsselwortargumente übergeben werden. Gibt die Ausgabe des Prompty zurück. Der Funktionsaufruf löst UserErrorException aus: wenn der Flow nicht gültig ist oder die Eingaben nicht gültig sind. SystemErrorException: wenn die Flow-Ausführung aufgrund eines unerwarteten Executor-Fehlers fehlgeschlagen ist.
- Parameter:
args – Positionsargumente werden nicht unterstützt.
kwargs – Flow-Eingaben als Schlüsselwortargumente.
- Gibt zurück:
- class promptflow.core.AzureOpenAIModelConfiguration(azure_deployment: str, azure_endpoint: str = None, api_version: str = None, api_key: str = None, connection: str = None)#
Basiert auf:
ModelConfiguration- api_key: str = None#
- api_version: str = None#
- azure_deployment: str#
- azure_endpoint: str = None#
- connection: str = None#
- classmethod from_connection(connection: AzureOpenAIConnection, azure_deployment: str)#
Erstellt eine Modellkonfiguration aus einer Azure OpenAI-Verbindung.
- Parameter:
connection (promptflow.connections.AzureOpenAIConnection) – AzureOpenAI Connection-Objekt.
azure_deployment (str) – Name der Azure-Bereitstellung.
- class promptflow.core.Flow(*, data: dict, code: Path, path: Path, **kwargs)#
Basiert auf:
FlowBaseEin Flow im Kontext von PromptFlow ist eine Abfolge von Schritten, die eine Aufgabe definieren. Jeder Schritt im Flow kann ein Prompt sein, der an ein Sprachmodell gesendet wird, oder einfach eine Funktionsaufgabe, und die Ausgabe eines Schritts kann als Eingabe für den nächsten verwendet werden. Flows können verwendet werden, um komplexe Anwendungen mit Sprachmodellen zu erstellen.
Beispiel
from promptflow.core import Flow flow = Flow.load(source="path/to/flow.yaml") result = flow(input_a=1, input_b=2)
- __call__(*args, **kwargs) Mapping[str, Any]#
Aufrufen eines Flows als Funktion. Die Eingaben müssen als Schlüsselwortargumente übergeben werden. Gibt die Ausgabe des Flows zurück. Der Funktionsaufruf löst UserErrorException aus: wenn der Flow nicht gültig ist oder die Eingaben nicht gültig sind. SystemErrorException: wenn die Flow-Ausführung aufgrund eines unerwarteten Executor-Fehlers fehlgeschlagen ist.
- Parameter:
args – Positionsargumente werden nicht unterstützt.
kwargs – Flow-Eingaben als Schlüsselwortargumente.
- Gibt zurück:
- invoke(inputs: dict, connections: dict = None, **kwargs) LineResult#
Ruft einen Flow auf und gibt ein LineResult-Objekt zurück.
- class promptflow.core.ModelConfiguration#
Basiert auf:
object- abstract classmethod from_connection(connection, **kwargs)#
Erstellt eine Modellkonfiguration aus einer Verbindung.
- class promptflow.core.OpenAIModelConfiguration(model: str, base_url: str = None, api_key: str = None, organization: str = None, connection: str = None)#
Basiert auf:
ModelConfiguration- api_key: str = None#
- base_url: str = None#
- connection: str = None#
- classmethod from_connection(connection: OpenAIConnection, model: str)#
Erstellt eine Modellkonfiguration aus einer OpenAI-Verbindung.
- Parameter:
connection (promptflow.connections.OpenAIConnection) – OpenAI Connection-Objekt.
model (str) – Modellname.
- model: str#
- organization: str = None#
- class promptflow.core.Prompty(path: Union[str, PathLike], model: Optional[dict] = None, **kwargs)#
Basiert auf:
FlowBaseEin Prompty ist ein Prompt mit vordefinierten Metadaten wie Eingaben und kann direkt wie ein Flow ausgeführt werden. Ein Prompty wird als Markdown-Datei mit einem geänderten Front Matter dargestellt. Das Front Matter ist eine YAML-Datei, die Metafelder wie Modellkonfiguration, Eingaben usw. enthält.
Prompty-Beispiel: .. code-block
--- name: Hello Prompty description: A basic prompt model: api: chat configuration: type: azure_openai azure_deployment: gpt-35-turbo api_key="${env:AZURE_OPENAI_API_KEY}", api_version=${env:AZURE_OPENAI_API_VERSION}", azure_endpoint="${env:AZURE_OPENAI_ENDPOINT}", parameters: max_tokens: 128 temperature: 0.2 inputs: text: type: string --- system: Write a simple {{text}} program that displays the greeting message.Beispiel für Prompty als Funktion
from promptflow.core import Prompty prompty = Prompty.load(source="path/to/prompty.prompty") result = prompty(input_a=1, input_b=2) # Override model config with dict model_config = { "api": "chat", "configuration": { "type": "azure_openai", "azure_deployment": "gpt-35-turbo", "api_key": "${env:AZURE_OPENAI_API_KEY}", "api_version": "${env:AZURE_OPENAI_API_VERSION}", "azure_endpoint": "${env:AZURE_OPENAI_ENDPOINT}", }, "parameters": { "max_token": 512 } } prompty = Prompty.load(source="path/to/prompty.prompty", model=model_config) result = prompty(input_a=1, input_b=2) # Override model config with configuration from promptflow.core import AzureOpenAIModelConfiguration model_config = { "api": "chat", "configuration": AzureOpenAIModelConfiguration( azure_deployment="gpt-35-turbo", api_key="${env:AZURE_OPENAI_API_KEY}", api_version="${env:AZURE_OPENAI_API_VERSION}", azure_endpoint="${env:AZURE_OPENAI_ENDPOINT}", ), "parameters": { "max_token": 512 } } prompty = Prompty.load(source="path/to/prompty.prompty", model=model_config) result = prompty(input_a=1, input_b=2) # Override model config with created connection from promptflow.core._model_configuration import AzureOpenAIModelConfiguration model_config = { "api": "chat", "configuration": AzureOpenAIModelConfiguration( connection="azure_open_ai_connection", azure_deployment="gpt-35-turbo", ), "parameters": { "max_token": 512 } } prompty = Prompty.load(source="path/to/prompty.prompty", model=model_config) result = prompty(input_a=1, input_b=2)
- __call__(*args, **kwargs)#
Aufrufen eines Flows als Funktion. Die Eingaben müssen als Schlüsselwortargumente übergeben werden. Gibt die Ausgabe des Prompty zurück.
Der Wiederholungsmechanismus für die Prompty-Ausführung wird aktiviert, wenn ein wiederholbarer Fehler erkannt wird, einschließlich LLM-Antwortfehlern wie InternalServerError (>=500), RateLimitError (429) und UnprocessableEntityError (422). Er ist so konzipiert, dass bis zu 10 Wiederholungen durchgeführt werden. Das Intervall zwischen den Wiederholungen wächst exponentiell, wobei die Wartezeit 60 Sekunden nicht überschreitet. Die aggregierte Wartezeit für alle Wiederholungen beträgt etwa 400 Sekunden.
Der Funktionsaufruf löst UserErrorException aus: wenn der Flow nicht gültig ist oder die Eingaben nicht gültig sind. SystemErrorException: wenn die Flow-Ausführung aufgrund eines unerwarteten Executor-Fehlers fehlgeschlagen ist.
- Parameter:
args – Positionsargumente werden nicht unterstützt.
kwargs – Flow-Eingaben als Schlüsselwortargumente.
- Gibt zurück:
- estimate_token_count(*args, **kwargs)#
Schätzt die Tokenanzahl. LLMs lehnen die Anfrage ab, wenn die Anzahl der Prompt-Tokens plus der Antwort-Tokens die vom Modell unterstützte maximale Anzahl von Tokens überschreitet. Sie wird verwendet, um die Gesamtzahl der Tokens in dieser Chat-Runde abzuschätzen.
- Parameter:
args – Positionsargumente werden nicht unterstützt.
kwargs – Prompty-Eingaben als Schlüsselwortargumente.
- Gibt zurück:
Schätzung der gesamten Token-Anzahl
- Rückgabetyp:
int
- classmethod load(source: Union[str, PathLike], **kwargs) Prompty#
Lädt einen nicht-DAG-Flow direkt aus einer Prompty-Datei.
- Parameter:
source (Union[PathLike, str]) – Die lokale Prompt-Datei. Muss ein Pfad zu einer lokalen Datei sein. Wenn die Quelle ein Pfad ist, wird sie geöffnet und gelesen. Es wird eine Ausnahme ausgelöst, wenn die Datei nicht existiert.
- Gibt zurück:
Ein Prompty-Objekt
- Rückgabetyp:
- render(*args, **kwargs)#
Rendert den Prompt-Inhalt.
- Parameter:
args – Positionsargumente werden nicht unterstützt.
kwargs – Prompty-Eingaben als Schlüsselwortargumente.
- Gibt zurück:
Prompt-Inhalt
- Rückgabetyp:
str
- class promptflow.core.ToolProvider(*args, **kwargs)#
Basiert auf:
ABCDie Basisklasse der Tool-Klasse.
- classmethod get_initialize_inputs()#
- classmethod get_required_initialize_inputs()#
- promptflow.core.log_metric(key, value, variant_id=None)#
Protokolliert eine Metrik für den aktuellen Promptflow-Lauf.
- Parameter:
key (str) – Metrikname.
value (float) – Metrikwert.
variant_id (str) – Variant-ID für die Metrik.
- promptflow.core.tool(func=None, *, name: Optional[str] = None, description: Optional[str] = None, type: Optional[str] = None, input_settings=None, streaming_option_parameter: Optional[str] = None, **kwargs) Callable#
Decorator für Tool-Funktionen. Die dekorierte Funktion wird als Tool registriert und kann in einem Flow verwendet werden.
- Parameter:
name (str) – Der Toolname.
description (str) – Die Tool-Beschreibung.
type (str) – Der Tool-Typ.
input_settings (Dict[str, promptflow.entities.InputSetting]) – Dictionary der Eingabeeinstellungen.
- Gibt zurück:
Die dekorierte Funktion.
- Rückgabetyp:
Callable