From 546cfda991543477cc8dda4463fbe3fd83e6a6fa Mon Sep 17 00:00:00 2001 From: Lorenzo Zolfanelli Date: Wed, 12 Feb 2025 23:46:17 +0000 Subject: [PATCH] feat: migrate to openai 4.84.0 --- lib/utils.ts | 2 +- package-lock.json | 78 +++++++-------------------- package.json | 2 +- pages/api/assistants/chat.ts | 4 +- pages/api/assistants/threads/index.ts | 11 +++- 5 files changed, 31 insertions(+), 66 deletions(-) diff --git a/lib/utils.ts b/lib/utils.ts index 60ea428b4..2c07df875 100644 --- a/lib/utils.ts +++ b/lib/utils.ts @@ -5,7 +5,7 @@ import { type ClassValue, clsx } from "clsx"; import crypto from "crypto"; import ms from "ms"; import { customAlphabet } from "nanoid"; -import { ThreadMessage } from "openai/resources/beta/threads/messages/messages"; +import { Message as ThreadMessage } from "openai/resources/beta/threads/messages"; import { rgb } from "pdf-lib"; import { toast } from "sonner"; import { twMerge } from "tailwind-merge"; diff --git a/package-lock.json b/package-lock.json index 042d05554..24437a2e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -93,7 +93,7 @@ "notion-client": "^7.1.6", "notion-utils": "^7.1.6", "nuqs": "^1.20.0", - "openai": "4.20.1", + "openai": "^4.84.0", "pdf-lib": "^1.17.1", "postcss": "^8.5.1", "posthog-js": "^1.215.3", @@ -7858,11 +7858,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/base-64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", - "integrity": "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==" - }, "node_modules/base-x": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.0.tgz", @@ -8131,14 +8126,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", - "engines": { - "node": "*" - } - }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -8544,14 +8531,6 @@ "node": ">= 8" } }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "engines": { - "node": "*" - } - }, "node_modules/crypto-js": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", @@ -8924,15 +8903,6 @@ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, - "node_modules/digest-fetch": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/digest-fetch/-/digest-fetch-1.3.0.tgz", - "integrity": "sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==", - "dependencies": { - "base-64": "^0.1.0", - "md5": "^2.3.0" - } - }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", @@ -12107,21 +12077,6 @@ "react": "^18.0 || ^19.0" } }, - "node_modules/md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "node_modules/md5/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "node_modules/mem": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/mem/-/mem-10.0.0.tgz", @@ -12956,22 +12911,33 @@ } }, "node_modules/openai": { - "version": "4.20.1", - "resolved": "https://registry.npmjs.org/openai/-/openai-4.20.1.tgz", - "integrity": "sha512-Dd3q8EvINfganZFtg6V36HjrMaihqRgIcKiHua4Nq9aw/PxOP48dhbsk8x5klrxajt5Lpnc1KTOG5i1S6BKAJA==", + "version": "4.84.0", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.84.0.tgz", + "integrity": "sha512-Smu45QjqWcPXkTHAI7GSeW+sI9ZOqB9VW4wiuhBvWLGHYC9dn/3rIpG8PUysbCT+ciVyDdEdsx0zkgKQDoOx9Q==", + "license": "Apache-2.0", "dependencies": { "@types/node": "^18.11.18", "@types/node-fetch": "^2.6.4", "abort-controller": "^3.0.0", "agentkeepalive": "^4.2.1", - "digest-fetch": "^1.3.0", "form-data-encoder": "1.7.2", "formdata-node": "^4.3.2", - "node-fetch": "^2.6.7", - "web-streams-polyfill": "^3.2.1" + "node-fetch": "^2.6.7" }, "bin": { "openai": "bin/cli" + }, + "peerDependencies": { + "ws": "^8.18.0", + "zod": "^3.23.8" + }, + "peerDependenciesMeta": { + "ws": { + "optional": true + }, + "zod": { + "optional": true + } } }, "node_modules/openai/node_modules/@types/node": { @@ -16619,14 +16585,6 @@ "defaults": "^1.0.3" } }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "engines": { - "node": ">= 8" - } - }, "node_modules/web-vitals": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.2.tgz", diff --git a/package.json b/package.json index 55257ec5e..abd48231f 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "notion-client": "^7.1.6", "notion-utils": "^7.1.6", "nuqs": "^1.20.0", - "openai": "4.20.1", + "openai": "^4.84.0", "pdf-lib": "^1.17.1", "postcss": "^8.5.1", "posthog-js": "^1.215.3", diff --git a/pages/api/assistants/chat.ts b/pages/api/assistants/chat.ts index 7959a8f54..c954e2e32 100644 --- a/pages/api/assistants/chat.ts +++ b/pages/api/assistants/chat.ts @@ -1,6 +1,6 @@ import { Ratelimit } from "@upstash/ratelimit"; import { experimental_AssistantResponse } from "ai"; -import { type MessageContentText } from "openai/resources/beta/threads/messages/messages"; +import { type TextContentBlock } from "openai/resources/beta/threads/messages"; import { type Run } from "openai/resources/beta/threads/runs/runs"; import { openai } from "@/lib/openai"; @@ -149,7 +149,7 @@ export default async function POST(req: Request) { role: "assistant", content: message.content.filter( (content) => content.type === "text", - ) as Array, + ) as Array, }); } }, diff --git a/pages/api/assistants/threads/index.ts b/pages/api/assistants/threads/index.ts index 1753de780..798889686 100644 --- a/pages/api/assistants/threads/index.ts +++ b/pages/api/assistants/threads/index.ts @@ -49,8 +49,15 @@ export default async function handle( { role: "user", content: "Initializing conversation with Papermark Assistant", - file_ids: [documentVersion?.fileId || ""], - metadata: { intitialMessage: true }, + attachments: [ + { + file_id: documentVersion?.fileId || "", + tools: [ + { type: "file_search" } + ] + } + ], + metadata: { initialMessage: "true" }, }, ], })