@langchain/community
Version:
Third-party integrations for LangChain.js
31 lines (30 loc) • 2.86 kB
JavaScript
import * as url from "node:url";
import * as path from "node:path";
import * as fs from "node:fs/promises";
import { test, expect } from "@jest/globals";
import { Document } from "@langchain/core/documents";
import { ChatGPTLoader } from "../fs/chatgpt.js";
test("Test ChatGPT loader from blob to load all documents", async () => {
const filePath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/chatgpt/example_conversations.json");
const loader = new ChatGPTLoader(new Blob([await fs.readFile(filePath)], { type: "application/json" }));
const docs = await loader.load();
expect(docs.length).toBe(2);
expect(docs[0]).toEqual(new Document({
metadata: { source: "blob", blobType: "application/json", logIndex: 1 },
pageContent: "Example Usage - user on 2023-10-16 23:40:17: Hello, what is your name?\n\nExample Usage - assistant on 2023-10-16 23:40:23: Hello! I'm just a computer program created by OpenAI, so I don't have a personal name. You can call me ChatGPT or simply ask me any questions or chat about topics you're interested in. How can I assist you today?\n\n",
}));
expect(docs[1]).toEqual(new Document({
metadata: { source: "blob", blobType: "application/json", logIndex: 2 },
pageContent: "Example Usage 2 - user on 2023-10-13 23:02:19: What should I do today?\n\nExample Usage 2 - assistant on 2023-10-13 23:02:27: You should contribute to LangChain!\n\nExample Usage 2 - user on 2023-10-13 23:03:30: How can I start?\n\nExample Usage 2 - assistant on 2023-10-13 23:03:38: You can take a look at the current LangChain issues and see if you can contribute to any! Don't forget to read the contributing.md file.\n\nExample Usage 2 - user on 2023-10-13 23:09:24: Thank you!\n\nExample Usage 2 - assistant on 2023-10-13 23:09:34: You're welcome! If you have any more questions or need further assistance in the future, feel free to reach out.\n\n",
}));
});
test("Test ChatGPT loader from blob to only load 1 document", async () => {
const filePath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/chatgpt/example_conversations.json");
const loader = new ChatGPTLoader(new Blob([await fs.readFile(filePath)], { type: "application/json" }), 1);
const docs = await loader.load();
expect(docs.length).toBe(1);
expect(docs[0]).toEqual(new Document({
metadata: { source: "blob", blobType: "application/json", logIndex: 1 },
pageContent: "Example Usage - user on 2023-10-16 23:40:17: Hello, what is your name?\n\nExample Usage - assistant on 2023-10-16 23:40:23: Hello! I'm just a computer program created by OpenAI, so I don't have a personal name. You can call me ChatGPT or simply ask me any questions or chat about topics you're interested in. How can I assist you today?\n\n",
}));
});