diff --git a/.DS_Store b/.DS_Store
index 59e3ccf21..e889a6ba3 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/cookbooks/Getting-Started/travel.aiconfig.json b/cookbooks/Getting-Started/travel.aiconfig.json
index c6b0bbc3f..0529b962f 100644
--- a/cookbooks/Getting-Started/travel.aiconfig.json
+++ b/cookbooks/Getting-Started/travel.aiconfig.json
@@ -1,8 +1,8 @@
{
"name": "NYC Trip Planner",
- "description": "Intrepid explorer with ChatGPT and AIConfig",
"schema_version": "latest",
"metadata": {
+ "parameters": {},
"models": {
"gpt-3.5-turbo": {
"model": "gpt-3.5-turbo",
@@ -17,10 +17,12 @@
},
"default_model": "gpt-3.5-turbo"
},
+ "description": "Intrepid explorer with ChatGPT and AIConfig",
"prompts": [
{
"name": "get_activities",
- "input": "Tell me 10 fun attractions to do in NYC."
+ "input": "Tell me 10 fun attractions to do in NYC.",
+ "outputs": []
},
{
"name": "gen_itinerary",
@@ -30,9 +32,9 @@
"parameters": {
"order_by": "geographic location"
}
- }
+ },
+ "outputs": []
}
- ]
-}
-
-
+ ],
+ "$schema": "https://json.schemastore.org/aiconfig-1.0"
+}
\ No newline at end of file
diff --git a/python/src/aiconfig/editor/client/public/images/aiconfigLogo.png b/python/src/aiconfig/editor/client/public/images/aiconfigLogo.png
new file mode 100644
index 000000000..b53b332c6
Binary files /dev/null and b/python/src/aiconfig/editor/client/public/images/aiconfigLogo.png differ
diff --git a/python/src/aiconfig/editor/client/src/Editor.tsx b/python/src/aiconfig/editor/client/src/Editor.tsx
index ce5f4c798..b28449462 100644
--- a/python/src/aiconfig/editor/client/src/Editor.tsx
+++ b/python/src/aiconfig/editor/client/src/Editor.tsx
@@ -1,7 +1,7 @@
import EditorContainer, {
AIConfigCallbacks,
} from "./components/EditorContainer";
-import { Flex, Loader, MantineProvider } from "@mantine/core";
+import { Flex, Loader, MantineProvider, Image } from "@mantine/core";
import { AIConfig, InferenceSettings, JSONObject, Prompt } from "aiconfig";
import { useCallback, useEffect, useMemo, useState } from "react";
import { ufetch } from "ufetch";
@@ -141,8 +141,118 @@ export default function Editor() {
);
return (
-
-
+
+
({
+ ".editorBackground": {
+ background:
+ "radial-gradient(ellipse at top,#08122d,#030712),radial-gradient(ellipse at bottom,#030712,#030712)",
+ margin: "0 auto",
+ minHeight: "100vh",
+ },
+ ".monoFont": {
+ fontFamily:
+ "sf mono, ui-monospace, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
+ },
+ ".ghost": {
+ border: "none",
+ borderRadius: "4px",
+ padding: "4px",
+ margin: "0px",
+ backgroundColor: "transparent",
+ ":hover": {
+ backgroundColor: "rgba(226,232,255,.1)",
+ },
+ input: {
+ maxHeight: "16px",
+ fontFamily:
+ "sf mono, ui-monospace, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
+ },
+ },
+ ".cellStyle": {
+ border: "1px solid rgba(226,232,255,.1) !important",
+ background: "rgb(12 21 57 / 10%)",
+ flex: 1,
+ borderTopRightRadius: "0px",
+ borderBottomRightRadius: "0px",
+ ":hover": {
+ background: "rgba(255, 255, 255, 0.03) !important",
+ },
+ textarea: {
+ border: "1px solid rgba(226,232,255,.1)",
+ backgroundColor: "#060c21",
+ ":focus": {
+ outline: "solid 1px #ff1cf7 !important",
+ outlineOffset: "-1px",
+ },
+ },
+ },
+ ".sidePanel": {
+ border: "1px solid rgba(226,232,255,.1)",
+ borderLeft: "none",
+ borderTopRightRadius: "4px",
+ borderBottomRightRadius: "4px",
+ input: {
+ border: "1px solid rgba(226,232,255,.1)",
+ backgroundColor: "#060c21",
+ ":focus": {
+ outline: "solid 1px #ff1cf7 !important",
+ outlineOffset: "-1px",
+ },
+ },
+ },
+ ".divider": {
+ borderTopWidth: "1px",
+ borderTopColor: "rgba(226,232,255,.1)",
+ marginBottom: "0.5em",
+ },
+ ".runPromptButton": {
+ background: "#ff1cf7",
+ color: "white",
+ borderRadius: "0",
+ height: "auto",
+ },
+ ".actionTabsPanel": {
+ width: "400px",
+ },
+ ".logo": {
+ maxWidth: "80rem",
+ margin: "0 auto",
+ padding: "32px 0 0 32px",
+ display: "flex",
+ justifyContent: "space-between",
+ alignItems: "center",
+ },
+ }),
+ }}
+ >
+
+
+
{!aiconfig ? (
diff --git a/python/src/aiconfig/editor/client/src/components/EditorContainer.tsx b/python/src/aiconfig/editor/client/src/components/EditorContainer.tsx
index 9f1d58905..8c4358f4a 100644
--- a/python/src/aiconfig/editor/client/src/components/EditorContainer.tsx
+++ b/python/src/aiconfig/editor/client/src/components/EditorContainer.tsx
@@ -676,16 +676,16 @@ export default function EditorContainer({
-
- }
- loading={isSaving}
- onClick={onSave}
- disabled={!isDirty}
- >
- Save
-
-
+ }
+ loading={isSaving}
+ onClick={onSave}
+ disabled={!isDirty}
+ size="xs"
+ variant="gradient"
+ >
+ Save
+
{
onSelectModel(undefined);
diff --git a/python/src/aiconfig/editor/client/src/components/prompt/PromptActionBar.tsx b/python/src/aiconfig/editor/client/src/components/prompt/PromptActionBar.tsx
index bd7802888..0c1bbfb9e 100644
--- a/python/src/aiconfig/editor/client/src/components/prompt/PromptActionBar.tsx
+++ b/python/src/aiconfig/editor/client/src/components/prompt/PromptActionBar.tsx
@@ -66,7 +66,7 @@ export default memo(function PromptActionBar({
)}
-
+
{checkParametersSupported(prompt) && (
-
+
({
- promptInputCard: {
- flex: 1,
- borderRight: "0 !important",
- borderBottomRightRadius: 0,
- borderTopRightRadius: 0,
- },
- actionBar: {
- border: `1px solid ${theme.colors.gray[3]}`,
- borderRadius: "0.25em",
- borderBottomLeftRadius: 0,
- borderTopLeftRadius: 0,
- },
-}));
-
export default memo(function PromptContainer({
prompt,
getModels,
@@ -96,11 +81,9 @@ export default memo(function PromptContainer({
const promptSchema = getPromptSchema(prompt, defaultConfigModelName);
const inputSchema = promptSchema?.input;
- const { classes } = useStyles();
-
return (
-
+
}
-
+
-
- Output
+
+
+ Output
+
{/* TODO: Add output metrics */}
);
diff --git a/python/src/aiconfig/editor/client/src/components/prompt/RunPromptButton.tsx b/python/src/aiconfig/editor/client/src/components/prompt/RunPromptButton.tsx
index 7fc91f464..bf8270a6e 100644
--- a/python/src/aiconfig/editor/client/src/components/prompt/RunPromptButton.tsx
+++ b/python/src/aiconfig/editor/client/src/components/prompt/RunPromptButton.tsx
@@ -1,4 +1,4 @@
-import { Button, createStyles, Loader, Text } from "@mantine/core";
+import { Button, Loader, Text } from "@mantine/core";
import { IconPlayerPlayFilled, IconPlayerStop } from "@tabler/icons-react";
import { memo } from "react";
@@ -8,20 +8,11 @@ type Props = {
size: "compact" | "full";
};
-const useStyles = createStyles(() => ({
- executeButton: {
- borderBottomLeftRadius: 0,
- borderTopLeftRadius: 0,
- borderTopRightRadius: 0,
- },
-}));
-
export default memo(function RunPromptButton({
runPrompt,
size,
isRunning = false,
}: Props) {
- const { classes } = useStyles();
return (