Skip to content

Prompty Specification

This page was AI-generated (using Claude Sonnet 3.5) with manual review for clarity and correctness.

Steps to regenerate:

  1. Head over to the Copilot Icon on your IDE to open up chat
  2. Open the prompty.yaml file, this ensures Copilot uses the file as reference
  3. Switch the model to Claude 3.5 Sonnet (Preview)
  4. Add the prompt below to regenerate documentation
  5. Once done, evaluate and check for any inconsistencies
  6. If everything is fine, update the .mdx file and create a PR to update changes

Prompt to regenerate:

  • Write comprehensive reference documentation for the provided YAML file. The documentation should be structured in Markdown format and include the following elements:
  • Clearly describe each attribute, including its purpose and expected values.
  • For sections containing multiple attributes, present them in a structured table format for readability.
  • Provide relevant usage examples showcasing different configurations of the YAML file.
  • Ensure proper mdx styling, including headers, code blocks, and bullet points where appropriate.

The Prompty yaml file spec can be found here. Below you can find a brief description of each section and the attributes within it.

Prompty description attributes:

Property Type Description Required
name string Name of the prompty Yes
description string Description of the prompty Yes
version string Version number No
authors array List of prompty authors No
tags tags Categorization tags No

Input/Output Specifications

Inputs

The inputs object defines the expected input format for the prompty:

YAML
1
2
3
inputs:
  type: object
  description: "Input specification"

Outputs

The outputs object defines the expected output format:

YAML
1
2
3
outputs:
  type: object
  description: "Output specification"

Template Engine

Currently supports: - jinja2 (default) - Jinja2 template engine for text processing

Model Configuration

The model section defines how the AI model should be configured and executed.

YAML
1
2
3
4
5
6
7
model:
  api: chat
  configuration:
    # model-specific configuration
  parameters:
    # execution parameters
  response: first

Model API Types

  • chat (default) - For chat-based interactions
  • completion - For text completion tasks

Response Types

This determines whether the full (raw) response or just the first response in the choice array is returned.

  • first (default) - Returns only the first response
  • all - Returns all response choices

Model Providers

Azure OpenAI Configuration

YAML
1
2
3
4
5
6
configuration:
  type: azure_openai
  api_key: ${env:OPENAI_API_KEY}
  api_version: "2023-05-15"
  azure_deployment: "my-deployment"
  azure_endpoint: "https://my-endpoint.openai.azure.com"

OpenAI Configuration

YAML
1
2
3
4
configuration:
  type: openai
  name: "gpt-4"
  organization: "my-org"

MaaS Configuration

YAML
1
2
3
configuration:
  type: azure_serverless
  azure_endpoint: "https://my-endpoint.azureml.ms"

Model Parameters

Common parameters that can be configured for model execution:

Parameter Type Description
response_format object An object specifying the format that the model must output.
seed integer For deterministic sampling. This feature is in Beta. If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result. Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend.
max_tokens integer The maximum number of [tokens](/tokenizer) that can be generated in the chat completion.
temperature number Sampling temperature (0-1)
frequency_penalty number Penalty for frequent tokens
presence_penalty number Penalty for new tokens
top_p number Nucleus sampling probability
stop array Sequences to stop generation

Setting to { "type": "json_object" } enables JSON mode, which guarantees the message the model generates is valid JSON.

Sample Prompty

YAML
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
---
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: ${env:AZURE_OPENAI_ENDPOINT}
    azure_deployment: <your-deployment>
    api_version: 2024-07-01-preview
  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}}