evalstate nsarrazin HF Staff commited on
Commit
81ac98c
·
unverified ·
1 Parent(s): cbd723d

Added currentDate variable to Dynamic Prompt (#1648)

Browse files

* Added ability to include the current date in the assistant dynamic prompt

* feat: rename tag to {{today}}

---------

Co-authored-by: Nathan Sarrazin <[email protected]>

src/lib/components/AssistantSettings.svelte CHANGED
@@ -96,7 +96,7 @@
96
  : false;
97
 
98
  let tools = assistant?.tools ?? [];
99
- const regex = /{{\s?(get|post|url)=(.*?)\s?}}/g;
100
 
101
  $: templateVariables = [...systemPrompt.matchAll(regex)];
102
  $: selectedModel = models.find((m) => m.id === modelId);
@@ -565,7 +565,8 @@
565
  <p class="mb-2 text-xs font-normal text-gray-500">
566
  Allow the use of template variables {"{{get=https://example.com/path}}"}
567
  to insert dynamic content into your prompt by making GET requests to specified URLs on each
568
- inference. You can also send the user's message as the body of a POST request, using {"{{post=https://example.com/path}}"}
 
569
  </p>
570
  </label>
571
 
 
96
  : false;
97
 
98
  let tools = assistant?.tools ?? [];
99
+ const regex = /{{\s?(get|post|url|today)(=.*?)?\s?}}/g;
100
 
101
  $: templateVariables = [...systemPrompt.matchAll(regex)];
102
  $: selectedModel = models.find((m) => m.id === modelId);
 
565
  <p class="mb-2 text-xs font-normal text-gray-500">
566
  Allow the use of template variables {"{{get=https://example.com/path}}"}
567
  to insert dynamic content into your prompt by making GET requests to specified URLs on each
568
+ inference. You can also send the user's message as the body of a POST request, using {"{{post=https://example.com/path}}"}.
569
+ Use {"{{today}}"} to include the current date.
570
  </p>
571
  </label>
572
 
src/lib/server/textGeneration/assistant.ts CHANGED
@@ -5,6 +5,14 @@ import type { Assistant } from "$lib/types/Assistant";
5
  import type { ObjectId } from "mongodb";
6
 
7
  export async function processPreprompt(preprompt: string, user_message: string | undefined) {
 
 
 
 
 
 
 
 
8
  const requestRegex = /{{\s?(get|post|url)=(.*?)\s?}}/g;
9
 
10
  for (const match of preprompt.matchAll(requestRegex)) {
 
5
  import type { ObjectId } from "mongodb";
6
 
7
  export async function processPreprompt(preprompt: string, user_message: string | undefined) {
8
+ // Replace {{today}} with formatted date
9
+ const today = new Intl.DateTimeFormat("en-US", {
10
+ weekday: "long",
11
+ day: "numeric",
12
+ month: "long",
13
+ year: "numeric",
14
+ }).format(new Date());
15
+ preprompt = preprompt.replaceAll("{{today}}", today);
16
  const requestRegex = /{{\s?(get|post|url)=(.*?)\s?}}/g;
17
 
18
  for (const match of preprompt.matchAll(requestRegex)) {
src/routes/settings/(nav)/assistants/[assistantId]/+page.svelte CHANGED
@@ -259,7 +259,7 @@
259
  >
260
  {#if assistant?.dynamicPrompt}
261
  {#each prepromptTags as tag}
262
- {#if tag.startsWith("{{") && tag.endsWith("}}") && (tag.includes("get=") || tag.includes("post=") || tag.includes("url="))}
263
  {@const url = tag.match(/(?:get|post|url)=(.*?)}}/)?.[1] ?? ""}
264
  <a
265
  target="_blank"
 
259
  >
260
  {#if assistant?.dynamicPrompt}
261
  {#each prepromptTags as tag}
262
+ {#if (tag.startsWith("{{") && tag.endsWith("}}") && (tag.includes("get=") || tag.includes("post=") || tag.includes("url="))) || tag.includes("today")}
263
  {@const url = tag.match(/(?:get|post|url)=(.*?)}}/)?.[1] ?? ""}
264
  <a
265
  target="_blank"