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#

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.

  1. 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
    
  1. 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.
    use_my_custom_llm_tool

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. use_custom_llm_tool_with_ui_hints