Skip to content

Commit

Permalink
create experiment from prompts page (Helicone#2987)
Browse files Browse the repository at this point in the history
  • Loading branch information
kavinvalli authored Nov 22, 2024
1 parent 93e7be9 commit 100d7ad
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -360,20 +360,22 @@ export const StartFromPromptDialog = ({
</SelectTrigger>
<SelectContent className="text-xl">
{!isLoadingVersions &&
promptVersions?.map((version: any) => (
<SelectItem
key={version.id}
value={version.id}
className={`cursor-pointer ${
selectedVersionId === version.id
? "bg-accent"
: "hover:bg-accent"
}`}
>
{version.name ||
`V ${version.major_version}.${version.minor_version}`}
</SelectItem>
))}
promptVersions
?.filter((version) => version.minor_version === 0)
?.map((version: any) => (
<SelectItem
key={version.id}
value={version.id}
className={`cursor-pointer ${
selectedVersionId === version.id
? "bg-accent"
: "hover:bg-accent"
}`}
>
{version.name ||
`V ${version.major_version}.${version.minor_version}`}
</SelectItem>
))}
</SelectContent>
</Select>
</div>
Expand Down
56 changes: 16 additions & 40 deletions web/components/templates/prompts/id/promptIdPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -473,55 +473,28 @@ const PromptIdPage = (props: PromptIdPageProps) => {
promptVersionId: string,
promptData: string
) => {
if (!(experimentFlags?.hasFlag || user?.email?.includes("helicone.ai"))) {
notification.setNotification(
"Experiment feature is not enabled - sign up for the waitlist to use it",
"error"
);
return;
}
const dataset = await jawn.POST("/v1/helicone-dataset", {
body: {
datasetName: "Dataset for Experiment",
requestIds: [],
},
});
if (!dataset.data?.data?.datasetId) {
notification.setNotification("Failed to create dataset", "error");
const promptVersion = prompts?.find((p) => p.id === promptVersionId);

if (!promptVersion) {
notification.setNotification("Prompt version not found", "error");
return;
}
const promptVersion = prompts?.find((p) => p.id === promptVersionId);

const experimentTableResult = await jawn.POST("/v1/experiment/table/new", {
const experimentTableResult = await jawn.POST("/v2/experiment/new", {
body: {
datasetId: dataset.data?.data?.datasetId!,
promptVersionId: promptVersionId,
newHeliconeTemplate: JSON.stringify(promptData),
isMajorVersion: false,
promptSubversionMetadata: {
experimentAssigned: true,
},
experimentMetadata: {
prompt_id: id,
prompt_version: promptVersionId,
experiment_name:
`${prompt?.user_defined_id}_V${promptVersion?.major_version}.${promptVersion?.minor_version}` ||
"",
},
experimentTableMetadata: {
datasetId: dataset.data?.data?.datasetId!,
model: promptVersion?.model,
prompt_id: id,
prompt_version: promptVersionId,
},
name: `${prompt?.user_defined_id}_V${promptVersion?.major_version}.${promptVersion?.minor_version}`,
originalPromptVersion: promptVersionId,
},
});
if (!experimentTableResult.data?.data?.experimentId) {

if (experimentTableResult.error || !experimentTableResult.data) {
notification.setNotification("Failed to create experiment", "error");
return;
}

router.push(`/experiments/${experimentTableResult.data?.data?.tableId}`);
router.push(
`/experiments/${experimentTableResult.data.data?.experimentId}`
);
};

const deletePromptVersion = async (promptVersionId: string) => {
Expand Down Expand Up @@ -902,7 +875,8 @@ const PromptIdPage = (props: PromptIdPageProps) => {
)}
</DropdownMenuContent>
</DropdownMenu>
) : (
) : promptVersion.minor_version ===
0 ? (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<button className="p-1 hover:bg-slate-200 dark:hover:bg-slate-700 rounded-full">
Expand All @@ -923,6 +897,8 @@ const PromptIdPage = (props: PromptIdPageProps) => {
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
) : (
<></>
)}
</div>
</div>
Expand Down

0 comments on commit 100d7ad

Please sign in to comment.