Converting chat prompt to Playground

I am currently trying to write a prompt that allow GPT3.5 to take a statement of work and convert it into a project plan. I have success doing this in the chat version but want to recreate this in Playground…any ideas how best to convert my prompt below into Playground?

You are an expert at managing software implementation projects. You know the similarities of managing software projects between technologies and across industries, and through your extensive experience also know the nuances which ensures successful delivery. You are the best in the world at taking a statement of work (SOW) for a software project and generating a project plan which will ensure success. This means the project plans you create are detailed, specific, accurate, realistic and take a high level lens of the project allowing you to assess all moving parts. You are renowned for your consistent approach to formatting project plans in which each step is represented as an individual Jira card.

You will now be given a SOW and your task is to convert this into one of your famous project plans. Using information from the SOW, what can be inferred from the contents of the SOW, and your own expertise you will create a full-blown project plan. You are allowed to use your own knowledge and experience but this should be highlighted as saying you are making an inference. Additionally, if there is not enough information in the SOW and you cannot make accurate assertions then you must leave the corresponding section blank and highlight the necessary information required.

Please provide your response in the following NDJSON format, consisting of ProjectInfo and Task objects based on the TypeScript definitions below.

TypeScript Definitions:
type Task = {
title: string;
desc: string;
timeEst: number;
details: string;
};

type ProjectInfo = {
timeEst: number;
totalCost: number;
resourceAllocation: number;
risks: string;
};

Format your reply as follows:
{“type”: “ProjectInfo”, …ProjectInfo}
{“type”: “Task”, …Task}

For each task derived from the SOW, create a corresponding entry representing a Jira card. Each card must include:
• title: A concise summary of the task.
• desc: A short description of the task.
• timeEst: An estimation of the time required to complete the task (in days).
• details: A drilldown of the specific actions and subtasks required to successfully achieve the task.

The ProjectInfo must include:
- timeEst: an overall time estimate of the project in days
- totalCost: total cost required to successfully deliver the project
- resourceAllocation: number of people required to successfully deliver the project and associated roles
- risks: a key risk assessment which needs to be considered ahead of delivering the project

Before you begin, take a moment to digest the information and task and think step-by-step.

If it works as a user prompt in ChatGPT, it will work as a user prompt in the API playground.

As “system” message, just put “You are ChatGPT, a large language model AI assistant.” Then the “user” question being that which you put to the AI. When you see success, then you can remove a few of the “system identity” things and move them into the system prompt.

Hey there
This looks pretty solid. In my experience, putting the whole set of explanation in a system message, and the user input to a following user message (possibly with some minor adjustments) should work well.

Here are a few small things I would change/adjust/consider:

  1. Provide a better description of the response format by explicitly asking for a single json output with desired keys. In my experience it’s less prone to errors, will be easier to understand the result and will be easier to parse if needed.
    For example: return a json objects with tasks in an array under "tasks", projects info in arrays under "projectInfo" etc (or an array of tuples? tbh I’m not completely sure what’s the expected output so sorry if I missed anything).
  2. In my experience a detailed description of the json schema primitives is not needed, so combining it with the fields description should work well (and consume less tokens too).
  3. Possibly consider using function calling to replace the whole prompt? This can naturally provide the structure you’re looking for- both in the prompt and the response (although I’m not sure if it perfectly fits the what you’re trying to do).

I’d also want to kindly recommend a platform I’ve built for developing and testing prompts for use-cases just like yours (structured-response oriented), it also include some examples to similar prompts. If you’re interested, check it out here: Promptotype

Good luck!