我正在将一些langchain代码部署到一个托管的Node.js服务器上,但我不知道应该将我的OpenAI API密钥放在哪里
const http = require('http');const cors = require("cors");const { OpenAI } = require("langchain/llms/openai");const { PDFLoader } = require("langchain/document_loaders/fs/pdf");const { FaissStore } = require("langchain/vectorstores/faiss");const { OpenAIEmbeddings } = require("langchain/embeddings/openai");const { RecursiveCharacterTextSplitter } = require('langchain/text_splitter');const fs = require('fs');OpenAI.api_key = '12345.....'const processSteps = async () => {// Step Oneconst loader = new PDFLoader("documents/document.pdf");const docs = await loader.load();// Step Twoconst textSplitter = new RecursiveCharacterTextSplitter({chunkSize: 1000,chunkOverlap: 200,});// Step Threeconst docOutput = await textSplitter.splitDocuments(docs)let vectorStore = await FaissStore.fromDocuments(docOutput, new OpenAIEmbeddings());// Step Fourconst directory = "documents";await vectorStore.save(directory);}http.createServer(async function(req, res) {var ret = "Start"try {await processSteps();ret = "所有步骤已成功完成";} catch (error) {console.error('发生错误:', error);ret = "发生错误: " + error;}res.writeHead(200, {'Content-Type': 'text/plain'});res.end(ret);}).listen(process.env.PORT);
当我运行代码时,我得到
发生错误: Error: 未找到OpenAI或Azure OpenAI API密钥
如果我在
在Node中运行OpenAI API文档示例:我应该将示例代码放在哪里?
const configuration = new Configuration({ apiKey: '12345.....',});const openai = new OpenAIApi(configuration);
我得到
TypeError: Configuration不是构造函数
回答:
TypeError: Configuration不是构造函数
Configuration
在之前的版本中使用。例如
"openai": "^3.3.1"
但在最新的包中
"openai": "^4.12.1"
Configuration
不存在。这就是你得到类型错误的原因。
如果你设置环境变量 process.env.OPENAI_API_KEY
并加载它们
import { config } from "dotenv";config();
该环境变量将被自动选取。因此,这就足够了:
const embeddings = new OpenAIEmbeddings();