From a8db6cadfdec13146050426721b8faeb91b0d83b Mon Sep 17 00:00:00 2001 From: Kyle Corbitt Date: Sat, 8 Jul 2023 22:12:47 -0700 Subject: [PATCH] format with prettier 3 --- .prettierignore | 1 + .prettierrc | 1 + README.md | 6 +- package.json | 4 +- public/favicons/site.webmanifest | 34 +- src/codegen/export-openai-schema.ts | 2 +- src/codegen/openai.schema.json | 448 ++++-------------- .../OutputsTable/EditEvaluations.tsx | 2 +- .../OutputsTable/OutputCell/OutputCell.tsx | 14 +- .../OutputsTable/ScenarioEditor.tsx | 2 +- .../OutputsTable/VariantConfigEditor.tsx | 2 +- src/components/OutputsTable/VariantHeader.tsx | 2 +- src/components/OutputsTable/VariantStats.tsx | 2 +- src/components/OutputsTable/index.tsx | 4 +- src/pages/experiments/index.tsx | 4 +- src/pages/index.tsx | 8 +- src/server/api/autogen.ts | 20 +- src/server/api/routers/evaluations.router.ts | 6 +- src/server/api/routers/experiments.router.ts | 2 +- src/server/api/routers/modelOutputs.router.ts | 4 +- .../api/routers/promptVariants.router.ts | 14 +- src/server/api/routers/scenarios.router.ts | 10 +- src/server/api/trpc.ts | 3 +- src/server/db.ts | 3 +- src/server/utils/evaluateOutput.ts | 2 +- src/server/utils/evaluations.ts | 8 +- src/server/utils/fillTemplate.ts | 13 +- src/server/utils/getCompletion.ts | 6 +- src/server/utils/openai.ts | 17 +- src/utils/calculateTokenCost.ts | 4 +- src/utils/countTokens.ts | 2 +- src/utils/dayjs.ts | 18 +- src/utils/hooks.ts | 4 +- tsconfig.json | 9 +- 34 files changed, 201 insertions(+), 480 deletions(-) create mode 100644 .prettierignore create mode 100644 .prettierrc diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..70be24a --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +src/codegen/openai.schema.json \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..c843044 --- /dev/null +++ b/.prettierrc @@ -0,0 +1 @@ +{ "printWidth": 100 } diff --git a/README.md b/README.md index ce3361e..5fad61f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ - -# OpenPipe +# OpenPipe OpenPipe is a flexible playground for comparing and optimizing LLM prompts. It lets you quickly generate, test and compare candidate prompts with realistic sample data. @@ -16,7 +15,7 @@ Set up multiple prompt configurations and compare their output side-by-side. Eac Inspect prompt completions side-by-side. **Test Many Inputs** -OpenPipe lets you *template* a prompt. Use the templating feature to run the prompts you're testing against many potential inputs for broader coverage of your problem space than you'd get with manual testing. +OpenPipe lets you _template_ a prompt. Use the templating feature to run the prompts you're testing against many potential inputs for broader coverage of your problem space than you'd get with manual testing. **🪄 Auto-generate Test Scenarios** OpenPipe includes a tool to generate new test scenarios based on your existing prompts and scenarios. Just click "Autogenerate Scenario" to try it out! @@ -32,6 +31,7 @@ Natively supports [OpenAI function calls](https://openai.com/blog/function-calli function calls ## Supported Models + OpenPipe currently supports GPT-3.5 and GPT-4. Wider model support is planned. ## Running Locally diff --git a/package.json b/package.json index bdd8933..2a23384 100644 --- a/package.json +++ b/package.json @@ -74,6 +74,7 @@ "eslint": "^8.40.0", "eslint-config-next": "^13.4.2", "eslint-plugin-unused-imports": "^2.0.0", + "prettier": "^3.0.0", "prisma": "^4.14.0", "typescript": "^5.0.4", "yaml": "^2.3.1" @@ -83,8 +84,5 @@ }, "prisma": { "seed": "tsx prisma/seed.ts" - }, - "prettier": { - "printWidth": 100 } } diff --git a/public/favicons/site.webmanifest b/public/favicons/site.webmanifest index a30fad4..32e00d4 100644 --- a/public/favicons/site.webmanifest +++ b/public/favicons/site.webmanifest @@ -1,19 +1,19 @@ { - "name": "", - "short_name": "", - "icons": [ - { - "src": "/favicons/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/favicons/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" + "name": "", + "short_name": "", + "icons": [ + { + "src": "/favicons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/favicons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" } diff --git a/src/codegen/export-openai-schema.ts b/src/codegen/export-openai-schema.ts index f06aa83..e08f9e6 100644 --- a/src/codegen/export-openai-schema.ts +++ b/src/codegen/export-openai-schema.ts @@ -39,7 +39,7 @@ const convertOpenApiToJsonSchema = async (url: string) => { // Write the JSON schema to a file in the current directory fs.writeFileSync( path.join(currentDirectory, "openai.schema.json"), - JSON.stringify(jsonSchema, null, 2) + JSON.stringify(jsonSchema, null, 2), ); }; diff --git a/src/codegen/openai.schema.json b/src/codegen/openai.schema.json index c4aa4ff..5881b87 100644 --- a/src/codegen/openai.schema.json +++ b/src/codegen/openai.schema.json @@ -20,9 +20,7 @@ "/chat/completions": { "post": { "operationId": "createChatCompletion", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Creates a model response for the given chat conversation.", "requestBody": { "required": true, @@ -64,9 +62,7 @@ "/completions": { "post": { "operationId": "createCompletion", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Creates a completion for the provided prompt and parameters.", "requestBody": { "required": true, @@ -107,9 +103,7 @@ "/edits": { "post": { "operationId": "createEdit", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Creates a new edit for the provided input, instruction, and parameters.", "requestBody": { "required": true, @@ -150,9 +144,7 @@ "/images/generations": { "post": { "operationId": "createImage", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Creates an image given a prompt.", "requestBody": { "required": true, @@ -194,9 +186,7 @@ "/images/edits": { "post": { "operationId": "createImageEdit", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Creates an edited or extended image given an original image and a prompt.", "requestBody": { "required": true, @@ -237,9 +227,7 @@ "/images/variations": { "post": { "operationId": "createImageVariation", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Creates a variation of a given image.", "requestBody": { "required": true, @@ -280,9 +268,7 @@ "/embeddings": { "post": { "operationId": "createEmbedding", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Creates an embedding vector representing the input text.", "requestBody": { "required": true, @@ -323,9 +309,7 @@ "/audio/transcriptions": { "post": { "operationId": "createTranscription", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Transcribes audio into the input language.", "requestBody": { "required": true, @@ -367,9 +351,7 @@ "/audio/translations": { "post": { "operationId": "createTranslation", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Translates audio into English.", "requestBody": { "required": true, @@ -411,9 +393,7 @@ "/files": { "get": { "operationId": "listFiles", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Returns a list of files that belong to the user's organization.", "responses": { "200": { @@ -441,9 +421,7 @@ }, "post": { "operationId": "createFile", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Upload a file that contains document(s) to be used across various endpoints/features. Currently, the size of all the files uploaded by one organization can be up to 1 GB. Please contact us if you need to increase the storage limit.\n", "requestBody": { "required": true, @@ -483,9 +461,7 @@ "/files/{file_id}": { "delete": { "operationId": "deleteFile", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Delete a file.", "parameters": [ { @@ -524,9 +500,7 @@ }, "get": { "operationId": "retrieveFile", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Returns information about a specific file.", "parameters": [ { @@ -567,9 +541,7 @@ "/files/{file_id}/content": { "get": { "operationId": "downloadFile", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Returns the contents of the specified file", "parameters": [ { @@ -609,9 +581,7 @@ "/fine-tunes": { "post": { "operationId": "createFineTune", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Creates a job that fine-tunes a specified model from a given dataset.\n\nResponse includes details of the enqueued job including job status and the name of the fine-tuned models once complete.\n\n[Learn more about Fine-tuning](/docs/guides/fine-tuning)\n", "requestBody": { "required": true, @@ -649,9 +619,7 @@ }, "get": { "operationId": "listFineTunes", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "List your organization's fine-tuning jobs\n", "responses": { "200": { @@ -681,9 +649,7 @@ "/fine-tunes/{fine_tune_id}": { "get": { "operationId": "retrieveFineTune", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Gets info about the fine-tune job.\n\n[Learn more about Fine-tuning](/docs/guides/fine-tuning)\n", "parameters": [ { @@ -725,9 +691,7 @@ "/fine-tunes/{fine_tune_id}/cancel": { "post": { "operationId": "cancelFineTune", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Immediately cancel a fine-tune job.\n", "parameters": [ { @@ -769,9 +733,7 @@ "/fine-tunes/{fine_tune_id}/events": { "get": { "operationId": "listFineTuneEvents", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Get fine-grained status updates for a fine-tune job.\n", "parameters": [ { @@ -823,9 +785,7 @@ "/models": { "get": { "operationId": "listModels", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Lists the currently available models, and provides basic information about each one such as the owner and availability.", "responses": { "200": { @@ -855,9 +815,7 @@ "/models/{model}": { "get": { "operationId": "retrieveModel", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Retrieves a model instance, providing basic information about the model such as the owner and permissioning.", "parameters": [ { @@ -897,9 +855,7 @@ }, "delete": { "operationId": "deleteModel", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Delete a fine-tuned model. You must have the Owner role in your organization.", "parameters": [ { @@ -941,9 +897,7 @@ "/moderations": { "post": { "operationId": "createModeration", - "tags": [ - "OpenAI" - ], + "tags": ["OpenAI"], "summary": "Classifies if text violates OpenAI's Content Policy", "requestBody": { "required": true, @@ -1004,12 +958,7 @@ "nullable": true } }, - "required": [ - "type", - "message", - "param", - "code" - ] + "required": ["type", "message", "param", "code"] }, "ErrorResponse": { "type": "object", @@ -1018,9 +967,7 @@ "$ref": "#/components/schemas/Error" } }, - "required": [ - "error" - ] + "required": ["error"] }, "ListModelsResponse": { "type": "object", @@ -1035,10 +982,7 @@ } } }, - "required": [ - "object", - "data" - ] + "required": ["object", "data"] }, "DeleteModelResponse": { "type": "object", @@ -1053,11 +997,7 @@ "type": "boolean" } }, - "required": [ - "id", - "object", - "deleted" - ] + "required": ["id", "object", "deleted"] }, "CreateCompletionRequest": { "type": "object", @@ -1243,10 +1183,7 @@ "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).\n" } }, - "required": [ - "model", - "prompt" - ] + "required": ["model", "prompt"] }, "CreateCompletionResponse": { "type": "object", @@ -1267,12 +1204,7 @@ "type": "array", "items": { "type": "object", - "required": [ - "text", - "index", - "logprobs", - "finish_reason" - ], + "required": ["text", "index", "logprobs", "finish_reason"], "properties": { "text": { "type": "string" @@ -1312,10 +1244,7 @@ }, "finish_reason": { "type": "string", - "enum": [ - "stop", - "length" - ] + "enum": ["stop", "length"] } } } @@ -1333,32 +1262,17 @@ "type": "integer" } }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ] + "required": ["prompt_tokens", "completion_tokens", "total_tokens"] } }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ] + "required": ["id", "object", "created", "model", "choices"] }, "ChatCompletionRequestMessage": { "type": "object", "properties": { "role": { "type": "string", - "enum": [ - "system", - "user", - "assistant", - "function" - ], + "enum": ["system", "user", "assistant", "function"], "description": "The role of the messages author. One of `system`, `user`, `assistant`, or `function`." }, "content": { @@ -1384,9 +1298,7 @@ } } }, - "required": [ - "role" - ] + "required": ["role"] }, "ChatCompletionFunctionParameters": { "type": "object", @@ -1408,21 +1320,14 @@ "$ref": "#/components/schemas/ChatCompletionFunctionParameters" } }, - "required": [ - "name" - ] + "required": ["name"] }, "ChatCompletionResponseMessage": { "type": "object", "properties": { "role": { "type": "string", - "enum": [ - "system", - "user", - "assistant", - "function" - ], + "enum": ["system", "user", "assistant", "function"], "description": "The role of the author of this message." }, "content": { @@ -1445,21 +1350,14 @@ } } }, - "required": [ - "role" - ] + "required": ["role"] }, "ChatCompletionStreamResponseDelta": { "type": "object", "properties": { "role": { "type": "string", - "enum": [ - "system", - "user", - "assistant", - "function" - ], + "enum": ["system", "user", "assistant", "function"], "description": "The role of the author of this message." }, "content": { @@ -1522,10 +1420,7 @@ "oneOf": [ { "type": "string", - "enum": [ - "none", - "auto" - ] + "enum": ["none", "auto"] }, { "type": "object", @@ -1535,9 +1430,7 @@ "description": "The name of the function to call." } }, - "required": [ - "name" - ] + "required": ["name"] } ] }, @@ -1626,10 +1519,7 @@ "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).\n" } }, - "required": [ - "model", - "messages" - ] + "required": ["model", "messages"] }, "CreateChatCompletionResponse": { "type": "object", @@ -1659,11 +1549,7 @@ }, "finish_reason": { "type": "string", - "enum": [ - "stop", - "length", - "function_call" - ] + "enum": ["stop", "length", "function_call"] } } } @@ -1681,20 +1567,10 @@ "type": "integer" } }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ] + "required": ["prompt_tokens", "completion_tokens", "total_tokens"] } }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ] + "required": ["id", "object", "created", "model", "choices"] }, "CreateChatCompletionStreamResponse": { "type": "object", @@ -1724,23 +1600,13 @@ }, "finish_reason": { "type": "string", - "enum": [ - "stop", - "length", - "function_call" - ] + "enum": ["stop", "length", "function_call"] } } } } }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ] + "required": ["id", "object", "created", "model", "choices"] }, "CreateEditRequest": { "type": "object", @@ -1755,10 +1621,7 @@ }, { "type": "string", - "enum": [ - "text-davinci-edit-001", - "code-davinci-edit-001" - ] + "enum": ["text-davinci-edit-001", "code-davinci-edit-001"] } ] }, @@ -1802,10 +1665,7 @@ "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\nWe generally recommend altering this or `temperature` but not both.\n" } }, - "required": [ - "model", - "instruction" - ] + "required": ["model", "instruction"] }, "CreateEditResponse": { "type": "object", @@ -1859,10 +1719,7 @@ }, "finish_reason": { "type": "string", - "enum": [ - "stop", - "length" - ] + "enum": ["stop", "length"] } } } @@ -1880,19 +1737,10 @@ "type": "integer" } }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ] + "required": ["prompt_tokens", "completion_tokens", "total_tokens"] } }, - "required": [ - "object", - "created", - "choices", - "usage" - ] + "required": ["object", "created", "choices", "usage"] }, "CreateImageRequest": { "type": "object", @@ -1913,11 +1761,7 @@ }, "size": { "type": "string", - "enum": [ - "256x256", - "512x512", - "1024x1024" - ], + "enum": ["256x256", "512x512", "1024x1024"], "default": "1024x1024", "example": "1024x1024", "nullable": true, @@ -1925,10 +1769,7 @@ }, "response_format": { "type": "string", - "enum": [ - "url", - "b64_json" - ], + "enum": ["url", "b64_json"], "default": "url", "example": "url", "nullable": true, @@ -1940,9 +1781,7 @@ "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).\n" } }, - "required": [ - "prompt" - ] + "required": ["prompt"] }, "ImagesResponse": { "properties": { @@ -1964,10 +1803,7 @@ } } }, - "required": [ - "created", - "data" - ] + "required": ["created", "data"] }, "CreateImageEditRequest": { "type": "object", @@ -1998,11 +1834,7 @@ }, "size": { "type": "string", - "enum": [ - "256x256", - "512x512", - "1024x1024" - ], + "enum": ["256x256", "512x512", "1024x1024"], "default": "1024x1024", "example": "1024x1024", "nullable": true, @@ -2010,10 +1842,7 @@ }, "response_format": { "type": "string", - "enum": [ - "url", - "b64_json" - ], + "enum": ["url", "b64_json"], "default": "url", "example": "url", "nullable": true, @@ -2025,10 +1854,7 @@ "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).\n" } }, - "required": [ - "prompt", - "image" - ] + "required": ["prompt", "image"] }, "CreateImageVariationRequest": { "type": "object", @@ -2049,11 +1875,7 @@ }, "size": { "type": "string", - "enum": [ - "256x256", - "512x512", - "1024x1024" - ], + "enum": ["256x256", "512x512", "1024x1024"], "default": "1024x1024", "example": "1024x1024", "nullable": true, @@ -2061,10 +1883,7 @@ }, "response_format": { "type": "string", - "enum": [ - "url", - "b64_json" - ], + "enum": ["url", "b64_json"], "default": "url", "example": "url", "nullable": true, @@ -2076,9 +1895,7 @@ "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).\n" } }, - "required": [ - "image" - ] + "required": ["image"] }, "CreateModerationRequest": { "type": "object", @@ -2112,17 +1929,12 @@ }, { "type": "string", - "enum": [ - "text-moderation-latest", - "text-moderation-stable" - ] + "enum": ["text-moderation-latest", "text-moderation-stable"] } ] } }, - "required": [ - "input" - ] + "required": ["input"] }, "CreateModerationResponse": { "type": "object", @@ -2212,19 +2024,11 @@ ] } }, - "required": [ - "flagged", - "categories", - "category_scores" - ] + "required": ["flagged", "categories", "category_scores"] } } }, - "required": [ - "id", - "model", - "results" - ] + "required": ["id", "model", "results"] }, "ListFilesResponse": { "type": "object", @@ -2239,10 +2043,7 @@ } } }, - "required": [ - "object", - "data" - ] + "required": ["object", "data"] }, "CreateFileRequest": { "type": "object", @@ -2258,10 +2059,7 @@ "type": "string" } }, - "required": [ - "file", - "purpose" - ] + "required": ["file", "purpose"] }, "DeleteFileResponse": { "type": "object", @@ -2276,11 +2074,7 @@ "type": "boolean" } }, - "required": [ - "id", - "object", - "deleted" - ] + "required": ["id", "object", "deleted"] }, "CreateFineTuneRequest": { "type": "object", @@ -2307,12 +2101,7 @@ }, { "type": "string", - "enum": [ - "ada", - "babbage", - "curie", - "davinci" - ] + "enum": ["ada", "babbage", "curie", "davinci"] } ] }, @@ -2364,12 +2153,7 @@ "items": { "type": "number" }, - "example": [ - 0.6, - 1, - 1.5, - 2 - ], + "example": [0.6, 1, 1.5, 2], "default": null, "nullable": true }, @@ -2382,9 +2166,7 @@ "nullable": true } }, - "required": [ - "training_file" - ] + "required": ["training_file"] }, "ListFineTunesResponse": { "type": "object", @@ -2399,10 +2181,7 @@ } } }, - "required": [ - "object", - "data" - ] + "required": ["object", "data"] }, "ListFineTuneEventsResponse": { "type": "object", @@ -2417,10 +2196,7 @@ } } }, - "required": [ - "object", - "data" - ] + "required": ["object", "data"] }, "CreateEmbeddingRequest": { "type": "object", @@ -2435,9 +2211,7 @@ }, { "type": "string", - "enum": [ - "text-embedding-ada-002" - ] + "enum": ["text-embedding-ada-002"] } ] }, @@ -2486,10 +2260,7 @@ "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).\n" } }, - "required": [ - "model", - "input" - ] + "required": ["model", "input"] }, "CreateEmbeddingResponse": { "type": "object", @@ -2518,11 +2289,7 @@ } } }, - "required": [ - "index", - "object", - "embedding" - ] + "required": ["index", "object", "embedding"] } }, "usage": { @@ -2535,18 +2302,10 @@ "type": "integer" } }, - "required": [ - "prompt_tokens", - "total_tokens" - ] + "required": ["prompt_tokens", "total_tokens"] } }, - "required": [ - "object", - "model", - "data", - "usage" - ] + "required": ["object", "model", "data", "usage"] }, "CreateTranscriptionRequest": { "type": "object", @@ -2567,9 +2326,7 @@ }, { "type": "string", - "enum": [ - "whisper-1" - ] + "enum": ["whisper-1"] } ] }, @@ -2592,10 +2349,7 @@ "type": "string" } }, - "required": [ - "file", - "model" - ] + "required": ["file", "model"] }, "CreateTranscriptionResponse": { "type": "object", @@ -2604,9 +2358,7 @@ "type": "string" } }, - "required": [ - "text" - ] + "required": ["text"] }, "CreateTranslationRequest": { "type": "object", @@ -2627,9 +2379,7 @@ }, { "type": "string", - "enum": [ - "whisper-1" - ] + "enum": ["whisper-1"] } ] }, @@ -2648,10 +2398,7 @@ "default": 0 } }, - "required": [ - "file", - "model" - ] + "required": ["file", "model"] }, "CreateTranslationResponse": { "type": "object", @@ -2660,9 +2407,7 @@ "type": "string" } }, - "required": [ - "text" - ] + "required": ["text"] }, "Model": { "title": "Model", @@ -2680,12 +2425,7 @@ "type": "string" } }, - "required": [ - "id", - "object", - "created", - "owned_by" - ] + "required": ["id", "object", "created", "owned_by"] }, "OpenAIFile": { "title": "OpenAIFile", @@ -2716,14 +2456,7 @@ "nullable": true } }, - "required": [ - "id", - "object", - "bytes", - "created_at", - "filename", - "purpose" - ] + "required": ["id", "object", "bytes", "created_at", "filename", "purpose"] }, "FineTune": { "title": "FineTune", @@ -2812,12 +2545,7 @@ "type": "string" } }, - "required": [ - "object", - "created_at", - "level", - "message" - ] + "required": ["object", "created_at", "level", "message"] } } }, @@ -2876,4 +2604,4 @@ ] }, "$schema": "http://json-schema.org/draft-04/schema#" -} \ No newline at end of file +} diff --git a/src/components/OutputsTable/EditEvaluations.tsx b/src/components/OutputsTable/EditEvaluations.tsx index 3aaeb3a..6abd79e 100644 --- a/src/components/OutputsTable/EditEvaluations.tsx +++ b/src/components/OutputsTable/EditEvaluations.tsx @@ -189,7 +189,7 @@ export default function EditEvaluations() { - ) + ), )} {editingId == null && (