From 83f2a29faae2f4ad78eca56256977fbbd20a1740 Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Fri, 16 Jun 2023 16:50:23 +0200 Subject: [PATCH] :zap: (openai) Add new models and remove tiktoken Instead of computing total tokens with tiktoken we just attempt retries after trimming the first message --- .../ChatCompletionMessageItem.tsx | 26 +- .../OpenAIChatCompletionSettings.tsx | 19 +- apps/docs/openapi/builder/_spec_.json | 40 +++- apps/docs/openapi/chat/_spec_.json | 61 ++++- apps/viewer/package.json | 1 - .../openai/createChatCompletionOpenAI.ts | 224 +++--------------- .../executeChatCompletionOpenAIRequest.ts | 74 ++++++ .../openai/parseChatCompletionMessages.ts | 90 +++++++ .../openai/resumeChatCompletion.ts | 10 +- .../features/blocks/integrations/openai.ts | 24 +- pnpm-lock.yaml | 7 - 11 files changed, 331 insertions(+), 245 deletions(-) create mode 100644 apps/viewer/src/features/blocks/integrations/openai/executeChatCompletionOpenAIRequest.ts create mode 100644 apps/viewer/src/features/blocks/integrations/openai/parseChatCompletionMessages.ts diff --git a/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/ChatCompletionMessageItem.tsx b/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/ChatCompletionMessageItem.tsx index b1afb59ce..79b68b88d 100644 --- a/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/ChatCompletionMessageItem.tsx +++ b/apps/builder/src/features/blocks/integrations/openai/components/createChatCompletion/ChatCompletionMessageItem.tsx @@ -1,5 +1,5 @@ import { DropdownList } from '@/components/DropdownList' -import { Textarea } from '@/components/inputs' +import { Textarea, TextInput } from '@/components/inputs' import { VariableSearchInput } from '@/components/inputs/VariableSearchInput' import { TableListItemProps } from '@/components/TableList' import { Stack } from '@chakra-ui/react' @@ -55,6 +55,11 @@ export const ChatCompletionMessageItem = ({ item, onItemChange }: Props) => { }) } + const updateName = (name: string) => { + if (item.role === 'Messages sequence ✨') return + onItemChange({ ...item, name }) + } + return ( { /> ) : ( -