Anpassen eines LLM-Tools#
In diesem Dokument führen wir Sie durch den Prozess der Anpassung eines LLM-Tools, das es Benutzern ermöglicht, nahtlos eine Verbindung zu einem großen Sprachmodell mit Prompt-Tuning-Erfahrung über eine PromptTemplate herzustellen.
Voraussetzungen#
Stellen Sie sicher, dass Ihr Prompt Flow für VS Code auf Version 1.8.0 oder höher aktualisiert ist.
Anpassen eines LLM-Tools#
Hier verwenden wir ein vorhandenes Tool-Paket als Beispiel. Wenn Sie Ihr eigenes Tool erstellen möchten, lesen Sie bitte Tool-Paket erstellen und verwenden.
Entwickeln Sie den Tool-Code wie in diesem Beispiel.
Fügen Sie dem Tool eine
CustomConnection-Eingabe hinzu, die zur Authentifizierung und zum Aufbau einer Verbindung zum großen Sprachmodell verwendet wird.Fügen Sie dem Tool eine
PromptTemplate-Eingabe hinzu, die als Argument an das große Sprachmodell übergeben wird.from jinja2 import Template from promptflow.core import tool from promptflow.connections import CustomConnection from promptflow.contracts.types import PromptTemplate @tool def my_tool( connection: CustomConnection, api: str, deployment_name: str, temperature: float, prompt: PromptTemplate, **kwargs ) -> str: # Replace with your tool code, customise your own code to handle and use the prompt here. # Usually connection contains configs to connect to an API. # Not all tools need a connection. You can remove it if you don't need it. rendered_prompt = Template(prompt, trim_blocks=True, keep_trailing_newline=True).render(**kwargs) return rendered_prompt
Generieren Sie das benutzerdefinierte LLM-Tool-YAML.
Führen Sie den folgenden Befehl in Ihrem Tool-Projektverzeichnis aus, um Ihr Tool-YAML automatisch zu generieren. Verwenden Sie -t „custom_llm“ oder –tool-type „custom_llm“, um anzugeben, dass es sich um ein benutzerdefiniertes LLM-Tool handelt.python <promptflow github repo>\scripts\tool\generate_package_tool_meta.py -m <tool_module> -o <tool_yaml_path> -t "custom_llm"
Hier verwenden wir ein vorhandenes Tool als Beispiel.
cd D:\proj\github\promptflow\examples\tools\tool-package-quickstart python D:\proj\github\promptflow\scripts\tool\generate_package_tool_meta.py -m my_tool_package.tools.tool_with_custom_llm_type -o my_tool_package\yamls\tool_with_custom_llm_type.yaml -n "My Custom LLM Tool" -d "This is a tool to demonstrate how to customize an LLM tool with a PromptTemplate." -t "custom_llm"
Dieser Befehl generiert eine YAML-Datei wie folgt:
my_tool_package.tools.tool_with_custom_llm_type.my_tool: name: My Custom LLM Tool description: This is a tool to demonstrate how to customize an LLM tool with a PromptTemplate. # The type is custom_llm. type: custom_llm module: my_tool_package.tools.tool_with_custom_llm_type function: my_tool inputs: connection: type: - CustomConnection api: type: - string deployment_name: type: - string temperature: type: - double
Verwenden des Tools in VS Code#
Befolgen Sie die Schritte, um Ihr Tool-Paket zu erstellen und zu teilen und Ihr Tool über die VS Code-Erweiterung zu verwenden.
Hier verwenden wir einen vorhandenen Flow, um die Erfahrung zu demonstrieren. Öffnen Sie diesen Flow in der VS Code-Erweiterung.
Es gibt einen Knoten namens „my_custom_llm_tool“ mit einer Prompt-Template-Datei. Sie können entweder eine vorhandene Datei verwenden oder eine neue als Prompt-Template-Datei erstellen.

FAQs#
Kann ich die Größe der Textfelder für meine Tool-Eingaben anpassen?#
Ja, Sie können das Feld ui_hints.text_box_size für Ihre Tool-Eingaben hinzufügen. Es stehen 4 Größen zur Verfügung, die von extra klein bis groß reichen: xs, sm, md und lg. Die folgende Tabelle enthält detaillierte Informationen zu diesen Größen.
Wert |
Beschreibung |
Größe der UI-Anzeige |
|---|---|---|
xs |
extra klein |
40px |
sm |
klein |
80px |
md |
mittel |
130px |
lg |
groß |
180px |
Sie können je nach erwarteter Länge des Werts unterschiedliche Werte für Ihre Tool-Eingaben verwenden. Nehmen Sie das folgende YAML als Beispiel.
my_tool_package.tools.tool_with_custom_llm_type.my_tool:
name: My Custom LLM Tool
description: This is a tool to demonstrate how to customize an LLM tool with a PromptTemplate.
type: custom_llm
module: my_tool_package.tools.tool_with_custom_llm_type
function: my_tool
inputs:
connection:
type:
- CustomConnection
ui_hints:
text_box_size: lg
api:
type:
- string
ui_hints:
text_box_size: sm
deployment_name:
type:
- string
ui_hints:
text_box_size: md
temperature:
type:
- double
ui_hints:
text_box_size: xs
Wenn Sie das Tool in diesem Beispiel-Flow verwenden, sehen Sie, dass die Größen der Eingabetextfelder als die festgelegten Werte angezeigt werden. 