Alternative Architecture DOJO

オルターブースのクラウドネイティブ特化型ブログです。

Promptyでプロンプトを効率的に管理・実行する

こんにちは!エンジニアのみっつーです。
今回はPromptyについて取り上げたいと思います。

Promptyとは、LLMプロンプトを管理するフォーマットであり、また、プレイグラウンドとして実行できるツールセットと併せてVisual Studio Code拡張機能として提供されているものです。

marketplace.visualstudio.com

例えば、拡張機能インストール後にExplorerタブ内を右クリックで「New Prompty」を選択すると、下記内容のファイルがbasic.promptyとして作成されます。
Semantic Kernelのskprompt.txtにちょっぴり似てるようなそうでもないようなという感じです。

---
name: ExamplePrompt
description: A prompt that uses context to ground an incoming question
authors:
  - Seth Juarez
model:
  api: chat
  configuration:
    type: azure_openai
    azure_endpoint: https://<your-endpoint>.openai.azure.com
    azure_deployment: <your-deployment>
  parameters:
    max_tokens: 3000
sample:
  firstName: Seth
  context: >
    The Alpine Explorer Tent boasts a detachable divider for privacy, 
    numerous mesh windows and adjustable vents for ventilation, and 
    a waterproof design. It even has a built-in gear loft for storing 
    your outdoor essentials. In short, it's a blend of privacy, comfort, 
    and convenience, making it your second home in the heart of nature!
  question: What can you tell me about your tents?
---

system:
You are an AI assistant who helps people find information. As the assistant, 
you answer questions briefly, succinctly, and in a personable manner using 
markdown and even add some personal flair with appropriate emojis.

# Customer
You are helping {{firstName}} to find answers to their questions.
Use their name to address them in your responses.

# Context
Use the following context to provide a more personalized response to {{firstName}}:
{{context}}

user:
{{question}}

APIの接続情報は、.promptyファイルに書かずに拡張機能の設定に持たせることもできます。
このとき、api_keyを空にしておくとMicrosoft Entra認証で接続されるので、こちらも便利です。

    "prompty.modelConfigurations": [
        {
            "name": "default",
            "type": "azure_openai",
            "api_version": "2023-12-01-preview",
            "azure_endpoint": "https://oai-xxx.openai.azure.com",
            "azure_deployment": "gpt-35-turbo"
        },
        {
            "name": "gpt-4o",
            "type": "azure_openai",
            "api_key": "xxx",
            "api_version": "2024-02-01",
            "azure_endpoint": "https://oai-xxx.openai.azure.com",
            "azure_deployment": "gpt-4o"
        }
    ]

そして.promptyファイルを開いた状態でF5を押すか右上に現れる▷ボタン(Run)を押すと、Azure OpenAI Serviceにリクエスト送信され結果が返ってきます。
今回は簡略化して↓のような.promptyファイルを用意して実行してみました。

どこか森の住民みある口調ではありますが、無事結果が出力されていますね。


今まではチャットプレイグラウンドを開いてやっていたようなことですが、プレイグラウンドを開くこと自体が若干手間であったり、使ったプロンプト情報をコピペして控えておくこともこれまた手間であったりしたため、プロンプトチューニングや定義ファイルの共有・バージョン管理などの用途を含め、ちょっとしたところで結構役立つのではないかと思います。
また、この.promptyファイルをPrompt flowやLangChain、Semantic Kernelで使用することも可能とのことです。

私もAzure OpenAI Serviceを検証する機会が多いので、上手く取り入れていきたいと思います。
それでは!


サービス一覧 www.alterbooth.com cloudpointer.tech www.alterbooth.com