Answers.Body: <p>In general, ChatGPT can already solve the problem, and the app provides a user interface to solve a specific problem.</p>
  <p>The most important part is the prompt used to query the ChatGPT API.</p>
  <p>It defines the question we ask the model, and also the format of the output. The output may be presented in some application specific way.</p>
  <hr />
  <p>ColorGPT is a good example of that:</p>
  <p>It uses the camera to capture an image, and uses the RGB color code of a color from this image as input for ChatGPT.</p>
  <p>ChatGPT can find a color name for a color code, if you query in the right way:</p>
  <pre><code>Give me the color name for  #601A35. Only the name.
  </code></pre>
  <p>Output:</p>
  <pre><code>The color name for #601A35 is &quot;Dark Raspberry&quot;.
  </code></pre>
  <p>The result is not very good in this case, if the prompt would contain a list of color codes and names, it would probably work much better.</p>
  <hr />
  <p>On the example with <code>git</code>: ChatGPT knows most shell commands pretty well, it can sometimes reproduce the complete man page if you ask nicely.</p>
  <p>For the prompt:</p>
  <pre><code> How do I clone a git repo in a new branch?
  </code></pre>
  <p>I get a full page of explanation, nicely formated.</p>
  <p>When I ask for a terse output (with the prompt &quot;Make it terse&quot;), I get:</p>
  <pre><code>To clone a Git repository in a new branch:
  
      Clone the repository: git clone &lt;repository-url&gt;
      Navigate to the repository's directory: cd &lt;repository-directory&gt;
      Create a new branch: git checkout -b &lt;new-branch-name&gt;
      Make changes to the code in the new branch.
      Push changes to the new branch: git push origin &lt;new-branch-name&gt;
  </code></pre>
  <p>This is all with no fine-tuning and basically no prompt engineering.</p>
  <hr />
  <p><sub>(As a side note: GPT-4 is used in exactly the same way, and is much more powerful. Scary powerful)</sub></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-03-22T22:39:21.163Z
Answers.Text: So are they fine-tuning the prompt enough to get back structured data? Or what?
Answers.UserDisplayName: Lance Pollard
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-03-22T22:49:25.793Z
Answers.Text: Refining and tweaking the prompt is called prompt engineering. The term fine-tuning refers to fine-tuning the model. You can teach the ChatGPT model application specific data, and then have your own variant of ChatGPT with specific capabilities and/or knowledge. It is run at OpenAI for you, and you use is in the API like the default models. Fine tuning is much more powerful, but also more difficult and expensive, so I assume in almost all cases, prompt engineering is used. You can do a lot with a prompt of about 4000 tokens.
Answers.UserDisplayName: Volker Siegel
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-03-22T22:51:11.087Z
Answers.Text: @Lance yes, you can use the prompt to get structured output.
Answers.UserDisplayName: Volker Siegel
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-03-22T23:24:06.697Z
Answers.Text: An interesting effect is that if you just asked for the terse git instructions directly you would probably not get such good output. By asking for the full instructions first and *then* "make it terse" the second step is able to reference the full instructions. I remember reading a paper about this.
Answers.UserDisplayName: Criticize SE actions means ban
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-03-23T00:41:35.950Z
Answers.Text: @user253751 Good point. There is also the method of appending "Let's think step by step." to the prompt.
Answers.UserDisplayName: Volker Siegel
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-03-23T00:46:21.337Z
Answers.Text: @user253751 The result when asking for terse from the start is actually better: The command itself is terse: `git clone <repo_url> -b <new_branch_name>`
Answers.UserDisplayName: Volker Siegel
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-03-22T22:34:01.987Z
Answers.LastActivityDate: 2023-03-22T22:57:21.397Z
Answers.LastEditDate: 2023-03-22T22:57:21.397Z
Answers.UserDisplayName: Volker Siegel
Body: <p>I see stuff in my Twitter feed like <a href="https://twitter.com/rowancheung/status/1638580149221310466?s=20" rel="noreferrer">this</a> every day, showing &quot;ChatGPT used to create X new customized/tailored AI feature&quot;.</p>
  <blockquote>
  <ol>
  <li>ColorGPT: Generate a color hex name from real-world color capture from your iPhone.</li>
  <li>Castmagic: AI content for podcasts &amp; long-format audio.</li>
  <li>AI Gift for you: AI-powered search for gift ideas based on personalized filters.</li>
  <li>Cody: ChatGPT with the added benefit of being able to train it on your business, your team, your processes, and your clients with your own knowledge base.</li>
  <li>Gitfluence: Helps you quickly find the correct Git command in seconds.</li>
  <li>etc..</li>
  </ol>
  </blockquote>
  <p>How are they taking advantage of the ChatGPT API to accomplish these sorts of things (at a high level)? For example, to create the personalized gift filters, how do you go from an arbitrary ChatGPT prompt to stuff specific to products? Or the Gitfluence, how does it tailor ChatGPT to search specifically for git commands?</p>
  <p>There is a missing link in my head on how you go from ChatGPT prompt to &quot;AI-feature-based startup hack&quot;. Basically, what is that missing link, what do you need to think about to tailor ChatGPT to a specific niche? Roughly how does it work?</p>
  <p>I am a software engineer with much experience, so I am aware how to build apps in general, I just don't see what is going on behind the scenes for these sort of &quot;built on ChatGPT&quot; feature apps, or at a high level how it works.</p>
  
Tags: <chatgpt>
Title: How do the "built on ChatGPT" apps work in general at a high level?
UserDisplayName: Lance Pollard
ThreadText: # How do the "built on ChatGPT" apps work in general at a high level?
  
  (Asked by: username_0 on 2023-03-22)
  
  I see stuff in my Twitter feed like [this](https://twitter.com/rowancheung/status/1638580149221310466?s=20) every day, showing "ChatGPT used to create X new customized/tailored AI feature".
  
  > 1. ColorGPT: Generate a color hex name from real-world color capture from your iPhone.
  > 2. Castmagic: AI content for podcasts & long-format audio.
  > 3. AI Gift for you: AI-powered search for gift ideas based on personalized filters.
  > 4. Cody: ChatGPT with the added benefit of being able to train it on your business, your team, your processes, and your clients with your own knowledge base.
  > 5. Gitfluence: Helps you quickly find the correct Git command in seconds.
  > 6. etc..
  
  How are they taking advantage of the ChatGPT API to accomplish these sorts of things (at a high level)? For example, to create the personalized gift filters, how do you go from an arbitrary ChatGPT prompt to stuff specific to products? Or the Gitfluence, how does it tailor ChatGPT to search specifically for git commands?
  
  There is a missing link in my head on how you go from ChatGPT prompt to "AI-feature-based startup hack". Basically, what is that missing link, what do you need to think about to tailor ChatGPT to a specific niche? Roughly how does it work?
  
  I am a software engineer with much experience, so I am aware how to build apps in general, I just don't see what is going on behind the scenes for these sort of "built on ChatGPT" feature apps, or at a high level how it works.
  
  **Tags:** chatgpt
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2023-03-22. Score: 4
  
  In general, ChatGPT can already solve the problem, and the app provides a user interface to solve a specific problem.
  
  The most important part is the prompt used to query the ChatGPT API.
  
  It defines the question we ask the model, and also the format of the output. The output may be presented in some application specific way.
  
  ---
  
  ColorGPT is a good example of that:
  
  It uses the camera to capture an image, and uses the RGB color code of a color from this image as input for ChatGPT.
  
  ChatGPT can find a color name for a color code, if you query in the right way:
  
  ```
  Give me the color name for  #601A35. Only the name.
  
  ```
  
  Output:
  
  ```
  The color name for #601A35 is "Dark Raspberry".
  
  ```
  
  The result is not very good in this case, if the prompt would contain a list of color codes and names, it would probably work much better.
  
  ---
  
  On the example with `git`: ChatGPT knows most shell commands pretty well, it can sometimes reproduce the complete man page if you ask nicely.
  
  For the prompt:
  
  ```
   How do I clone a git repo in a new branch?
  
  ```
  
  I get a full page of explanation, nicely formated.
  
  When I ask for a terse output (with the prompt "Make it terse"), I get:
  
  ```
  To clone a Git repository in a new branch:
  
      Clone the repository: git clone <repository-url>
      Navigate to the repository's directory: cd <repository-directory>
      Create a new branch: git checkout -b <new-branch-name>
      Make changes to the code in the new branch.
      Push changes to the new branch: git push origin <new-branch-name>
  
  ```
  
  This is all with no fine-tuning and basically no prompt engineering.
  
  ---
  
  (As a side note: GPT-4 is used in exactly the same way, and is much more powerful. Scary powerful)
  
  > **Comments:**
  > **username_0**: So are they fine-tuning the prompt enough to get back structured data? Or what?  
  > **username_1**: Refining and tweaking the prompt is called prompt engineering. The term fine-tuning refers to fine-tuning the model. You can teach the ChatGPT model application specific data, and then have your own variant of ChatGPT with specific capabilities and/or knowledge. It is run at OpenAI for you, and you use is in the API like the default models. Fine tuning is much more powerful, but also more difficult and expensive, so I assume in almost all cases, prompt engineering is used. You can do a lot with a prompt of about 4000 tokens.  
  > **username_1**: @username_0 yes, you can use the prompt to get structured output.  
  > **username_2**: An interesting effect is that if you just asked for the terse git instructions directly you would probably not get such good output. By asking for the full instructions first and *then* "make it terse" the second step is able to reference the full instructions. I remember reading a paper about this.  
  > **username_1**: @user253751 Good point. There is also the method of appending "Let's think step by step." to the prompt.  
  > **username_1**: @user253751 The result when asking for terse from the start is actually better: The command itself is terse: `git clone <repo_url> -b <new_branch_name>`  
  
  ---
  
  