diff --git a/website/cypress/e2e/evaluate/rank_assistant_replies.cy.ts b/website/cypress/e2e/evaluate/rank_assistant_replies.cy.ts index c7b85695..3093bd56 100644 --- a/website/cypress/e2e/evaluate/rank_assistant_replies.cy.ts +++ b/website/cypress/e2e/evaluate/rank_assistant_replies.cy.ts @@ -1,7 +1,7 @@ describe("ranking prompter replies", () => { it("completes the current task on submit and on request shows a new task", () => { cy.signInWithEmail("cypress@example.com"); - cy.visit("/evaluate/rank_user_replies"); + cy.visit("/evaluate/rank_assistant_replies"); cy.get('[data-cy="task-id"').then((taskIdElement) => { const taskId = taskIdElement.text(); diff --git a/website/cypress/e2e/evaluate/rank_user_replies.cy.ts b/website/cypress/e2e/evaluate/rank_user_replies.cy.ts index c448a4c7..55487f1d 100644 --- a/website/cypress/e2e/evaluate/rank_user_replies.cy.ts +++ b/website/cypress/e2e/evaluate/rank_user_replies.cy.ts @@ -1,7 +1,7 @@ describe("ranking assistant replies", () => { it("completes the current task on submit and on request shows a new task", () => { cy.signInWithEmail("cypress@example.com"); - cy.visit("/evaluate/rank_assistant_replies"); + cy.visit("/evaluate/rank_user_replies"); cy.get('[data-cy="task-id"').then((taskIdElement) => { const taskId = taskIdElement.text(); diff --git a/website/src/components/CollapsableText.tsx b/website/src/components/CollapsableText.tsx index 1f34c508..5dcab595 100644 --- a/website/src/components/CollapsableText.tsx +++ b/website/src/components/CollapsableText.tsx @@ -12,7 +12,7 @@ import React from "react"; export const CollapsableText = ({ text, maxLength = 220 }) => { const { isOpen, onOpen, onClose } = useDisclosure(); - if (typeof text != "string" || text.length <= maxLength) { + if (typeof text !== "string" || text.length <= maxLength) { return text; } else { return ( diff --git a/website/src/components/FlaggableElement.tsx b/website/src/components/FlaggableElement.tsx index df7296cc..9606f425 100644 --- a/website/src/components/FlaggableElement.tsx +++ b/website/src/components/FlaggableElement.tsx @@ -45,7 +45,7 @@ export const FlaggableElement = (props) => { }); const { trigger } = useSWRMutation("/api/set_label", poster, { onSuccess: () => { - setIsEditing.off; + setIsEditing.off(); }, }); @@ -69,14 +69,14 @@ export const FlaggableElement = (props) => { const handleCheckboxState = (isChecked, idx) => { setCheckboxValues( checkboxValues.map((val, i) => { - return i == idx ? isChecked : val; + return i === idx ? isChecked : val; }) ); }; const handleSliderState = (newVal, idx) => { setSliderValues( sliderValues.map((val, i) => { - return i == idx ? newVal : val; + return i === idx ? newVal : val; }) ); }; diff --git a/website/src/components/Messages.tsx b/website/src/components/Messages.tsx index 20d26808..b49662ed 100644 --- a/website/src/components/Messages.tsx +++ b/website/src/components/Messages.tsx @@ -1,16 +1,11 @@ import { Grid } from "@chakra-ui/react"; -import { useColorMode } from "@chakra-ui/react"; +import { forwardRef, useColorMode } from "@chakra-ui/react"; import { useMemo } from "react"; import { Message } from "src/types/Conversation"; +import { ValidLabel } from "src/types/Task"; import { FlaggableElement } from "./FlaggableElement"; -export interface ValidLabel { - name: string; - display_text: string; - help_text: string; -} - export const Messages = ({ messages, post_id, @@ -38,7 +33,7 @@ export const Messages = ({ return {items}; }; -export const MessageView = ({ is_assistant, text, message_id }: Message) => { +export const MessageView = forwardRef(({ is_assistant, text }: Message, ref) => { const { colorMode } = useColorMode(); const bgColor = useMemo(() => { @@ -49,5 +44,11 @@ export const MessageView = ({ is_assistant, text, message_id }: Message) => { } }, [colorMode, is_assistant]); - return
{text}
; -}; + return ( +
+ {text} +
+ ); +}); + +MessageView.displayName = "MessageView"; diff --git a/website/src/components/Messages/MessageTable.tsx b/website/src/components/Messages/MessageTable.tsx index 95ccc540..bacd27f9 100644 --- a/website/src/components/Messages/MessageTable.tsx +++ b/website/src/components/Messages/MessageTable.tsx @@ -1,11 +1,11 @@ import { Stack, StackDivider } from "@chakra-ui/react"; import { MessageTableEntry } from "src/components/Messages/MessageTableEntry"; -export function MessageTable({ messages }) { +export function MessageTable({ messages, valid_labels }) { return ( } spacing="4"> {messages.map((item, idx) => ( - + ))} ); diff --git a/website/src/components/Messages/MessageTableEntry.tsx b/website/src/components/Messages/MessageTableEntry.tsx index 9fad7262..e9e8775a 100644 --- a/website/src/components/Messages/MessageTableEntry.tsx +++ b/website/src/components/Messages/MessageTableEntry.tsx @@ -2,6 +2,7 @@ import { Avatar, HStack, LinkBox, useColorModeValue } from "@chakra-ui/react"; import { boolean } from "boolean"; import NextLink from "next/link"; import { FlaggableElement } from "src/components/FlaggableElement"; +import type { ValidLabel } from "src/types/Task"; interface Message { text: string; @@ -11,13 +12,14 @@ interface Message { interface MessageTableEntryProps { item: Message; idx: number; + valid_labels: ValidLabel[]; } export function MessageTableEntry(props: MessageTableEntryProps) { - const { item, idx } = props; + const { item, idx, valid_labels } = props; const bgColor = useColorModeValue(idx % 2 === 0 ? "bg-slate-800" : "bg-black", "bg-sky-900"); return ( - + - + @@ -90,7 +90,7 @@ export function MessageWithChildren(props: MessageWithChildrenProps) { {children.map((item, idx) => ( - + ))} diff --git a/website/src/components/Tasks/CreateTask.tsx b/website/src/components/Tasks/CreateTask.tsx index 2c11cb01..a424315a 100644 --- a/website/src/components/Tasks/CreateTask.tsx +++ b/website/src/components/Tasks/CreateTask.tsx @@ -1,10 +1,9 @@ import { useState } from "react"; - import { Messages } from "src/components/Messages"; import { TaskControls } from "src/components/Survey/TaskControls"; import { TrackedTextarea } from "src/components/Survey/TrackedTextarea"; import { TwoColumnsWithCards } from "src/components/Survey/TwoColumnsWithCards"; -import { TaskInfo } from "./TaskTypes"; +import { TaskInfo } from "src/components/Tasks/TaskTypes"; export interface CreateTaskProps { // we need a task type diff --git a/website/src/components/Tasks/EvaluateTask.tsx b/website/src/components/Tasks/EvaluateTask.tsx index 3871b2d9..61ed3889 100644 --- a/website/src/components/Tasks/EvaluateTask.tsx +++ b/website/src/components/Tasks/EvaluateTask.tsx @@ -33,6 +33,7 @@ export const EvaluateTask = ({ tasks, trigger, onSkipTask, onNextTask, mainBgCla messages = messages.map((message, index) => ({ ...message, id: index })); } + const valid_labels = tasks[0].valid_labels; const sortables = tasks[0].task.replies ? "replies" : "prompts"; return ( @@ -42,13 +43,13 @@ export const EvaluateTask = ({ tasks, trigger, onSkipTask, onNextTask, mainBgCla

Given the following {sortables}, sort them from best to worst, best being first, worst being last.

- {messages ? : null} + {messages ? : null} setRanking(tasks[0].task[sortables].map((_, idx) => idx))} onSubmitResponse={submitResponse} onSkipTask={(task, reason) => { diff --git a/website/src/components/Tasks/Task.tsx b/website/src/components/Tasks/Task.tsx index 153e0a93..777f5dd5 100644 --- a/website/src/components/Tasks/Task.tsx +++ b/website/src/components/Tasks/Task.tsx @@ -1,8 +1,8 @@ -import { CreateTask } from "./CreateTask"; -import { EvaluateTask } from "./EvaluateTask"; -import { TaskCategory, TaskTypes } from "./TaskTypes"; -import useSWRMutation from "swr/mutation"; +import { CreateTask } from "src/components/Tasks/CreateTask"; +import { EvaluateTask } from "src/components/Tasks/EvaluateTask"; +import { TaskCategory, TaskTypes } from "src/components/Tasks/TaskTypes"; import poster from "src/lib/poster"; +import useSWRMutation from "swr/mutation"; export const Task = ({ tasks, trigger, mutate, mainBgClasses }) => { const task = tasks[0].task; diff --git a/website/src/lib/oasst_api_client.ts b/website/src/lib/oasst_api_client.ts index 1bbb13a8..6a5ca58e 100644 --- a/website/src/lib/oasst_api_client.ts +++ b/website/src/lib/oasst_api_client.ts @@ -30,7 +30,7 @@ export class OasstApiClient { body: JSON.stringify(body), }); - if (resp.status == 204) { + if (resp.status === 204) { return null; } @@ -57,7 +57,7 @@ export class OasstApiClient { }, }); - if (resp.status == 204) { + if (resp.status === 204) { return null; } diff --git a/website/src/pages/api/new_task/[task_type].ts b/website/src/pages/api/new_task/[task_type].ts index a685d589..80334f76 100644 --- a/website/src/pages/api/new_task/[task_type].ts +++ b/website/src/pages/api/new_task/[task_type].ts @@ -39,8 +39,6 @@ const handler = async (req, res) => { // Add the valid labels that can be used to flag messages in this Task registeredTask["valid_labels"] = valid_labels; - // Update the backend with our Task ID - await oasstApiClient.ackTask(task.id, registeredTask.id); // Send the results to the client. res.status(200).json(registeredTask); diff --git a/website/src/pages/api/reject_task.ts b/website/src/pages/api/reject_task.ts index d146c44b..fc807b67 100644 --- a/website/src/pages/api/reject_task.ts +++ b/website/src/pages/api/reject_task.ts @@ -1,6 +1,7 @@ import { Prisma } from "@prisma/client"; import { getToken } from "next-auth/jwt"; import { oasstApiClient } from "src/lib/oasst_api_client"; +import prisma from "src/lib/prismadb"; const handler = async (req, res) => { const token = await getToken({ req }); diff --git a/website/src/pages/api/set_label.ts b/website/src/pages/api/set_label.ts index 4db5ddaf..cfda114b 100644 --- a/website/src/pages/api/set_label.ts +++ b/website/src/pages/api/set_label.ts @@ -1,5 +1,4 @@ import { getToken } from "next-auth/jwt"; -import prisma from "src/lib/prismadb"; /** * Sets the Label in the Backend. @@ -15,7 +14,7 @@ const handler = async (req, res) => { } // Parse out the local message_id, task ID and the interaction contents. - const { message_id, post_id, label_map, text } = await JSON.parse(req.body); + const { message_id, label_map, text } = await JSON.parse(req.body); const interactionRes = await fetch(`${process.env.FASTAPI_URL}/api/v1/text_labels`, { method: "POST", diff --git a/website/src/pages/auth/verify.tsx b/website/src/pages/auth/verify.tsx index b4d7d739..876aa677 100644 --- a/website/src/pages/auth/verify.tsx +++ b/website/src/pages/auth/verify.tsx @@ -1,7 +1,6 @@ import { useColorMode } from "@chakra-ui/react"; import Head from "next/head"; import { getCsrfToken, getProviders } from "next-auth/react"; -import { AuthLayout } from "src/components/AuthLayout"; export default function Verify() { const { colorMode } = useColorMode(); diff --git a/website/src/pages/create/summarize_story.tsx b/website/src/pages/create/summarize_story.tsx index 8620a8f5..61415962 100644 --- a/website/src/pages/create/summarize_story.tsx +++ b/website/src/pages/create/summarize_story.tsx @@ -63,7 +63,7 @@ const SummarizeStory = () => { return ; } - if (tasks.length == 0) { + if (tasks.length === 0) { return
No tasks found...
; } diff --git a/website/src/pages/evaluate/rate_summary.tsx b/website/src/pages/evaluate/rate_summary.tsx index 0d2352a2..e9da4a63 100644 --- a/website/src/pages/evaluate/rate_summary.tsx +++ b/website/src/pages/evaluate/rate_summary.tsx @@ -60,7 +60,7 @@ const RateSummary = () => { return ; } - if (tasks.length == 0) { + if (tasks.length === 0) { return (
diff --git a/website/src/pages/index.tsx b/website/src/pages/index.tsx index 04f99829..64b1a0d5 100644 --- a/website/src/pages/index.tsx +++ b/website/src/pages/index.tsx @@ -1,10 +1,21 @@ import Head from "next/head"; +import { useRouter } from "next/router"; +import { useSession } from "next-auth/react"; +import { useEffect } from "react"; import { CallToAction } from "src/components/CallToAction"; import { Faq } from "src/components/Faq"; import { Hero } from "src/components/Hero"; import { getTransparentHeaderLayout } from "src/components/Layout"; const Home = () => { + const router = useRouter(); + const { status } = useSession(); + useEffect(() => { + if (status === "authenticated") { + router.push("/dashboard"); + } + }, [router, status]); + return ( <> diff --git a/website/src/pages/label/label_assistant_reply.tsx b/website/src/pages/label/label_assistant_reply.tsx index 59a7bbcc..99c10f56 100644 --- a/website/src/pages/label/label_assistant_reply.tsx +++ b/website/src/pages/label/label_assistant_reply.tsx @@ -16,6 +16,7 @@ const LabelAssistantReply = () => { } const task = tasks[0].task; + const valid_labels = tasks[0].valid_labels; const messages: Message[] = [ ...task.conversation.messages, { text: task.reply, is_assistant: true, message_id: task.message_id }, @@ -25,7 +26,7 @@ const LabelAssistantReply = () => { } + messages={} inputs={} controls={ { } const task = tasks[0].task; + const valid_labels = tasks[0].valid_labels; const messages: Message[] = [ ...task.conversation.messages, { text: task.reply, is_assistant: false, message_id: task.message_id }, @@ -25,7 +26,7 @@ const LabelPrompterReply = () => { } + messages={} inputs={} controls={ { Parent - + )} diff --git a/website/src/pages/messages/index.tsx b/website/src/pages/messages/index.tsx index 9cdc2ac5..ed48d47b 100644 --- a/website/src/pages/messages/index.tsx +++ b/website/src/pages/messages/index.tsx @@ -52,7 +52,11 @@ const MessagesDashboard = () => { borderRadius="xl" className="p-6 shadow-sm" > - {receivedMessages ? : } + {receivedMessages ? ( + + ) : ( + + )} @@ -66,7 +70,11 @@ const MessagesDashboard = () => { borderRadius="xl" className="p-6 shadow-sm" > - {receivedUserMessages ? : } + {receivedUserMessages ? ( + + ) : ( + + )} diff --git a/website/src/types/Task.ts b/website/src/types/Task.ts index 0dca6a5b..6975fa14 100644 --- a/website/src/types/Task.ts +++ b/website/src/types/Task.ts @@ -12,6 +12,12 @@ export const enum TaskType { label_assistant_reply = "label_assistant_reply", } +export interface ValidLabel { + name: string; + display_text: string; + help_text: string; +} + export interface BaseTask { id: string; type: TaskType; @@ -21,4 +27,5 @@ export interface TaskResponse { id: string; userId: string; task: Task; + valid_labels: ValidLabel[]; }