如何根据openai官网的FileID下载文件

2024-01-23 13:52
文章标签 openai 下载 官网 fileid

本文主要是介绍如何根据openai官网的FileID下载文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我的chatgpt网站,哈哈: https://chat.xutongbao.top/

 file-type的版本需要注意:

     "file-type": "^15.0.0",

const FileType = require('file-type')const assistantsDownloadFileOnAzure = async (req, res) => {let { apiKey = 'sk-xxx', fileIds = [] } = req.bodyif (apiKey === apiKeyOnServer) {if (Array.isArray(fileIds) && fileIds.length > 0) {let promiseListForDownload = fileIds.map((item) => {return new Promise(async (resolve, reject) => {const fileRes = await openai.files.content(item)const bufferView = new Uint8Array(await fileRes.arrayBuffer())let buffer = Buffer.from(bufferView)FileType.fromBuffer(buffer).then((fileTypeBlobRes) => {console.log('fileTypeBlobRes', fileTypeBlobRes)if (fileTypeBlobRes?.ext) {let localPath = `/temp/ai/assistants/${Date.now()}.${fileTypeBlobRes?.ext}`fs.writeFile(localPath,bufferView,(err) => {if (err) {throw err}console.log('The file has been saved!')resolve(localPath)})} else {reject()}})})})let localFileList = await Promise.all(promiseListForDownload)let promiseListForUpload = localFileList.map((item) => {return new Promise((resolve) => {// 文件上传let now = Date.now()let localFile = itemlet localFileArr = localFile.split('/')let key = `ai/assistants/${now}-${localFileArr[localFileArr.length - 1]}`let historyKey = keyputExtra.checkCrc = falseformUploader.putFile(uploadToken,key,localFile,putExtra,async function (respErr, respBody, respInfo) {if (respErr) {console.log('上传SD图片失败【1】', respErr)}if (respInfo.statusCode == 200 ||(respInfo.statusCode === 614 &&respBody.error === 'file exists')) {let key = ''if (respBody.data) {key = respBody.data.key}if (!key) {key = historyKey}resolve(key)} else {console.log(respInfo.statusCode)console.log('上传SD图片失败【2】', respBody)}})})})let cdnFileList = await Promise.all(promiseListForUpload)res.send({code: 200,data: {fileIds,localFileList,cdnFileList,},message: '成功',})} else {res.send({code: 400,message: '失败:参数fileIds',})}} else {res.send({code: 400,message: '失败:参数apiKey',})}
}

这篇关于如何根据openai官网的FileID下载文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/636596

相关文章

Python如何快速下载依赖

《Python如何快速下载依赖》本文介绍了四种在Python中快速下载依赖的方法,包括使用国内镜像源、开启pip并发下载功能、使用pipreqs批量下载项目依赖以及使用conda管理依赖,通过这些方法... 目录python快速下载依赖1. 使用国内镜像源临时使用镜像源永久配置镜像源2. 使用 pip 的并

jdk21下载、安装详细教程(Windows、Linux、macOS)

《jdk21下载、安装详细教程(Windows、Linux、macOS)》本文介绍了OpenJDK21的下载地址和安装步骤,包括Windows、Linux和macOS平台,下载后解压并设置环境变量,最... 目录1、官网2、下载openjdk3、安装4、验证1、官网官网地址:OpenJDK下载地址:Ar

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

python 3.8 的anaconda下载方法

《python3.8的anaconda下载方法》本文详细介绍了如何下载和安装带有Python3.8的Anaconda发行版,包括Anaconda简介、下载步骤、安装指南以及验证安装结果,此外,还介... 目录python3.8 版本的 Anaconda 下载与安装指南一、Anaconda 简介二、下载 An

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下

Python实现文件下载、Cookie以及重定向的方法代码

《Python实现文件下载、Cookie以及重定向的方法代码》本文主要介绍了如何使用Python的requests模块进行网络请求操作,涵盖了从文件下载、Cookie处理到重定向与历史请求等多个方面,... 目录前言一、下载网络文件(一)基本步骤(二)分段下载大文件(三)常见问题二、requests模块处理

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

2. 下载rknn-toolkit2项目

官网链接: https://github.com/airockchip/rknn-toolkit2 安装好git:[[1. Git的安装]] 下载项目: git clone https://github.com/airockchip/rknn-toolkit2.git 或者直接去github下载压缩文件,解压即可。